lib: fix build on windows, better API name
This commit is contained in:
parent
6d8b420079
commit
dc255273fe
9
index.d.ts
vendored
9
index.d.ts
vendored
@ -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<number | string | undefined | null>;
|
||||
}
|
||||
|
||||
interface TokenizerConstructor {
|
||||
new (params: ReadonlyArray<string>): Tokenizer;
|
||||
interface FTS5TokenizerConstructor {
|
||||
new (params: ReadonlyArray<string>): FTS5Tokenizer;
|
||||
}
|
||||
|
||||
interface Transaction<F extends VariableArgFunction> {
|
||||
@ -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<T extends VariableArgFunction = VariableArgFunction> = BetterSqlite3.Transaction<T>;
|
||||
type FTS5Tokenizer = BetterSqlite3.FTS5Tokenizer;
|
||||
type Database = BetterSqlite3.Database;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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) {
|
||||
@ -368,7 +368,7 @@ v8::Local <v8 :: Function> Database::Init (v8::Isolate * isolate, v8::Local <v8
|
||||
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( isolate -> GetCurrentContext ( ) ).ToLocalChecked();
|
||||
@ -757,9 +757,9 @@ void Database::JS_unsafeMode (v8::FunctionCallbackInfo <v8 :: Value> const & inf
|
||||
sqlite3_db_config(db->db_handle, SQLITE_DBCONFIG_DEFENSIVE, static_cast<int>(!db->unsafe_mode), NULL);
|
||||
}
|
||||
#line 416 "./src/objects/database.lzz"
|
||||
void Database::JS_createTokenizer (v8::FunctionCallbackInfo <v8 :: Value> const & info)
|
||||
void Database::JS_createFTS5Tokenizer (v8::FunctionCallbackInfo <v8 :: Value> 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)
|
||||
|
||||
@ -311,7 +311,7 @@ private:
|
||||
#line 409 "./src/objects/database.lzz"
|
||||
static void JS_unsafeMode (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
||||
#line 416 "./src/objects/database.lzz"
|
||||
static void JS_createTokenizer (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
||||
static void JS_createFTS5Tokenizer (v8::FunctionCallbackInfo <v8 :: Value> const & info);
|
||||
#line 452 "./src/objects/database.lzz"
|
||||
static void JS_open (v8::Local <v8 :: String> _, v8::PropertyCallbackInfo <v8 :: Value> const & info);
|
||||
#line 456 "./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<int>(!db->unsafe_mode), NULL);
|
||||
}
|
||||
|
||||
NODE_METHOD(JS_createTokenizer) {
|
||||
NODE_METHOD(JS_createFTS5Tokenizer) {
|
||||
UseAddon;
|
||||
UseIsolate;
|
||||
|
||||
|
||||
@ -148,9 +148,9 @@ private:
|
||||
}
|
||||
|
||||
static fts5_tokenizer api_object = {
|
||||
.xCreate = &xCreate,
|
||||
.xDelete = &xDelete,
|
||||
.xTokenize = &xTokenize,
|
||||
&xCreate,
|
||||
&xDelete,
|
||||
&xTokenize,
|
||||
};
|
||||
|
||||
v8::Isolate* isolate;
|
||||
|
||||
@ -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']);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user