@syncular/dialect-wa-sqlite 0.0.4-26 → 0.0.4-32

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 CHANGED
@@ -5,11 +5,20 @@
5
5
  * Uses kysely-wasqlite-worker for running SQL in a web worker with OPFS or IndexedDB storage.
6
6
  */
7
7
  import { Kysely } from 'kysely';
8
+ import { GenericSqliteDialect } from 'kysely-generic-sqlite';
8
9
  import { WaSqliteWorkerDialect, type WaSqliteWorkerDialectConfig } from 'kysely-wasqlite-worker';
9
10
  export interface WaSqliteOptions extends Omit<WaSqliteWorkerDialectConfig, 'fileName'> {
10
11
  /** Database filename for persistence (defaults to 'diego.sqlite') */
11
12
  fileName?: string;
12
13
  }
14
+ export interface WaSqliteMainThreadOptions {
15
+ /** Database filename for persistence (defaults to 'diego.sqlite') */
16
+ fileName?: string;
17
+ /** Prefer OPFS storage when available (defaults to true) */
18
+ useOPFS?: boolean;
19
+ /** WASM URL override */
20
+ url?: string;
21
+ }
13
22
  /**
14
23
  * Create a Kysely instance with wa-sqlite dialect.
15
24
  *
@@ -27,6 +36,17 @@ export declare function createWaSqliteDb<T>(options?: WaSqliteOptions): Kysely<T
27
36
  * Create the wa-sqlite dialect directly.
28
37
  */
29
38
  export declare function createWaSqliteDialect(options?: WaSqliteOptions): WaSqliteWorkerDialect;
39
+ /**
40
+ * Create a Kysely instance with wa-sqlite running in the current thread.
41
+ *
42
+ * Useful when nested Worker support is unavailable (for example, in
43
+ * ServiceWorker runtimes).
44
+ */
45
+ export declare function createWaSqliteMainThreadDb<T>(options?: WaSqliteMainThreadOptions): Kysely<T>;
46
+ /**
47
+ * Create the wa-sqlite main-thread dialect directly.
48
+ */
49
+ export declare function createWaSqliteMainThreadDialect(options?: WaSqliteMainThreadOptions): GenericSqliteDialect;
30
50
  export declare function getWaSqliteWorkerEntrypointPaths(): {
31
51
  moduleWorkerPath: string;
32
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,2BAA2B,EAAE,UAAU,CAAC;IACrD,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAWD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAIxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,eAAe,GACxB,qBAAqB,CAEvB;AAED,wBAAgB,gCAAgC,IAAI;IAClD,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAIA;AAED,wBAAgB,oBAAoB,IAAI;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAQA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAIL,qBAAqB,EACrB,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,2BAA2B,EAAE,UAAU,CAAC;IACrD,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAWD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAIxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,eAAe,GACxB,qBAAqB,CAEvB;AAUD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GAClC,MAAM,CAAC,CAAC,CAAC,CAOX;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,CAAC,EAAE,yBAAyB,GAClC,oBAAoB,CAKtB;AAED,wBAAgB,gCAAgC,IAAI;IAClD,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAIA;AAED,wBAAgB,oBAAoB,IAAI;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAQA"}
package/dist/index.js CHANGED
@@ -5,7 +5,8 @@
5
5
  * Uses kysely-wasqlite-worker for running SQL in a web worker with OPFS or IndexedDB storage.
6
6
  */
7
7
  import { Kysely } from 'kysely';
8
- import { WaSqliteWorkerDialect, } from 'kysely-wasqlite-worker';
8
+ import { GenericSqliteDialect } from 'kysely-generic-sqlite';
9
+ import { createSqliteExecutor, defaultCreateDatabaseFn, WaSqliteWorkerDialect, } from 'kysely-wasqlite-worker';
9
10
  function toDialectConfig(options) {
10
11
  return {
11
12
  fileName: options?.fileName ?? 'diego.sqlite',
@@ -35,6 +36,32 @@ export function createWaSqliteDb(options) {
35
36
  export function createWaSqliteDialect(options) {
36
37
  return new WaSqliteWorkerDialect(toDialectConfig(options));
37
38
  }
39
+ function toMainThreadInitData(options) {
40
+ return {
41
+ fileName: options?.fileName ?? 'diego.sqlite',
42
+ useOPFS: options?.useOPFS ?? true,
43
+ url: options?.url,
44
+ };
45
+ }
46
+ /**
47
+ * Create a Kysely instance with wa-sqlite running in the current thread.
48
+ *
49
+ * Useful when nested Worker support is unavailable (for example, in
50
+ * ServiceWorker runtimes).
51
+ */
52
+ export function createWaSqliteMainThreadDb(options) {
53
+ const initData = toMainThreadInitData(options);
54
+ return new Kysely({
55
+ dialect: new GenericSqliteDialect(async () => createSqliteExecutor(await defaultCreateDatabaseFn(initData))),
56
+ });
57
+ }
58
+ /**
59
+ * Create the wa-sqlite main-thread dialect directly.
60
+ */
61
+ export function createWaSqliteMainThreadDialect(options) {
62
+ const initData = toMainThreadInitData(options);
63
+ return new GenericSqliteDialect(async () => createSqliteExecutor(await defaultCreateDatabaseFn(initData)));
64
+ }
38
65
  export function getWaSqliteWorkerEntrypointPaths() {
39
66
  return {
40
67
  moduleWorkerPath: new URL('./worker-module.ts', import.meta.url).pathname,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,qBAAqB,GAEtB,MAAM,wBAAwB,CAAC;AAQhC,SAAS,eAAe,CACtB,OAAyB,EACI;IAC7B,OAAO;QACL,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,cAAc;QAC7C,GAAG,OAAO;KACX,CAAC;AAAA,CACH;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAI,OAAyB,EAAa;IACxE,OAAO,IAAI,MAAM,CAAI;QACnB,OAAO,EAAE,IAAI,qBAAqB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;KAC7D,CAAC,CAAC;AAAA,CACJ;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAyB,EACF;IACvB,OAAO,IAAI,qBAAqB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAAA,CAC5D;AAED,MAAM,UAAU,gCAAgC,GAE9C;IACA,OAAO;QACL,gBAAgB,EAAE,IAAI,GAAG,CAAC,oBAAoB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ;KAC1E,CAAC;AAAA,CACH;AAED,MAAM,UAAU,oBAAoB,GAGlC;IACA,OAAO;QACL,aAAa,EAAE,IAAI,GAAG,CACpB,OAAO,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAC5D,CAAC,QAAQ;QACV,YAAY,EAAE,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;aACzE,QAAQ;KACZ,CAAC;AAAA,CACH"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EAEvB,qBAAqB,GAEtB,MAAM,wBAAwB,CAAC;AAiBhC,SAAS,eAAe,CACtB,OAAyB,EACI;IAC7B,OAAO;QACL,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,cAAc;QAC7C,GAAG,OAAO;KACX,CAAC;AAAA,CACH;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAI,OAAyB,EAAa;IACxE,OAAO,IAAI,MAAM,CAAI;QACnB,OAAO,EAAE,IAAI,qBAAqB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;KAC7D,CAAC,CAAC;AAAA,CACJ;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAyB,EACF;IACvB,OAAO,IAAI,qBAAqB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAAA,CAC5D;AAED,SAAS,oBAAoB,CAAC,OAAmC,EAAY;IAC3E,OAAO;QACL,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,cAAc;QAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;QACjC,GAAG,EAAE,OAAO,EAAE,GAAG;KAClB,CAAC;AAAA,CACH;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAmC,EACxB;IACX,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,IAAI,MAAM,CAAI;QACnB,OAAO,EAAE,IAAI,oBAAoB,CAAC,KAAK,IAAI,EAAE,CAC3C,oBAAoB,CAAC,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAC9D;KACF,CAAC,CAAC;AAAA,CACJ;AAED;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAmC,EACb;IACtB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,IAAI,oBAAoB,CAAC,KAAK,IAAI,EAAE,CACzC,oBAAoB,CAAC,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAC9D,CAAC;AAAA,CACH;AAED,MAAM,UAAU,gCAAgC,GAE9C;IACA,OAAO;QACL,gBAAgB,EAAE,IAAI,GAAG,CAAC,oBAAoB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ;KAC1E,CAAC;AAAA,CACH;AAED,MAAM,UAAU,oBAAoB,GAGlC;IACA,OAAO;QACL,aAAa,EAAE,IAAI,GAAG,CACpB,OAAO,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAC5D,CAAC,QAAQ;QACV,YAAY,EAAE,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;aACzE,QAAQ;KACZ,CAAC;AAAA,CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncular/dialect-wa-sqlite",
3
- "version": "0.0.4-26",
3
+ "version": "0.0.4-32",
4
4
  "description": "WA-SQLite (WASM) dialect for the Syncular client",
5
5
  "license": "MIT",
6
6
  "author": "Benjamin Kniffler",
package/src/index.ts CHANGED
@@ -6,7 +6,11 @@
6
6
  */
7
7
 
8
8
  import { Kysely } from 'kysely';
9
+ import { GenericSqliteDialect } from 'kysely-generic-sqlite';
9
10
  import {
11
+ createSqliteExecutor,
12
+ defaultCreateDatabaseFn,
13
+ type InitData,
10
14
  WaSqliteWorkerDialect,
11
15
  type WaSqliteWorkerDialectConfig,
12
16
  } from 'kysely-wasqlite-worker';
@@ -17,6 +21,15 @@ export interface WaSqliteOptions
17
21
  fileName?: string;
18
22
  }
19
23
 
24
+ export interface WaSqliteMainThreadOptions {
25
+ /** Database filename for persistence (defaults to 'diego.sqlite') */
26
+ fileName?: string;
27
+ /** Prefer OPFS storage when available (defaults to true) */
28
+ useOPFS?: boolean;
29
+ /** WASM URL override */
30
+ url?: string;
31
+ }
32
+
20
33
  function toDialectConfig(
21
34
  options?: WaSqliteOptions
22
35
  ): WaSqliteWorkerDialectConfig {
@@ -53,6 +66,43 @@ export function createWaSqliteDialect(
53
66
  return new WaSqliteWorkerDialect(toDialectConfig(options));
54
67
  }
55
68
 
69
+ function toMainThreadInitData(options?: WaSqliteMainThreadOptions): InitData {
70
+ return {
71
+ fileName: options?.fileName ?? 'diego.sqlite',
72
+ useOPFS: options?.useOPFS ?? true,
73
+ url: options?.url,
74
+ };
75
+ }
76
+
77
+ /**
78
+ * Create a Kysely instance with wa-sqlite running in the current thread.
79
+ *
80
+ * Useful when nested Worker support is unavailable (for example, in
81
+ * ServiceWorker runtimes).
82
+ */
83
+ export function createWaSqliteMainThreadDb<T>(
84
+ options?: WaSqliteMainThreadOptions
85
+ ): Kysely<T> {
86
+ const initData = toMainThreadInitData(options);
87
+ return new Kysely<T>({
88
+ dialect: new GenericSqliteDialect(async () =>
89
+ createSqliteExecutor(await defaultCreateDatabaseFn(initData))
90
+ ),
91
+ });
92
+ }
93
+
94
+ /**
95
+ * Create the wa-sqlite main-thread dialect directly.
96
+ */
97
+ export function createWaSqliteMainThreadDialect(
98
+ options?: WaSqliteMainThreadOptions
99
+ ): GenericSqliteDialect {
100
+ const initData = toMainThreadInitData(options);
101
+ return new GenericSqliteDialect(async () =>
102
+ createSqliteExecutor(await defaultCreateDatabaseFn(initData))
103
+ );
104
+ }
105
+
56
106
  export function getWaSqliteWorkerEntrypointPaths(): {
57
107
  moduleWorkerPath: string;
58
108
  } {