@powersync/op-sqlite 0.9.1 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/db/OPSQLiteConnection.js +4 -17
- package/lib/commonjs/db/OPSQLiteConnection.js.map +1 -1
- package/lib/commonjs/db/OPSqliteAdapter.js +8 -68
- package/lib/commonjs/db/OPSqliteAdapter.js.map +1 -1
- package/lib/module/db/OPSQLiteConnection.js +5 -18
- package/lib/module/db/OPSQLiteConnection.js.map +1 -1
- package/lib/module/db/OPSqliteAdapter.js +9 -69
- package/lib/module/db/OPSqliteAdapter.js.map +1 -1
- package/lib/typescript/commonjs/src/db/OPSQLiteConnection.d.ts +11 -3
- package/lib/typescript/commonjs/src/db/OPSQLiteConnection.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/db/OPSqliteAdapter.d.ts +15 -4
- package/lib/typescript/commonjs/src/db/OPSqliteAdapter.d.ts.map +1 -1
- package/lib/typescript/module/src/db/OPSQLiteConnection.d.ts +11 -3
- package/lib/typescript/module/src/db/OPSQLiteConnection.d.ts.map +1 -1
- package/lib/typescript/module/src/db/OPSqliteAdapter.d.ts +15 -4
- package/lib/typescript/module/src/db/OPSqliteAdapter.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/db/OPSQLiteConnection.ts +7 -20
- package/src/db/OPSqliteAdapter.ts +12 -77
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.OPSQLiteConnection = void 0;
|
|
7
7
|
var _common = require("@powersync/common");
|
|
8
|
-
class
|
|
8
|
+
class OPSQLiteExecutor extends _common.BaseObserver {
|
|
9
9
|
constructor(options) {
|
|
10
10
|
super();
|
|
11
11
|
this.options = options;
|
|
@@ -75,7 +75,7 @@ class OPSQLiteConnection extends _common.BaseObserver {
|
|
|
75
75
|
async executeRaw(query, params) {
|
|
76
76
|
return await this.DB.executeRaw(query, params);
|
|
77
77
|
}
|
|
78
|
-
async
|
|
78
|
+
async executeNativeBatch(query, params = []) {
|
|
79
79
|
const tuple = [[query, params[0]]];
|
|
80
80
|
params.slice(1).forEach(p => tuple.push([query, p]));
|
|
81
81
|
const result = await this.DB.executeBatch(tuple);
|
|
@@ -83,21 +83,8 @@ class OPSQLiteConnection extends _common.BaseObserver {
|
|
|
83
83
|
rowsAffected: result.rowsAffected ?? 0
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return result.rows ?? [];
|
|
89
|
-
}
|
|
90
|
-
async getOptional(sql, parameters) {
|
|
91
|
-
const result = await this.DB.execute(sql, parameters);
|
|
92
|
-
return result.rows?.[0] ?? null;
|
|
93
|
-
}
|
|
94
|
-
async get(sql, parameters) {
|
|
95
|
-
const result = await this.getOptional(sql, parameters);
|
|
96
|
-
if (!result) {
|
|
97
|
-
throw new Error('Result set is empty');
|
|
98
|
-
}
|
|
99
|
-
return result;
|
|
100
|
-
}
|
|
86
|
+
}
|
|
87
|
+
class OPSQLiteConnection extends (0, _common.DBGetUtilsDefaultMixin)(OPSQLiteExecutor) {
|
|
101
88
|
async refreshSchema() {
|
|
102
89
|
await this.get("PRAGMA table_info('sqlite_master')");
|
|
103
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","
|
|
1
|
+
{"version":3,"names":["_common","require","OPSQLiteExecutor","BaseObserver","constructor","options","DB","baseDB","updateBuffer","rollbackHook","updateHook","update","addTableUpdate","opType","operation","RowUpdateType","SQLITE_INSERT","SQLITE_DELETE","SQLITE_UPDATE","push","table","rowId","flushUpdates","length","groupedUpdates","reduce","grouping","updateGroup","batchedUpdate","rawUpdates","tables","Object","keys","iterateListeners","l","tablesUpdated","close","execute","query","params","res","insertId","rowsAffected","rows","_array","item","index","executeRaw","executeNativeBatch","tuple","slice","forEach","p","result","executeBatch","OPSQLiteConnection","DBGetUtilsDefaultMixin","refreshSchema","get","exports"],"sourceRoot":"../../../src","sources":["db/OPSQLiteConnection.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@ var _OPSQLiteConnection = require("./OPSQLiteConnection.js");
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
const READ_CONNECTIONS = 5;
|
|
17
|
-
class
|
|
17
|
+
class OPSQLiteConnectionPool extends _common.BaseObserver {
|
|
18
18
|
readQueue = [];
|
|
19
19
|
constructor(options) {
|
|
20
20
|
super();
|
|
@@ -180,73 +180,6 @@ class OPSQLiteDBAdapter extends _common.BaseObserver {
|
|
|
180
180
|
}
|
|
181
181
|
});
|
|
182
182
|
}
|
|
183
|
-
readTransaction(fn, options) {
|
|
184
|
-
return this.readLock(ctx => this.internalTransaction(ctx, fn));
|
|
185
|
-
}
|
|
186
|
-
writeTransaction(fn, options) {
|
|
187
|
-
return this.writeLock(ctx => this.internalTransaction(ctx, fn));
|
|
188
|
-
}
|
|
189
|
-
getAll(sql, parameters) {
|
|
190
|
-
return this.readLock(ctx => ctx.getAll(sql, parameters));
|
|
191
|
-
}
|
|
192
|
-
getOptional(sql, parameters) {
|
|
193
|
-
return this.readLock(ctx => ctx.getOptional(sql, parameters));
|
|
194
|
-
}
|
|
195
|
-
get(sql, parameters) {
|
|
196
|
-
return this.readLock(ctx => ctx.get(sql, parameters));
|
|
197
|
-
}
|
|
198
|
-
execute(query, params) {
|
|
199
|
-
return this.writeLock(ctx => ctx.execute(query, params));
|
|
200
|
-
}
|
|
201
|
-
executeRaw(query, params) {
|
|
202
|
-
return this.writeLock(ctx => ctx.executeRaw(query, params));
|
|
203
|
-
}
|
|
204
|
-
async executeBatch(query, params = []) {
|
|
205
|
-
return this.writeLock(ctx => ctx.executeBatch(query, params));
|
|
206
|
-
}
|
|
207
|
-
async internalTransaction(connection, fn) {
|
|
208
|
-
let finalized = false;
|
|
209
|
-
const commit = async () => {
|
|
210
|
-
if (finalized) {
|
|
211
|
-
return {
|
|
212
|
-
rowsAffected: 0
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
finalized = true;
|
|
216
|
-
return connection.execute('COMMIT');
|
|
217
|
-
};
|
|
218
|
-
const rollback = async () => {
|
|
219
|
-
if (finalized) {
|
|
220
|
-
return {
|
|
221
|
-
rowsAffected: 0
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
finalized = true;
|
|
225
|
-
return connection.execute('ROLLBACK');
|
|
226
|
-
};
|
|
227
|
-
try {
|
|
228
|
-
await connection.execute('BEGIN');
|
|
229
|
-
const result = await fn({
|
|
230
|
-
execute: (query, params) => connection.execute(query, params),
|
|
231
|
-
executeRaw: (query, params) => connection.executeRaw(query, params),
|
|
232
|
-
get: (query, params) => connection.get(query, params),
|
|
233
|
-
getAll: (query, params) => connection.getAll(query, params),
|
|
234
|
-
getOptional: (query, params) => connection.getOptional(query, params),
|
|
235
|
-
commit,
|
|
236
|
-
rollback
|
|
237
|
-
});
|
|
238
|
-
await commit();
|
|
239
|
-
return result;
|
|
240
|
-
} catch (ex) {
|
|
241
|
-
try {
|
|
242
|
-
await rollback();
|
|
243
|
-
} catch (ex2) {
|
|
244
|
-
// In rare cases, a rollback may fail.
|
|
245
|
-
// Safe to ignore.
|
|
246
|
-
}
|
|
247
|
-
throw ex;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
183
|
async refreshSchema() {
|
|
251
184
|
await this.initialized;
|
|
252
185
|
await this.writeConnection.refreshSchema();
|
|
@@ -257,5 +190,12 @@ class OPSQLiteDBAdapter extends _common.BaseObserver {
|
|
|
257
190
|
}
|
|
258
191
|
}
|
|
259
192
|
}
|
|
193
|
+
class OPSQLiteDBAdapter extends (0, _common.DBAdapterDefaultMixin)(OPSQLiteConnectionPool) {
|
|
194
|
+
async executeBatch(query, params = []) {
|
|
195
|
+
return await this.writeLock(async tx => {
|
|
196
|
+
return await tx.executeNativeBatch(query, params);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
260
200
|
exports.OPSQLiteDBAdapter = OPSQLiteDBAdapter;
|
|
261
201
|
//# sourceMappingURL=OPSqliteAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_opSqlite","require","_common","_asyncMutex","_reactNative","_OPSQLiteConnection","READ_CONNECTIONS","
|
|
1
|
+
{"version":3,"names":["_opSqlite","require","_common","_asyncMutex","_reactNative","_OPSQLiteConnection","READ_CONNECTIONS","OPSQLiteConnectionPool","BaseObserver","readQueue","constructor","options","name","writeMutex","Mutex","readConnections","writeConnection","abortController","AbortController","initialized","init","lockTimeoutMs","journalMode","journalSizeLimit","synchronous","cacheSizeKb","temporaryStorage","sqliteOptions","dbFilename","openConnection","baseStatements","writeConnectionStatements","readConnectionStatements","statement","tries","execute","e","Error","message","includes","registerListener","tablesUpdated","notification","iterateListeners","cb","i","conn","push","busy","connection","filenameOverride","DB","openDatabase","encryptionKey","undefined","loadAdditionalExtensions","loadPowerSyncExtension","OPSQLiteConnection","baseDB","openOptions","dbLocation","location","open","extensions","length","extension","loadExtension","path","entryPoint","Platform","OS","libPath","getDylibPath","close","abort","forEach","c","readLock","fn","Promise","resolve","reject","availableConnection","find","error","processQueue","next","shift","writeLock","abortListener","signal","addEventListener","mutexRunExclusive","aborted","flushUpdates","ex","removeEventListener","refreshSchema","readConnection","OPSQLiteDBAdapter","DBAdapterDefaultMixin","executeBatch","query","params","tx","executeNativeBatch","exports"],"sourceRoot":"../../../src","sources":["db/OPSqliteAdapter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { BaseObserver, RowUpdateType } from '@powersync/common';
|
|
4
|
-
|
|
3
|
+
import { BaseObserver, DBGetUtilsDefaultMixin, RowUpdateType } from '@powersync/common';
|
|
4
|
+
class OPSQLiteExecutor extends BaseObserver {
|
|
5
5
|
constructor(options) {
|
|
6
6
|
super();
|
|
7
7
|
this.options = options;
|
|
@@ -71,7 +71,7 @@ export class OPSQLiteConnection extends BaseObserver {
|
|
|
71
71
|
async executeRaw(query, params) {
|
|
72
72
|
return await this.DB.executeRaw(query, params);
|
|
73
73
|
}
|
|
74
|
-
async
|
|
74
|
+
async executeNativeBatch(query, params = []) {
|
|
75
75
|
const tuple = [[query, params[0]]];
|
|
76
76
|
params.slice(1).forEach(p => tuple.push([query, p]));
|
|
77
77
|
const result = await this.DB.executeBatch(tuple);
|
|
@@ -79,21 +79,8 @@ export class OPSQLiteConnection extends BaseObserver {
|
|
|
79
79
|
rowsAffected: result.rowsAffected ?? 0
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return result.rows ?? [];
|
|
85
|
-
}
|
|
86
|
-
async getOptional(sql, parameters) {
|
|
87
|
-
const result = await this.DB.execute(sql, parameters);
|
|
88
|
-
return result.rows?.[0] ?? null;
|
|
89
|
-
}
|
|
90
|
-
async get(sql, parameters) {
|
|
91
|
-
const result = await this.getOptional(sql, parameters);
|
|
92
|
-
if (!result) {
|
|
93
|
-
throw new Error('Result set is empty');
|
|
94
|
-
}
|
|
95
|
-
return result;
|
|
96
|
-
}
|
|
82
|
+
}
|
|
83
|
+
export class OPSQLiteConnection extends DBGetUtilsDefaultMixin(OPSQLiteExecutor) {
|
|
97
84
|
async refreshSchema() {
|
|
98
85
|
await this.get("PRAGMA table_info('sqlite_master')");
|
|
99
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseObserver","RowUpdateType","
|
|
1
|
+
{"version":3,"names":["BaseObserver","DBGetUtilsDefaultMixin","RowUpdateType","OPSQLiteExecutor","constructor","options","DB","baseDB","updateBuffer","rollbackHook","updateHook","update","addTableUpdate","opType","operation","SQLITE_INSERT","SQLITE_DELETE","SQLITE_UPDATE","push","table","rowId","flushUpdates","length","groupedUpdates","reduce","grouping","updateGroup","batchedUpdate","rawUpdates","tables","Object","keys","iterateListeners","l","tablesUpdated","close","execute","query","params","res","insertId","rowsAffected","rows","_array","item","index","executeRaw","executeNativeBatch","tuple","slice","forEach","p","result","executeBatch","OPSQLiteConnection","refreshSchema","get"],"sourceRoot":"../../../src","sources":["db/OPSQLiteConnection.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { getDylibPath, open } from '@op-engineering/op-sqlite';
|
|
4
|
-
import { BaseObserver, mutexRunExclusive } from '@powersync/common';
|
|
4
|
+
import { BaseObserver, DBAdapterDefaultMixin, mutexRunExclusive } from '@powersync/common';
|
|
5
5
|
import { Mutex } from 'async-mutex';
|
|
6
6
|
import { Platform } from 'react-native';
|
|
7
7
|
import { OPSQLiteConnection } from "./OPSQLiteConnection.js";
|
|
@@ -11,7 +11,7 @@ import { OPSQLiteConnection } from "./OPSQLiteConnection.js";
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
const READ_CONNECTIONS = 5;
|
|
14
|
-
|
|
14
|
+
class OPSQLiteConnectionPool extends BaseObserver {
|
|
15
15
|
readQueue = [];
|
|
16
16
|
constructor(options) {
|
|
17
17
|
super();
|
|
@@ -177,73 +177,6 @@ export class OPSQLiteDBAdapter extends BaseObserver {
|
|
|
177
177
|
}
|
|
178
178
|
});
|
|
179
179
|
}
|
|
180
|
-
readTransaction(fn, options) {
|
|
181
|
-
return this.readLock(ctx => this.internalTransaction(ctx, fn));
|
|
182
|
-
}
|
|
183
|
-
writeTransaction(fn, options) {
|
|
184
|
-
return this.writeLock(ctx => this.internalTransaction(ctx, fn));
|
|
185
|
-
}
|
|
186
|
-
getAll(sql, parameters) {
|
|
187
|
-
return this.readLock(ctx => ctx.getAll(sql, parameters));
|
|
188
|
-
}
|
|
189
|
-
getOptional(sql, parameters) {
|
|
190
|
-
return this.readLock(ctx => ctx.getOptional(sql, parameters));
|
|
191
|
-
}
|
|
192
|
-
get(sql, parameters) {
|
|
193
|
-
return this.readLock(ctx => ctx.get(sql, parameters));
|
|
194
|
-
}
|
|
195
|
-
execute(query, params) {
|
|
196
|
-
return this.writeLock(ctx => ctx.execute(query, params));
|
|
197
|
-
}
|
|
198
|
-
executeRaw(query, params) {
|
|
199
|
-
return this.writeLock(ctx => ctx.executeRaw(query, params));
|
|
200
|
-
}
|
|
201
|
-
async executeBatch(query, params = []) {
|
|
202
|
-
return this.writeLock(ctx => ctx.executeBatch(query, params));
|
|
203
|
-
}
|
|
204
|
-
async internalTransaction(connection, fn) {
|
|
205
|
-
let finalized = false;
|
|
206
|
-
const commit = async () => {
|
|
207
|
-
if (finalized) {
|
|
208
|
-
return {
|
|
209
|
-
rowsAffected: 0
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
finalized = true;
|
|
213
|
-
return connection.execute('COMMIT');
|
|
214
|
-
};
|
|
215
|
-
const rollback = async () => {
|
|
216
|
-
if (finalized) {
|
|
217
|
-
return {
|
|
218
|
-
rowsAffected: 0
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
finalized = true;
|
|
222
|
-
return connection.execute('ROLLBACK');
|
|
223
|
-
};
|
|
224
|
-
try {
|
|
225
|
-
await connection.execute('BEGIN');
|
|
226
|
-
const result = await fn({
|
|
227
|
-
execute: (query, params) => connection.execute(query, params),
|
|
228
|
-
executeRaw: (query, params) => connection.executeRaw(query, params),
|
|
229
|
-
get: (query, params) => connection.get(query, params),
|
|
230
|
-
getAll: (query, params) => connection.getAll(query, params),
|
|
231
|
-
getOptional: (query, params) => connection.getOptional(query, params),
|
|
232
|
-
commit,
|
|
233
|
-
rollback
|
|
234
|
-
});
|
|
235
|
-
await commit();
|
|
236
|
-
return result;
|
|
237
|
-
} catch (ex) {
|
|
238
|
-
try {
|
|
239
|
-
await rollback();
|
|
240
|
-
} catch (ex2) {
|
|
241
|
-
// In rare cases, a rollback may fail.
|
|
242
|
-
// Safe to ignore.
|
|
243
|
-
}
|
|
244
|
-
throw ex;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
180
|
async refreshSchema() {
|
|
248
181
|
await this.initialized;
|
|
249
182
|
await this.writeConnection.refreshSchema();
|
|
@@ -254,4 +187,11 @@ export class OPSQLiteDBAdapter extends BaseObserver {
|
|
|
254
187
|
}
|
|
255
188
|
}
|
|
256
189
|
}
|
|
190
|
+
export class OPSQLiteDBAdapter extends DBAdapterDefaultMixin(OPSQLiteConnectionPool) {
|
|
191
|
+
async executeBatch(query, params = []) {
|
|
192
|
+
return await this.writeLock(async tx => {
|
|
193
|
+
return await tx.executeNativeBatch(query, params);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
257
197
|
//# sourceMappingURL=OPSqliteAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getDylibPath","open","BaseObserver","mutexRunExclusive","Mutex","Platform","OPSQLiteConnection","READ_CONNECTIONS","
|
|
1
|
+
{"version":3,"names":["getDylibPath","open","BaseObserver","DBAdapterDefaultMixin","mutexRunExclusive","Mutex","Platform","OPSQLiteConnection","READ_CONNECTIONS","OPSQLiteConnectionPool","readQueue","constructor","options","name","writeMutex","readConnections","writeConnection","abortController","AbortController","initialized","init","lockTimeoutMs","journalMode","journalSizeLimit","synchronous","cacheSizeKb","temporaryStorage","sqliteOptions","dbFilename","openConnection","baseStatements","writeConnectionStatements","readConnectionStatements","statement","tries","execute","e","Error","message","includes","registerListener","tablesUpdated","notification","iterateListeners","cb","i","conn","push","busy","connection","filenameOverride","DB","openDatabase","encryptionKey","undefined","loadAdditionalExtensions","loadPowerSyncExtension","baseDB","openOptions","dbLocation","location","extensions","length","extension","loadExtension","path","entryPoint","OS","libPath","close","abort","forEach","c","readLock","fn","Promise","resolve","reject","availableConnection","find","error","processQueue","next","shift","writeLock","abortListener","signal","addEventListener","aborted","flushUpdates","ex","removeEventListener","refreshSchema","readConnection","OPSQLiteDBAdapter","executeBatch","query","params","tx","executeNativeBatch"],"sourceRoot":"../../../src","sources":["db/OPSqliteAdapter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DB, UpdateHookOperation } from '@op-engineering/op-sqlite';
|
|
2
|
-
import { BaseObserver, DBAdapterListener, QueryResult } from '@powersync/common';
|
|
2
|
+
import { BaseObserver, DBAdapterListener, LockContext, QueryResult, SqlExecutor } from '@powersync/common';
|
|
3
3
|
export type OPSQLiteConnectionOptions = {
|
|
4
4
|
baseDB: DB;
|
|
5
5
|
};
|
|
@@ -9,7 +9,7 @@ export type OPSQLiteUpdateNotification = {
|
|
|
9
9
|
row?: any;
|
|
10
10
|
rowId: number;
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
declare class OPSQLiteExecutor extends BaseObserver<DBAdapterListener> implements Omit<SqlExecutor, 'executeBatch'> {
|
|
13
13
|
protected options: OPSQLiteConnectionOptions;
|
|
14
14
|
protected DB: DB;
|
|
15
15
|
private updateBuffer;
|
|
@@ -19,10 +19,18 @@ export declare class OPSQLiteConnection extends BaseObserver<DBAdapterListener>
|
|
|
19
19
|
close(): void;
|
|
20
20
|
execute(query: string, params?: any[]): Promise<QueryResult>;
|
|
21
21
|
executeRaw(query: string, params?: any[]): Promise<any[][]>;
|
|
22
|
-
|
|
22
|
+
executeNativeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
23
|
+
}
|
|
24
|
+
declare const OPSQLiteConnection_base: (new (...args: any[]) => {
|
|
23
25
|
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
24
26
|
getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
|
|
25
27
|
get<T>(sql: string, parameters?: any[]): Promise<T>;
|
|
28
|
+
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
29
|
+
execute: (query: string, params?: any[] | undefined) => Promise<QueryResult>;
|
|
30
|
+
executeRaw: (query: string, params?: any[] | undefined) => Promise<any[][]>;
|
|
31
|
+
}) & typeof OPSQLiteExecutor;
|
|
32
|
+
export declare class OPSQLiteConnection extends OPSQLiteConnection_base implements LockContext {
|
|
26
33
|
refreshSchema(): Promise<void>;
|
|
27
34
|
}
|
|
35
|
+
export {};
|
|
28
36
|
//# sourceMappingURL=OPSQLiteConnection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OPSQLiteConnection.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSQLiteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAiB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EACL,YAAY,EAEZ,iBAAiB,
|
|
1
|
+
{"version":3,"file":"OPSQLiteConnection.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSQLiteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAiB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EACL,YAAY,EAEZ,iBAAiB,EAEjB,WAAW,EACX,WAAW,EAEX,WAAW,EAEZ,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,mBAAmB,CAAC;IAC/B,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,cAAM,gBAAiB,SAAQ,YAAY,CAAC,iBAAiB,CAAE,YAAW,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC;IAI7F,SAAS,CAAC,OAAO,EAAE,yBAAyB;IAHxD,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;IACjB,OAAO,CAAC,YAAY,CAAuB;gBAErB,OAAO,EAAE,yBAAyB;IAcxD,cAAc,CAAC,MAAM,EAAE,0BAA0B;IAqBjD,YAAY;IAsBZ,KAAK;IAIC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAa5D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IAI3D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAE,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC;CASpF;;qCAPK,CAAC;0CAEU,CAAA;kCAEA,CAAC;sCAKK,CAAC;mCAAyE,CAAC;sCAE5C,CAAC;;AAFvD,qBAAa,kBAAmB,SAAQ,uBAAyC,YAAW,WAAW;IAC/F,aAAa;CAGpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseObserver, DBAdapter, DBAdapterListener, DBLockOptions, QueryResult, Transaction } from '@powersync/common';
|
|
1
|
+
import { BaseObserver, ConnectionPool, DBAdapter, DBAdapterListener, DBLockOptions, QueryResult, Transaction } from '@powersync/common';
|
|
2
2
|
import { Mutex } from 'async-mutex';
|
|
3
3
|
import { OPSQLiteConnection } from './OPSQLiteConnection';
|
|
4
4
|
import { SqliteOptions } from './SqliteOptions';
|
|
@@ -10,7 +10,7 @@ export type OPSQLiteAdapterOptions = {
|
|
|
10
10
|
dbLocation?: string;
|
|
11
11
|
sqliteOptions?: SqliteOptions;
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
declare class OPSQLiteConnectionPool extends BaseObserver<DBAdapterListener> implements ConnectionPool {
|
|
14
14
|
protected options: OPSQLiteAdapterOptions;
|
|
15
15
|
name: string;
|
|
16
16
|
protected writeMutex: Mutex;
|
|
@@ -32,6 +32,9 @@ export declare class OPSQLiteDBAdapter extends BaseObserver<DBAdapterListener> i
|
|
|
32
32
|
readLock<T>(fn: (tx: OPSQLiteConnection) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
33
33
|
private processQueue;
|
|
34
34
|
writeLock<T>(fn: (tx: OPSQLiteConnection) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
35
|
+
refreshSchema(): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
declare const OPSQLiteDBAdapter_base: (new (...args: any[]) => {
|
|
35
38
|
readTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
36
39
|
writeTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
37
40
|
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
@@ -40,7 +43,15 @@ export declare class OPSQLiteDBAdapter extends BaseObserver<DBAdapterListener> i
|
|
|
40
43
|
execute(query: string, params?: any[]): Promise<QueryResult>;
|
|
41
44
|
executeRaw(query: string, params?: any[]): Promise<any[][]>;
|
|
42
45
|
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
name: string;
|
|
47
|
+
close: () => void | Promise<void>;
|
|
48
|
+
readLock: <T>(fn: (tx: import("@powersync/common").LockContext) => Promise<T>, options?: DBLockOptions) => Promise<T>;
|
|
49
|
+
writeLock: <T>(fn: (tx: import("@powersync/common").LockContext) => Promise<T>, options?: DBLockOptions) => Promise<T>;
|
|
50
|
+
refreshSchema: () => Promise<void>;
|
|
51
|
+
registerListener(listener: Partial<DBAdapterListener>): () => void;
|
|
52
|
+
}) & typeof OPSQLiteConnectionPool;
|
|
53
|
+
export declare class OPSQLiteDBAdapter extends OPSQLiteDBAdapter_base implements DBAdapter {
|
|
54
|
+
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
45
55
|
}
|
|
56
|
+
export {};
|
|
46
57
|
//# sourceMappingURL=OPSqliteAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OPSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSqliteAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,SAAS,
|
|
1
|
+
{"version":3,"file":"OPSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSqliteAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EAET,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EAEZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAIF,cAAM,sBAAuB,SAAQ,YAAY,CAAC,iBAAiB,CAAE,YAAW,cAAc;IAahF,SAAS,CAAC,OAAO,EAAE,sBAAsB;IAZrD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;IAE5B,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,kBAAkB,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAE3F,SAAS,CAAC,eAAe,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAErD,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,eAAe,CAAkB;gBAEnB,OAAO,EAAE,sBAAsB;cAWrC,IAAI;cAoDJ,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAetF,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,wBAAwB;YAQlB,sBAAsB;IAS9B,KAAK;IAUL,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;YA6BpF,YAAY;IASpB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;IAgC7F,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAUrC;;mEA/DgB,CAAC;oEAIR,CAAV;qCAIW,CAAC;0CAKR,CAAC;kCAC8B,CAAC;iCAOlC,CAAF;oCAAwE,CAAC;sCAG9D,CAAA;;;0FAGuC,CAAC;2FAI7C,CAAF;;;;AAkCJ,qBAAa,iBAAkB,SAAQ,sBAA8C,YAAW,SAAS;IACjG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAE,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC;CAK9E"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DB, UpdateHookOperation } from '@op-engineering/op-sqlite';
|
|
2
|
-
import { BaseObserver, DBAdapterListener, QueryResult } from '@powersync/common';
|
|
2
|
+
import { BaseObserver, DBAdapterListener, LockContext, QueryResult, SqlExecutor } from '@powersync/common';
|
|
3
3
|
export type OPSQLiteConnectionOptions = {
|
|
4
4
|
baseDB: DB;
|
|
5
5
|
};
|
|
@@ -9,7 +9,7 @@ export type OPSQLiteUpdateNotification = {
|
|
|
9
9
|
row?: any;
|
|
10
10
|
rowId: number;
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
declare class OPSQLiteExecutor extends BaseObserver<DBAdapterListener> implements Omit<SqlExecutor, 'executeBatch'> {
|
|
13
13
|
protected options: OPSQLiteConnectionOptions;
|
|
14
14
|
protected DB: DB;
|
|
15
15
|
private updateBuffer;
|
|
@@ -19,10 +19,18 @@ export declare class OPSQLiteConnection extends BaseObserver<DBAdapterListener>
|
|
|
19
19
|
close(): void;
|
|
20
20
|
execute(query: string, params?: any[]): Promise<QueryResult>;
|
|
21
21
|
executeRaw(query: string, params?: any[]): Promise<any[][]>;
|
|
22
|
-
|
|
22
|
+
executeNativeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
23
|
+
}
|
|
24
|
+
declare const OPSQLiteConnection_base: (new (...args: any[]) => {
|
|
23
25
|
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
24
26
|
getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
|
|
25
27
|
get<T>(sql: string, parameters?: any[]): Promise<T>;
|
|
28
|
+
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
29
|
+
execute: (query: string, params?: any[] | undefined) => Promise<QueryResult>;
|
|
30
|
+
executeRaw: (query: string, params?: any[] | undefined) => Promise<any[][]>;
|
|
31
|
+
}) & typeof OPSQLiteExecutor;
|
|
32
|
+
export declare class OPSQLiteConnection extends OPSQLiteConnection_base implements LockContext {
|
|
26
33
|
refreshSchema(): Promise<void>;
|
|
27
34
|
}
|
|
35
|
+
export {};
|
|
28
36
|
//# sourceMappingURL=OPSQLiteConnection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OPSQLiteConnection.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSQLiteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAiB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EACL,YAAY,EAEZ,iBAAiB,
|
|
1
|
+
{"version":3,"file":"OPSQLiteConnection.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSQLiteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAiB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EACL,YAAY,EAEZ,iBAAiB,EAEjB,WAAW,EACX,WAAW,EAEX,WAAW,EAEZ,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,mBAAmB,CAAC;IAC/B,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,cAAM,gBAAiB,SAAQ,YAAY,CAAC,iBAAiB,CAAE,YAAW,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC;IAI7F,SAAS,CAAC,OAAO,EAAE,yBAAyB;IAHxD,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;IACjB,OAAO,CAAC,YAAY,CAAuB;gBAErB,OAAO,EAAE,yBAAyB;IAcxD,cAAc,CAAC,MAAM,EAAE,0BAA0B;IAqBjD,YAAY;IAsBZ,KAAK;IAIC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAa5D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IAI3D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAE,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC;CASpF;;qCAPK,CAAC;0CAEU,CAAA;kCAEA,CAAC;sCAKK,CAAC;mCAAyE,CAAC;sCAE5C,CAAC;;AAFvD,qBAAa,kBAAmB,SAAQ,uBAAyC,YAAW,WAAW;IAC/F,aAAa;CAGpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseObserver, DBAdapter, DBAdapterListener, DBLockOptions, QueryResult, Transaction } from '@powersync/common';
|
|
1
|
+
import { BaseObserver, ConnectionPool, DBAdapter, DBAdapterListener, DBLockOptions, QueryResult, Transaction } from '@powersync/common';
|
|
2
2
|
import { Mutex } from 'async-mutex';
|
|
3
3
|
import { OPSQLiteConnection } from './OPSQLiteConnection';
|
|
4
4
|
import { SqliteOptions } from './SqliteOptions';
|
|
@@ -10,7 +10,7 @@ export type OPSQLiteAdapterOptions = {
|
|
|
10
10
|
dbLocation?: string;
|
|
11
11
|
sqliteOptions?: SqliteOptions;
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
declare class OPSQLiteConnectionPool extends BaseObserver<DBAdapterListener> implements ConnectionPool {
|
|
14
14
|
protected options: OPSQLiteAdapterOptions;
|
|
15
15
|
name: string;
|
|
16
16
|
protected writeMutex: Mutex;
|
|
@@ -32,6 +32,9 @@ export declare class OPSQLiteDBAdapter extends BaseObserver<DBAdapterListener> i
|
|
|
32
32
|
readLock<T>(fn: (tx: OPSQLiteConnection) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
33
33
|
private processQueue;
|
|
34
34
|
writeLock<T>(fn: (tx: OPSQLiteConnection) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
35
|
+
refreshSchema(): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
declare const OPSQLiteDBAdapter_base: (new (...args: any[]) => {
|
|
35
38
|
readTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
36
39
|
writeTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
37
40
|
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
@@ -40,7 +43,15 @@ export declare class OPSQLiteDBAdapter extends BaseObserver<DBAdapterListener> i
|
|
|
40
43
|
execute(query: string, params?: any[]): Promise<QueryResult>;
|
|
41
44
|
executeRaw(query: string, params?: any[]): Promise<any[][]>;
|
|
42
45
|
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
name: string;
|
|
47
|
+
close: () => void | Promise<void>;
|
|
48
|
+
readLock: <T>(fn: (tx: import("@powersync/common").LockContext) => Promise<T>, options?: DBLockOptions) => Promise<T>;
|
|
49
|
+
writeLock: <T>(fn: (tx: import("@powersync/common").LockContext) => Promise<T>, options?: DBLockOptions) => Promise<T>;
|
|
50
|
+
refreshSchema: () => Promise<void>;
|
|
51
|
+
registerListener(listener: Partial<DBAdapterListener>): () => void;
|
|
52
|
+
}) & typeof OPSQLiteConnectionPool;
|
|
53
|
+
export declare class OPSQLiteDBAdapter extends OPSQLiteDBAdapter_base implements DBAdapter {
|
|
54
|
+
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
45
55
|
}
|
|
56
|
+
export {};
|
|
46
57
|
//# sourceMappingURL=OPSqliteAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OPSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSqliteAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,SAAS,
|
|
1
|
+
{"version":3,"file":"OPSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSqliteAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EAET,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EAEZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAIF,cAAM,sBAAuB,SAAQ,YAAY,CAAC,iBAAiB,CAAE,YAAW,cAAc;IAahF,SAAS,CAAC,OAAO,EAAE,sBAAsB;IAZrD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;IAE5B,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,kBAAkB,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAE3F,SAAS,CAAC,eAAe,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAErD,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,eAAe,CAAkB;gBAEnB,OAAO,EAAE,sBAAsB;cAWrC,IAAI;cAoDJ,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAetF,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,wBAAwB;YAQlB,sBAAsB;IAS9B,KAAK;IAUL,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;YA6BpF,YAAY;IASpB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;IAgC7F,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAUrC;;mEA/DgB,CAAC;oEAIR,CAAV;qCAIW,CAAC;0CAKR,CAAC;kCAC8B,CAAC;iCAOlC,CAAF;oCAAwE,CAAC;sCAG9D,CAAA;;;0FAGuC,CAAC;2FAI7C,CAAF;;;;AAkCJ,qBAAa,iBAAkB,SAAQ,sBAA8C,YAAW,SAAS;IACjG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAE,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC;CAK9E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powersync/op-sqlite",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"description": "PowerSync - sync Postgres or MongoDB with SQLite in your React Native app for offline-first and real-time data",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/commonjs/index.js",
|
|
@@ -59,13 +59,13 @@
|
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
61
|
"@op-engineering/op-sqlite": "^13.0.0 || ^14.0.0 || ^15.0.0",
|
|
62
|
-
"@powersync/common": "^1.
|
|
62
|
+
"@powersync/common": "^1.49.0",
|
|
63
63
|
"react": "*",
|
|
64
64
|
"react-native": "*"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"async-mutex": "^0.5.0",
|
|
68
|
-
"@powersync/common": "1.
|
|
68
|
+
"@powersync/common": "1.49.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@op-engineering/op-sqlite": "^15.2.2",
|
|
@@ -3,8 +3,11 @@ import {
|
|
|
3
3
|
BaseObserver,
|
|
4
4
|
BatchedUpdateNotification,
|
|
5
5
|
DBAdapterListener,
|
|
6
|
+
DBGetUtilsDefaultMixin,
|
|
7
|
+
LockContext,
|
|
6
8
|
QueryResult,
|
|
7
9
|
RowUpdateType,
|
|
10
|
+
SqlExecutor,
|
|
8
11
|
UpdateNotification
|
|
9
12
|
} from '@powersync/common';
|
|
10
13
|
|
|
@@ -19,7 +22,7 @@ export type OPSQLiteUpdateNotification = {
|
|
|
19
22
|
rowId: number;
|
|
20
23
|
};
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
class OPSQLiteExecutor extends BaseObserver<DBAdapterListener> implements Omit<SqlExecutor, 'executeBatch'> {
|
|
23
26
|
protected DB: DB;
|
|
24
27
|
private updateBuffer: UpdateNotification[];
|
|
25
28
|
|
|
@@ -101,7 +104,7 @@ export class OPSQLiteConnection extends BaseObserver<DBAdapterListener> {
|
|
|
101
104
|
return await this.DB.executeRaw(query, params);
|
|
102
105
|
}
|
|
103
106
|
|
|
104
|
-
async
|
|
107
|
+
async executeNativeBatch(query: string, params: any[][] = []): Promise<QueryResult> {
|
|
105
108
|
const tuple: SQLBatchTuple[] = [[query, params[0]]];
|
|
106
109
|
params.slice(1).forEach((p) => tuple.push([query, p]));
|
|
107
110
|
|
|
@@ -110,25 +113,9 @@ export class OPSQLiteConnection extends BaseObserver<DBAdapterListener> {
|
|
|
110
113
|
rowsAffected: result.rowsAffected ?? 0
|
|
111
114
|
};
|
|
112
115
|
}
|
|
116
|
+
}
|
|
113
117
|
|
|
114
|
-
|
|
115
|
-
const result = await this.DB.execute(sql, parameters);
|
|
116
|
-
return (result.rows ?? []) as T[];
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
async getOptional<T>(sql: string, parameters?: any[]): Promise<T | null> {
|
|
120
|
-
const result = await this.DB.execute(sql, parameters);
|
|
121
|
-
return (result.rows?.[0] as T) ?? null;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
async get<T>(sql: string, parameters?: any[]): Promise<T> {
|
|
125
|
-
const result = await this.getOptional(sql, parameters);
|
|
126
|
-
if (!result) {
|
|
127
|
-
throw new Error('Result set is empty');
|
|
128
|
-
}
|
|
129
|
-
return result as T;
|
|
130
|
-
}
|
|
131
|
-
|
|
118
|
+
export class OPSQLiteConnection extends DBGetUtilsDefaultMixin(OPSQLiteExecutor) implements LockContext {
|
|
132
119
|
async refreshSchema() {
|
|
133
120
|
await this.get("PRAGMA table_info('sqlite_master')");
|
|
134
121
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { getDylibPath, open, type DB } from '@op-engineering/op-sqlite';
|
|
1
|
+
import { getDylibPath, open, SQLBatchTuple, type DB } from '@op-engineering/op-sqlite';
|
|
2
2
|
import {
|
|
3
3
|
BaseObserver,
|
|
4
|
+
ConnectionPool,
|
|
4
5
|
DBAdapter,
|
|
6
|
+
DBAdapterDefaultMixin,
|
|
5
7
|
DBAdapterListener,
|
|
6
8
|
DBLockOptions,
|
|
7
9
|
QueryResult,
|
|
@@ -24,7 +26,7 @@ export type OPSQLiteAdapterOptions = {
|
|
|
24
26
|
|
|
25
27
|
const READ_CONNECTIONS = 5;
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
class OPSQLiteConnectionPool extends BaseObserver<DBAdapterListener> implements ConnectionPool {
|
|
28
30
|
name: string;
|
|
29
31
|
protected writeMutex: Mutex;
|
|
30
32
|
|
|
@@ -229,81 +231,6 @@ export class OPSQLiteDBAdapter extends BaseObserver<DBAdapterListener> implement
|
|
|
229
231
|
});
|
|
230
232
|
}
|
|
231
233
|
|
|
232
|
-
readTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T> {
|
|
233
|
-
return this.readLock((ctx) => this.internalTransaction(ctx, fn));
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
writeTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T> {
|
|
237
|
-
return this.writeLock((ctx) => this.internalTransaction(ctx, fn));
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
getAll<T>(sql: string, parameters?: any[]): Promise<T[]> {
|
|
241
|
-
return this.readLock((ctx) => ctx.getAll(sql, parameters));
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
getOptional<T>(sql: string, parameters?: any[]): Promise<T | null> {
|
|
245
|
-
return this.readLock((ctx) => ctx.getOptional(sql, parameters));
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
get<T>(sql: string, parameters?: any[]): Promise<T> {
|
|
249
|
-
return this.readLock((ctx) => ctx.get(sql, parameters));
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
execute(query: string, params?: any[]) {
|
|
253
|
-
return this.writeLock((ctx) => ctx.execute(query, params));
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
executeRaw(query: string, params?: any[]) {
|
|
257
|
-
return this.writeLock((ctx) => ctx.executeRaw(query, params));
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
async executeBatch(query: string, params: any[][] = []): Promise<QueryResult> {
|
|
261
|
-
return this.writeLock((ctx) => ctx.executeBatch(query, params));
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
protected async internalTransaction<T>(
|
|
265
|
-
connection: OPSQLiteConnection,
|
|
266
|
-
fn: (tx: Transaction) => Promise<T>
|
|
267
|
-
): Promise<T> {
|
|
268
|
-
let finalized = false;
|
|
269
|
-
const commit = async (): Promise<QueryResult> => {
|
|
270
|
-
if (finalized) {
|
|
271
|
-
return { rowsAffected: 0 };
|
|
272
|
-
}
|
|
273
|
-
finalized = true;
|
|
274
|
-
return connection.execute('COMMIT');
|
|
275
|
-
};
|
|
276
|
-
const rollback = async (): Promise<QueryResult> => {
|
|
277
|
-
if (finalized) {
|
|
278
|
-
return { rowsAffected: 0 };
|
|
279
|
-
}
|
|
280
|
-
finalized = true;
|
|
281
|
-
return connection.execute('ROLLBACK');
|
|
282
|
-
};
|
|
283
|
-
try {
|
|
284
|
-
await connection.execute('BEGIN');
|
|
285
|
-
const result = await fn({
|
|
286
|
-
execute: (query, params) => connection.execute(query, params),
|
|
287
|
-
executeRaw: (query, params) => connection.executeRaw(query, params),
|
|
288
|
-
get: (query, params) => connection.get(query, params),
|
|
289
|
-
getAll: (query, params) => connection.getAll(query, params),
|
|
290
|
-
getOptional: (query, params) => connection.getOptional(query, params),
|
|
291
|
-
commit,
|
|
292
|
-
rollback
|
|
293
|
-
});
|
|
294
|
-
await commit();
|
|
295
|
-
return result;
|
|
296
|
-
} catch (ex) {
|
|
297
|
-
try {
|
|
298
|
-
await rollback();
|
|
299
|
-
} catch (ex2) {
|
|
300
|
-
// In rare cases, a rollback may fail.
|
|
301
|
-
// Safe to ignore.
|
|
302
|
-
}
|
|
303
|
-
throw ex;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
|
|
307
234
|
async refreshSchema(): Promise<void> {
|
|
308
235
|
await this.initialized;
|
|
309
236
|
await this.writeConnection!.refreshSchema();
|
|
@@ -315,3 +242,11 @@ export class OPSQLiteDBAdapter extends BaseObserver<DBAdapterListener> implement
|
|
|
315
242
|
}
|
|
316
243
|
}
|
|
317
244
|
}
|
|
245
|
+
|
|
246
|
+
export class OPSQLiteDBAdapter extends DBAdapterDefaultMixin(OPSQLiteConnectionPool) implements DBAdapter {
|
|
247
|
+
async executeBatch(query: string, params: any[][] = []): Promise<QueryResult> {
|
|
248
|
+
return await this.writeLock(async (tx) => {
|
|
249
|
+
return await (tx as OPSQLiteConnection).executeNativeBatch(query, params);
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|