diff --git a/index.d.ts b/index.d.ts index e963227..a094ed9 100644 --- a/index.d.ts +++ b/index.d.ts @@ -43,7 +43,7 @@ declare namespace BetterSqlite3 { type: string | null; } - interface Tokenizer { + interface FTS5Tokenizer { // The resulting array consists of the following triples: // [..., segment_start_idx, segment_end_idx, segment | null, ...] // @@ -52,8 +52,8 @@ declare namespace BetterSqlite3 { run(value: string): ReadonlyArray; } - interface TokenizerConstructor { - new (params: ReadonlyArray): Tokenizer; + interface FTS5TokenizerConstructor { + new (params: ReadonlyArray): FTS5Tokenizer; } interface Transaction { @@ -95,7 +95,7 @@ declare namespace BetterSqlite3 { table(name: string, options: VirtualTableOptions): this; unsafeMode(unsafe?: boolean): this; serialize(options?: Database.SerializeOptions): Buffer; - createTokenizer(name: string, tokenizer: TokenizerConstructor): void; + createFTS5Tokenizer(name: string, tokenizer: FTS5TokenizerConstructor): void; } interface DatabaseConstructor { @@ -166,6 +166,7 @@ declare namespace Database { : BetterSqlite3.Statement<[BindParameters]>; type ColumnDefinition = BetterSqlite3.ColumnDefinition; type Transaction = BetterSqlite3.Transaction; + type FTS5Tokenizer = BetterSqlite3.FTS5Tokenizer; type Database = BetterSqlite3.Database; } diff --git a/lib/database.js b/lib/database.js index 75d542a..706b3a8 100644 --- a/lib/database.js +++ b/lib/database.js @@ -84,7 +84,7 @@ Database.prototype.serialize = require('./methods/serialize'); Database.prototype.function = require('./methods/function'); Database.prototype.aggregate = require('./methods/aggregate'); Database.prototype.table = require('./methods/table'); -Database.prototype.createTokenizer = require('./methods/createTokenizer'); +Database.prototype.createFTS5Tokenizer = require('./methods/createFTS5Tokenizer'); Database.prototype.loadExtension = wrappers.loadExtension; Database.prototype.exec = wrappers.exec; Database.prototype.close = wrappers.close; diff --git a/lib/methods/createTokenizer.js b/lib/methods/createFTS5Tokenizer.js similarity index 81% rename from lib/methods/createTokenizer.js rename to lib/methods/createFTS5Tokenizer.js index b0c8c6a..cc05c51 100644 --- a/lib/methods/createTokenizer.js +++ b/lib/methods/createFTS5Tokenizer.js @@ -1,13 +1,13 @@ 'use strict'; const { cppdb } = require('../util'); -module.exports = function createTokenizer(name, factory) { +module.exports = function createFTS5Tokenizer(name, factory) { // Validate arguments if (typeof name !== 'string') throw new TypeError('Expected first argument to be a string'); if (!name) throw new TypeError('Virtual table module name cannot be an empty string'); if (typeof factory !== 'function') throw new TypeError('Expected second argument to be a constructor'); - this[cppdb].createTokenizer(name, function create(params) { + this[cppdb].createFTS5Tokenizer(name, function create(params) { const instance = new factory(params); function run(str) { diff --git a/src/better_sqlite3.cpp b/src/better_sqlite3.cpp index a621594..a9303de 100644 --- a/src/better_sqlite3.cpp +++ b/src/better_sqlite3.cpp @@ -368,7 +368,7 @@ v8::Local Database::Init (v8::Isolate * isolate, v8::Local GetFunction( isolate -> GetCurrentContext ( ) ).ToLocalChecked(); @@ -757,9 +757,9 @@ void Database::JS_unsafeMode (v8::FunctionCallbackInfo const & inf sqlite3_db_config(db->db_handle, SQLITE_DBCONFIG_DEFENSIVE, static_cast(!db->unsafe_mode), NULL); } #line 416 "./src/objects/database.lzz" -void Database::JS_createTokenizer (v8::FunctionCallbackInfo const & info) +void Database::JS_createFTS5Tokenizer (v8::FunctionCallbackInfo const & info) #line 416 "./src/objects/database.lzz" - { + { Addon * addon = static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ; v8 :: Isolate * isolate = info . GetIsolate ( ) ; @@ -1551,9 +1551,9 @@ int TokenizerModule::xTokenize (Fts5Tokenizer * tokenizer, void * pCtx, int flag } #line 150 "./src/objects/tokenizer.lzz" fts5_tokenizer TokenizerModule::api_object = { - .xCreate = &xCreate, - .xDelete = &xDelete, - .xTokenize = &xTokenize, + &xCreate, + &xDelete, + &xTokenize, }; #line 4 "./src/util/data-converter.lzz" void DataConverter::ThrowDataConversionError (sqlite3_context * invocation, bool isBigInt) diff --git a/src/better_sqlite3.hpp b/src/better_sqlite3.hpp index 47d4196..cab5e8c 100644 --- a/src/better_sqlite3.hpp +++ b/src/better_sqlite3.hpp @@ -311,7 +311,7 @@ private: #line 409 "./src/objects/database.lzz" static void JS_unsafeMode (v8::FunctionCallbackInfo const & info); #line 416 "./src/objects/database.lzz" - static void JS_createTokenizer (v8::FunctionCallbackInfo const & info); + static void JS_createFTS5Tokenizer (v8::FunctionCallbackInfo const & info); #line 452 "./src/objects/database.lzz" static void JS_open (v8::Local _, v8::PropertyCallbackInfo const & info); #line 456 "./src/objects/database.lzz" diff --git a/src/objects/database.lzz b/src/objects/database.lzz index 5c8a816..2f0213a 100644 --- a/src/objects/database.lzz +++ b/src/objects/database.lzz @@ -14,7 +14,7 @@ public: SetPrototypeMethod(isolate, data, t, "close", JS_close); SetPrototypeMethod(isolate, data, t, "defaultSafeIntegers", JS_defaultSafeIntegers); SetPrototypeMethod(isolate, data, t, "unsafeMode", JS_unsafeMode); - SetPrototypeMethod(isolate, data, t, "createTokenizer", JS_createTokenizer); + SetPrototypeMethod(isolate, data, t, "createFTS5Tokenizer", JS_createFTS5Tokenizer); SetPrototypeGetter(isolate, data, t, "open", JS_open); SetPrototypeGetter(isolate, data, t, "inTransaction", JS_inTransaction); return t->GetFunction(OnlyContext).ToLocalChecked(); @@ -413,7 +413,7 @@ private: sqlite3_db_config(db->db_handle, SQLITE_DBCONFIG_DEFENSIVE, static_cast(!db->unsafe_mode), NULL); } - NODE_METHOD(JS_createTokenizer) { + NODE_METHOD(JS_createFTS5Tokenizer) { UseAddon; UseIsolate; diff --git a/src/objects/tokenizer.lzz b/src/objects/tokenizer.lzz index 15144fc..ade2dd1 100644 --- a/src/objects/tokenizer.lzz +++ b/src/objects/tokenizer.lzz @@ -148,9 +148,9 @@ private: } static fts5_tokenizer api_object = { - .xCreate = &xCreate, - .xDelete = &xDelete, - .xTokenize = &xTokenize, + &xCreate, + &xDelete, + &xTokenize, }; v8::Isolate* isolate; diff --git a/test/38.database.tokenizer.js b/test/38.database.tokenizer.js index 05b213a..bb178fd 100644 --- a/test/38.database.tokenizer.js +++ b/test/38.database.tokenizer.js @@ -15,7 +15,7 @@ describe('Database#serialize()', function () { beforeEach(function () { this.db = new Database(':memory:'); - this.db.createTokenizer('js', class Tokenizer { + this.db.createFTS5Tokenizer('js', class Tokenizer { constructor(params) { expect(params).to.eql(['arg1', 'arg2']); }