@syncular/dialect-electron-sqlite 0.0.6-159 → 0.0.6-165
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/dist/index.d.ts +3 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -43
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
- package/src/index.ts +11 -77
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
* This keeps database access in the Electron main process while preserving a
|
|
8
8
|
* standard Kysely API in renderer code.
|
|
9
9
|
*/
|
|
10
|
-
import type {
|
|
11
|
-
import { type Kysely } from 'kysely';
|
|
10
|
+
import type { Dialect } from 'kysely';
|
|
12
11
|
export type ElectronSqliteInteger = bigint | number | string;
|
|
13
12
|
export interface ElectronSqliteExecuteRequest {
|
|
14
13
|
sql: string;
|
|
@@ -73,13 +72,13 @@ export interface RegisterElectronSqliteIpcOptions {
|
|
|
73
72
|
/**
|
|
74
73
|
* Create the Electron IPC SQLite dialect directly.
|
|
75
74
|
*/
|
|
76
|
-
export declare function createElectronSqliteDialect(options: ElectronSqliteOptions):
|
|
75
|
+
export declare function createElectronSqliteDialect(options: ElectronSqliteOptions): Dialect;
|
|
77
76
|
/**
|
|
78
77
|
* Create the Electron dialect using `window.electronAPI[bridgeKey]`.
|
|
79
78
|
*
|
|
80
79
|
* `bridgeKey` defaults to `sqlite`.
|
|
81
80
|
*/
|
|
82
|
-
export declare function createElectronSqliteDialectFromWindow(options?: ElectronSqliteWindowOptions):
|
|
81
|
+
export declare function createElectronSqliteDialectFromWindow(options?: ElectronSqliteWindowOptions): Dialect;
|
|
83
82
|
/**
|
|
84
83
|
* Build an Electron SQLite bridge from `ipcRenderer.invoke(...)`.
|
|
85
84
|
*
|
|
@@ -107,17 +106,8 @@ export declare function createElectronSqliteBridgeFromDialect(options: ElectronS
|
|
|
107
106
|
* channel contract.
|
|
108
107
|
*/
|
|
109
108
|
export declare function registerElectronSqliteIpc(options: RegisterElectronSqliteIpcOptions): ElectronSqliteIpcChannels;
|
|
110
|
-
declare class ElectronSqliteDialect implements Dialect {
|
|
111
|
-
#private;
|
|
112
|
-
constructor(options: ElectronSqliteOptions);
|
|
113
|
-
createAdapter(): DialectAdapter;
|
|
114
|
-
createDriver(): Driver;
|
|
115
|
-
createQueryCompiler(): QueryCompiler;
|
|
116
|
-
createIntrospector(db: Kysely<unknown>): DatabaseIntrospector;
|
|
117
|
-
}
|
|
118
109
|
declare global {
|
|
119
110
|
interface Window extends ElectronSqliteWindowLike {
|
|
120
111
|
}
|
|
121
112
|
}
|
|
122
|
-
export {};
|
|
123
113
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* This keeps database access in the Electron main process while preserving a
|
|
8
8
|
* standard Kysely API in renderer code.
|
|
9
9
|
*/
|
|
10
|
-
import { CompiledQuery
|
|
10
|
+
import { CompiledQuery } from 'kysely';
|
|
11
|
+
import { BaseSqliteDialect, BaseSqliteDriver } from 'kysely-generic-sqlite';
|
|
11
12
|
const DEFAULT_WINDOW_BRIDGE_KEY = 'sqlite';
|
|
12
13
|
const DEFAULT_ELECTRON_SQLITE_CHANNELS = {
|
|
13
14
|
open: 'sqlite:open',
|
|
@@ -19,7 +20,7 @@ const INTEGER_PATTERN = /^-?\d+$/;
|
|
|
19
20
|
* Create the Electron IPC SQLite dialect directly.
|
|
20
21
|
*/
|
|
21
22
|
export function createElectronSqliteDialect(options) {
|
|
22
|
-
return new
|
|
23
|
+
return new BaseSqliteDialect(() => new ElectronSqliteDriver(options));
|
|
23
24
|
}
|
|
24
25
|
/**
|
|
25
26
|
* Create the Electron dialect using `window.electronAPI[bridgeKey]`.
|
|
@@ -199,51 +200,15 @@ class DialectBackedElectronSqliteBridge {
|
|
|
199
200
|
// ---------------------------------------------------------------------------
|
|
200
201
|
// Kysely Dialect implementation for Electron IPC SQLite
|
|
201
202
|
// ---------------------------------------------------------------------------
|
|
202
|
-
class
|
|
203
|
-
#options;
|
|
204
|
-
constructor(options) {
|
|
205
|
-
this.#options = options;
|
|
206
|
-
}
|
|
207
|
-
createAdapter() {
|
|
208
|
-
return new SqliteAdapter();
|
|
209
|
-
}
|
|
210
|
-
createDriver() {
|
|
211
|
-
return new ElectronSqliteDriver(this.#options);
|
|
212
|
-
}
|
|
213
|
-
createQueryCompiler() {
|
|
214
|
-
return new SqliteQueryCompiler();
|
|
215
|
-
}
|
|
216
|
-
createIntrospector(db) {
|
|
217
|
-
return new SqliteIntrospector(db);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
class ElectronSqliteDriver {
|
|
203
|
+
class ElectronSqliteDriver extends BaseSqliteDriver {
|
|
221
204
|
#bridge;
|
|
222
|
-
#connectionMutex = new ConnectionMutex();
|
|
223
|
-
#connection;
|
|
224
205
|
#opened = false;
|
|
225
206
|
constructor(bridge) {
|
|
207
|
+
super(async () => {
|
|
208
|
+
await this.#ensureOpen();
|
|
209
|
+
this.conn = new ElectronSqliteConnection(this.#bridge.execute);
|
|
210
|
+
});
|
|
226
211
|
this.#bridge = bridge;
|
|
227
|
-
this.#connection = new ElectronSqliteConnection(bridge.execute);
|
|
228
|
-
}
|
|
229
|
-
async init() {
|
|
230
|
-
await this.#ensureOpen();
|
|
231
|
-
}
|
|
232
|
-
async acquireConnection() {
|
|
233
|
-
await this.#connectionMutex.lock();
|
|
234
|
-
return this.#connection;
|
|
235
|
-
}
|
|
236
|
-
async beginTransaction(connection, _settings) {
|
|
237
|
-
await connection.executeQuery(CompiledQuery.raw('begin'));
|
|
238
|
-
}
|
|
239
|
-
async commitTransaction(connection) {
|
|
240
|
-
await connection.executeQuery(CompiledQuery.raw('commit'));
|
|
241
|
-
}
|
|
242
|
-
async rollbackTransaction(connection) {
|
|
243
|
-
await connection.executeQuery(CompiledQuery.raw('rollback'));
|
|
244
|
-
}
|
|
245
|
-
async releaseConnection(_connection) {
|
|
246
|
-
this.#connectionMutex.unlock();
|
|
247
212
|
}
|
|
248
213
|
async destroy() {
|
|
249
214
|
if (this.#bridge.close) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syncular/dialect-electron-sqlite",
|
|
3
|
-
"version": "0.0.6-
|
|
3
|
+
"version": "0.0.6-165",
|
|
4
4
|
"description": "Electron IPC SQLite dialect for the Syncular client",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Benjamin Kniffler",
|
|
@@ -42,13 +42,15 @@
|
|
|
42
42
|
"build": "tsgo",
|
|
43
43
|
"release": "bunx syncular-publish"
|
|
44
44
|
},
|
|
45
|
-
"dependencies": {
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"kysely-generic-sqlite": "^1.2.1"
|
|
47
|
+
},
|
|
46
48
|
"peerDependencies": {
|
|
47
49
|
"kysely": "^0.28.0"
|
|
48
50
|
},
|
|
49
51
|
"devDependencies": {
|
|
50
52
|
"@syncular/config": "0.0.0",
|
|
51
|
-
"@syncular/core": "0.0.6-
|
|
53
|
+
"@syncular/core": "0.0.6-165",
|
|
52
54
|
"kysely": "*"
|
|
53
55
|
},
|
|
54
56
|
"files": [
|
package/src/index.ts
CHANGED
|
@@ -8,23 +8,9 @@
|
|
|
8
8
|
* standard Kysely API in renderer code.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Dialect,
|
|
15
|
-
DialectAdapter,
|
|
16
|
-
Driver,
|
|
17
|
-
QueryCompiler,
|
|
18
|
-
QueryResult,
|
|
19
|
-
TransactionSettings,
|
|
20
|
-
} from 'kysely';
|
|
21
|
-
import {
|
|
22
|
-
CompiledQuery,
|
|
23
|
-
type Kysely,
|
|
24
|
-
SqliteAdapter,
|
|
25
|
-
SqliteIntrospector,
|
|
26
|
-
SqliteQueryCompiler,
|
|
27
|
-
} from 'kysely';
|
|
11
|
+
import type { DatabaseConnection, Dialect, Driver, QueryResult } from 'kysely';
|
|
12
|
+
import { CompiledQuery } from 'kysely';
|
|
13
|
+
import { BaseSqliteDialect, BaseSqliteDriver } from 'kysely-generic-sqlite';
|
|
28
14
|
|
|
29
15
|
export type ElectronSqliteInteger = bigint | number | string;
|
|
30
16
|
|
|
@@ -133,8 +119,8 @@ const INTEGER_PATTERN = /^-?\d+$/;
|
|
|
133
119
|
*/
|
|
134
120
|
export function createElectronSqliteDialect(
|
|
135
121
|
options: ElectronSqliteOptions
|
|
136
|
-
):
|
|
137
|
-
return new
|
|
122
|
+
): Dialect {
|
|
123
|
+
return new BaseSqliteDialect(() => new ElectronSqliteDriver(options));
|
|
138
124
|
}
|
|
139
125
|
|
|
140
126
|
/**
|
|
@@ -144,7 +130,7 @@ export function createElectronSqliteDialect(
|
|
|
144
130
|
*/
|
|
145
131
|
export function createElectronSqliteDialectFromWindow(
|
|
146
132
|
options: ElectronSqliteWindowOptions = {}
|
|
147
|
-
):
|
|
133
|
+
): Dialect {
|
|
148
134
|
return createElectronSqliteDialect(resolveWindowBridge(options));
|
|
149
135
|
}
|
|
150
136
|
|
|
@@ -373,68 +359,16 @@ class DialectBackedElectronSqliteBridge implements ElectronSqliteBridge {
|
|
|
373
359
|
// Kysely Dialect implementation for Electron IPC SQLite
|
|
374
360
|
// ---------------------------------------------------------------------------
|
|
375
361
|
|
|
376
|
-
class
|
|
377
|
-
readonly #options: ElectronSqliteOptions;
|
|
378
|
-
|
|
379
|
-
constructor(options: ElectronSqliteOptions) {
|
|
380
|
-
this.#options = options;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
createAdapter(): DialectAdapter {
|
|
384
|
-
return new SqliteAdapter();
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
createDriver(): Driver {
|
|
388
|
-
return new ElectronSqliteDriver(this.#options);
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
createQueryCompiler(): QueryCompiler {
|
|
392
|
-
return new SqliteQueryCompiler();
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
createIntrospector(db: Kysely<unknown>): DatabaseIntrospector {
|
|
396
|
-
return new SqliteIntrospector(db);
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
class ElectronSqliteDriver implements Driver {
|
|
362
|
+
class ElectronSqliteDriver extends BaseSqliteDriver {
|
|
401
363
|
readonly #bridge: ElectronSqliteBridge;
|
|
402
|
-
readonly #connectionMutex = new ConnectionMutex();
|
|
403
|
-
readonly #connection: ElectronSqliteConnection;
|
|
404
|
-
|
|
405
364
|
#opened = false;
|
|
406
365
|
|
|
407
366
|
constructor(bridge: ElectronSqliteBridge) {
|
|
367
|
+
super(async () => {
|
|
368
|
+
await this.#ensureOpen();
|
|
369
|
+
this.conn = new ElectronSqliteConnection(this.#bridge.execute);
|
|
370
|
+
});
|
|
408
371
|
this.#bridge = bridge;
|
|
409
|
-
this.#connection = new ElectronSqliteConnection(bridge.execute);
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
async init(): Promise<void> {
|
|
413
|
-
await this.#ensureOpen();
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
async acquireConnection(): Promise<DatabaseConnection> {
|
|
417
|
-
await this.#connectionMutex.lock();
|
|
418
|
-
return this.#connection;
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
async beginTransaction(
|
|
422
|
-
connection: DatabaseConnection,
|
|
423
|
-
_settings: TransactionSettings
|
|
424
|
-
): Promise<void> {
|
|
425
|
-
await connection.executeQuery(CompiledQuery.raw('begin'));
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
async commitTransaction(connection: DatabaseConnection): Promise<void> {
|
|
429
|
-
await connection.executeQuery(CompiledQuery.raw('commit'));
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
async rollbackTransaction(connection: DatabaseConnection): Promise<void> {
|
|
433
|
-
await connection.executeQuery(CompiledQuery.raw('rollback'));
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
async releaseConnection(_connection: DatabaseConnection): Promise<void> {
|
|
437
|
-
this.#connectionMutex.unlock();
|
|
438
372
|
}
|
|
439
373
|
|
|
440
374
|
async destroy(): Promise<void> {
|