@effect/sql-sqlite-wasm 4.0.0-beta.7 → 4.0.0-beta.70
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/OpfsWorker.d.ts +7 -3
- package/dist/OpfsWorker.d.ts.map +1 -1
- package/dist/OpfsWorker.js +30 -6
- package/dist/OpfsWorker.js.map +1 -1
- package/dist/SqliteClient.d.ts +49 -21
- package/dist/SqliteClient.d.ts.map +1 -1
- package/dist/SqliteClient.js +80 -36
- package/dist/SqliteClient.js.map +1 -1
- package/dist/SqliteMigrator.d.ts +28 -6
- package/dist/SqliteMigrator.d.ts.map +1 -1
- package/dist/SqliteMigrator.js +9 -5
- package/dist/SqliteMigrator.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/package.json +3 -3
- package/src/OpfsWorker.ts +32 -6
- package/src/SqliteClient.ts +108 -45
- package/src/SqliteMigrator.ts +28 -6
- package/src/index.ts +3 -3
- package/src/sqlite-wasm.d.ts +30 -2
package/dist/OpfsWorker.d.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
3
3
|
/**
|
|
4
|
+
* Configuration for the SQLite OPFS worker, including the message port used for the client protocol and the OPFS database name to open.
|
|
5
|
+
*
|
|
4
6
|
* @category models
|
|
5
|
-
* @since
|
|
7
|
+
* @since 4.0.0
|
|
6
8
|
*/
|
|
7
9
|
export interface OpfsWorkerConfig {
|
|
8
10
|
readonly port: EventTarget & Pick<MessagePort, "postMessage" | "close">;
|
|
9
11
|
readonly dbName: string;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
+
* Runs the SQLite OPFS worker loop, opening the configured database, posting a ready message, handling query/import/export/update-hook messages, and closing when a close message is received.
|
|
15
|
+
*
|
|
16
|
+
* @category constructors
|
|
17
|
+
* @since 4.0.0
|
|
14
18
|
*/
|
|
15
19
|
export declare const run: (options: OpfsWorkerConfig) => Effect.Effect<void, SqlError>;
|
|
16
20
|
//# sourceMappingURL=OpfsWorker.d.ts.map
|
package/dist/OpfsWorker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpfsWorker.d.ts","sourceRoot":"","sources":["../src/OpfsWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpfsWorker.d.ts","sourceRoot":"","sources":["../src/OpfsWorker.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAuB,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAM5E;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,CAAA;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,GAAG,GACd,SAAS,gBAAgB,KACxB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CA0EP,CAAA"}
|
package/dist/OpfsWorker.js
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Worker-side entry point for SQLite WASM databases stored in the browser
|
|
3
|
+
* Origin Private File System.
|
|
4
|
+
*
|
|
5
|
+
* This module opens `@effect/wa-sqlite` with the OPFS access-handle VFS and
|
|
6
|
+
* serves the message protocol used by `SqliteClient.make`. Run it from a
|
|
7
|
+
* dedicated worker, or from a `SharedWorker` connection port, when an
|
|
8
|
+
* application needs durable local SQLite storage for local-first data, offline
|
|
9
|
+
* caches, client-side migrations, or import/export workflows that keep the
|
|
10
|
+
* database off the main thread.
|
|
11
|
+
*
|
|
12
|
+
* The worker owns the SQLite connection for the lifetime of `run`: it posts a
|
|
13
|
+
* `ready` message after opening the database, responds to query, import,
|
|
14
|
+
* export, and update-hook messages, and releases the database when the client
|
|
15
|
+
* sends `close` or the surrounding scope is interrupted. Because OPFS support
|
|
16
|
+
* depends on the browser and origin, applications should start this worker only
|
|
17
|
+
* in supported secure contexts, close unused ports so access handles are
|
|
18
|
+
* released, and coordinate multiple tabs or workers before opening or migrating
|
|
19
|
+
* the same OPFS database.
|
|
20
|
+
*
|
|
21
|
+
* @since 4.0.0
|
|
3
22
|
*/
|
|
4
23
|
/// <reference lib="webworker" />
|
|
5
24
|
// oxlint-disable-next-line effect/no-import-from-barrel-package
|
|
@@ -7,10 +26,16 @@ import * as WaSqlite from "@effect/wa-sqlite";
|
|
|
7
26
|
import SQLiteESMFactory from "@effect/wa-sqlite/dist/wa-sqlite.mjs";
|
|
8
27
|
import { AccessHandlePoolVFS } from "@effect/wa-sqlite/src/examples/AccessHandlePoolVFS.js";
|
|
9
28
|
import * as Effect from "effect/Effect";
|
|
10
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
29
|
+
import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError";
|
|
30
|
+
const classifyError = (cause, message, operation) => classifySqliteError(cause, {
|
|
31
|
+
message,
|
|
32
|
+
operation
|
|
33
|
+
});
|
|
11
34
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
35
|
+
* Runs the SQLite OPFS worker loop, opening the configured database, posting a ready message, handling query/import/export/update-hook messages, and closing when a close message is received.
|
|
36
|
+
*
|
|
37
|
+
* @category constructors
|
|
38
|
+
* @since 4.0.0
|
|
14
39
|
*/
|
|
15
40
|
export const run = options => Effect.gen(function* () {
|
|
16
41
|
const factory = yield* Effect.promise(() => SQLiteESMFactory());
|
|
@@ -20,8 +45,7 @@ export const run = options => Effect.gen(function* () {
|
|
|
20
45
|
const db = yield* Effect.acquireRelease(Effect.try({
|
|
21
46
|
try: () => sqlite3.open_v2(options.dbName, undefined, "opfs"),
|
|
22
47
|
catch: cause => new SqlError({
|
|
23
|
-
cause,
|
|
24
|
-
message: "Failed to open database"
|
|
48
|
+
reason: classifyError(cause, "Failed to open database", "openDatabase")
|
|
25
49
|
})
|
|
26
50
|
}), db => Effect.sync(() => sqlite3.close(db)));
|
|
27
51
|
return yield* Effect.callback(resume => {
|
package/dist/OpfsWorker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpfsWorker.js","names":["WaSqlite","SQLiteESMFactory","AccessHandlePoolVFS","Effect","SqlError","run","options","gen","factory","promise","sqlite3","Factory","vfs","create","vfs_register","db","acquireRelease","try","open_v2","dbName","undefined","catch","
|
|
1
|
+
{"version":3,"file":"OpfsWorker.js","names":["WaSqlite","SQLiteESMFactory","AccessHandlePoolVFS","Effect","classifySqliteError","SqlError","classifyError","cause","message","operation","run","options","gen","factory","promise","sqlite3","Factory","vfs","create","vfs_register","db","acquireRelease","try","open_v2","dbName","undefined","catch","reason","sync","close","callback","resume","onMessage","event","messageId","data","port","void","id","deserialize","length","postMessage","serialize","buffer","update_hook","_op","_db","table","rowid","Number","sql","params","results","columns","stmt","statements","bind_collection","step","SQLITE_ROW","column_names","row","push","e","String","addEventListener","removeEventListener","pipe","scoped"],"sources":["../src/OpfsWorker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/SqliteClient.d.ts
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
import * as Config from "effect/Config";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
2
3
|
import * as Effect from "effect/Effect";
|
|
3
4
|
import * as Layer from "effect/Layer";
|
|
4
5
|
import * as Scope from "effect/Scope";
|
|
5
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
6
6
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
7
7
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
8
8
|
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* Runtime identifier attached to SQLite WASM client values.
|
|
11
|
+
*
|
|
12
|
+
* @category type IDs
|
|
13
|
+
* @since 4.0.0
|
|
12
14
|
*/
|
|
13
15
|
export declare const TypeId: TypeId;
|
|
14
16
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
+
* Type-level identifier for SQLite WASM client values.
|
|
18
|
+
*
|
|
19
|
+
* @category type IDs
|
|
20
|
+
* @since 4.0.0
|
|
17
21
|
*/
|
|
18
22
|
export type TypeId = "~@effect/sql-sqlite-wasm/SqliteClient";
|
|
19
23
|
/**
|
|
24
|
+
* SQLite WASM client service interface, extending `SqlClient` with database `export` and `import` operations and marking `updateValues` as unsupported for SQLite.
|
|
25
|
+
*
|
|
20
26
|
* @category models
|
|
21
|
-
* @since
|
|
27
|
+
* @since 4.0.0
|
|
22
28
|
*/
|
|
23
29
|
export interface SqliteClient extends Client.SqlClient {
|
|
24
30
|
readonly [TypeId]: TypeId;
|
|
@@ -29,13 +35,17 @@ export interface SqliteClient extends Client.SqlClient {
|
|
|
29
35
|
readonly updateValues: never;
|
|
30
36
|
}
|
|
31
37
|
/**
|
|
38
|
+
* Context service tag for the SQLite WASM client.
|
|
39
|
+
*
|
|
32
40
|
* @category tags
|
|
33
|
-
* @since
|
|
41
|
+
* @since 4.0.0
|
|
34
42
|
*/
|
|
35
|
-
export declare const SqliteClient:
|
|
43
|
+
export declare const SqliteClient: Context.Service<SqliteClient, SqliteClient>;
|
|
36
44
|
/**
|
|
45
|
+
* Configuration for an in-memory SQLite WASM client, including optional reactivity hooks, span attributes, and query/result name transforms.
|
|
46
|
+
*
|
|
37
47
|
* @category models
|
|
38
|
-
* @since
|
|
48
|
+
* @since 4.0.0
|
|
39
49
|
*/
|
|
40
50
|
export interface SqliteClientMemoryConfig {
|
|
41
51
|
readonly installReactivityHooks?: boolean;
|
|
@@ -44,8 +54,10 @@ export interface SqliteClientMemoryConfig {
|
|
|
44
54
|
readonly transformQueryNames?: (str: string) => string;
|
|
45
55
|
}
|
|
46
56
|
/**
|
|
57
|
+
* Configuration for a worker-backed SQLite WASM client, including the scoped worker or message port, optional reactivity hooks, span attributes, and query/result name transforms.
|
|
58
|
+
*
|
|
47
59
|
* @category models
|
|
48
|
-
* @since
|
|
60
|
+
* @since 4.0.0
|
|
49
61
|
*/
|
|
50
62
|
export interface SqliteClientConfig {
|
|
51
63
|
readonly worker: Effect.Effect<Worker | SharedWorker | MessagePort, never, Scope.Scope>;
|
|
@@ -55,43 +67,59 @@ export interface SqliteClientConfig {
|
|
|
55
67
|
readonly transformQueryNames?: (str: string) => string;
|
|
56
68
|
}
|
|
57
69
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
70
|
+
* Creates a scoped in-memory SQLite WASM client using the memory VFS, serializing access through a semaphore and exposing database `export` and `import` operations.
|
|
71
|
+
*
|
|
72
|
+
* @category constructors
|
|
73
|
+
* @since 4.0.0
|
|
60
74
|
*/
|
|
61
75
|
export declare const makeMemory: (options: SqliteClientMemoryConfig) => Effect.Effect<SqliteClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
62
76
|
/**
|
|
63
|
-
*
|
|
64
|
-
*
|
|
77
|
+
* Creates a scoped worker-backed SQLite WASM client, communicating with the configured worker or message port, restarting the scoped connection on worker errors, and exposing database `export` and `import` operations.
|
|
78
|
+
*
|
|
79
|
+
* @category constructors
|
|
80
|
+
* @since 4.0.0
|
|
65
81
|
*/
|
|
66
82
|
export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
67
83
|
/**
|
|
84
|
+
* Fiber-local list of transferables to include with worker-backed SQLite WASM query messages.
|
|
85
|
+
*
|
|
68
86
|
* @category tranferables
|
|
69
|
-
* @since
|
|
87
|
+
* @since 4.0.0
|
|
70
88
|
*/
|
|
71
|
-
export declare const Transferables:
|
|
89
|
+
export declare const Transferables: Context.Reference<readonly Transferable[]>;
|
|
72
90
|
/**
|
|
91
|
+
* Runs an effect with the supplied transferables attached to worker-backed SQLite WASM query messages.
|
|
92
|
+
*
|
|
73
93
|
* @category tranferables
|
|
74
|
-
* @since
|
|
94
|
+
* @since 4.0.0
|
|
75
95
|
*/
|
|
76
96
|
export declare const withTransferables: (transferables: ReadonlyArray<Transferable>) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
77
97
|
/**
|
|
98
|
+
* Builds a layer from an Effect `Config` value, providing both the in-memory SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
|
|
99
|
+
*
|
|
78
100
|
* @category layers
|
|
79
|
-
* @since
|
|
101
|
+
* @since 4.0.0
|
|
80
102
|
*/
|
|
81
103
|
export declare const layerMemoryConfig: (config: Config.Wrap<SqliteClientMemoryConfig>) => Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError | SqlError>;
|
|
82
104
|
/**
|
|
105
|
+
* Builds a layer from an in-memory SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
106
|
+
*
|
|
83
107
|
* @category layers
|
|
84
|
-
* @since
|
|
108
|
+
* @since 4.0.0
|
|
85
109
|
*/
|
|
86
110
|
export declare const layerMemory: (config: SqliteClientMemoryConfig) => Layer.Layer<SqliteClient | Client.SqlClient, SqlError>;
|
|
87
111
|
/**
|
|
112
|
+
* Builds a layer from a worker-backed SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
113
|
+
*
|
|
88
114
|
* @category layers
|
|
89
|
-
* @since
|
|
115
|
+
* @since 4.0.0
|
|
90
116
|
*/
|
|
91
117
|
export declare const layer: (config: SqliteClientConfig) => Layer.Layer<SqliteClient | Client.SqlClient, SqlError>;
|
|
92
118
|
/**
|
|
119
|
+
* Builds a layer from an Effect `Config` value, providing both the worker-backed SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
|
|
120
|
+
*
|
|
93
121
|
* @category layers
|
|
94
|
-
* @since
|
|
122
|
+
* @since 4.0.0
|
|
95
123
|
*/
|
|
96
124
|
export declare const layerConfig: (config: Config.Wrap<SqliteClientConfig>) => Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError | SqlError>;
|
|
97
125
|
//# sourceMappingURL=SqliteClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"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"}
|
package/dist/SqliteClient.js
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* SQLite WASM client implementation for Effect SQL, backed by `@effect/wa-sqlite`.
|
|
3
|
+
*
|
|
4
|
+
* This module exposes constructors and layers for providing both the
|
|
5
|
+
* SQLite-specific `SqliteClient` service and the generic Effect `SqlClient`
|
|
6
|
+
* service in browser, worker, and test runtimes. Use it for local-first
|
|
7
|
+
* browser storage, offline caches, client-side migrations, sandboxed test
|
|
8
|
+
* databases, and import/export workflows that snapshot a SQLite database as a
|
|
9
|
+
* `Uint8Array`.
|
|
10
|
+
*
|
|
11
|
+
* `makeMemory` opens an in-memory database through the WASM memory VFS, so data
|
|
12
|
+
* is transient unless the client `export` result is persisted and later passed
|
|
13
|
+
* back to `import`. `make` talks to a scoped `Worker`, `SharedWorker`, or
|
|
14
|
+
* `MessagePort`, which is the path used by the OPFS worker helper for persistent
|
|
15
|
+
* browser storage. Worker-backed queries cross a message boundary, transferable
|
|
16
|
+
* buffers can be supplied with `withTransferables`, and imports transfer the
|
|
17
|
+
* supplied `Uint8Array` buffer to the worker.
|
|
18
|
+
*
|
|
19
|
+
* Both client variants serialize access through a single connection. A
|
|
20
|
+
* transaction holds that connection for the lifetime of its scope, so keep
|
|
21
|
+
* transactions short and use them for multi-statement writes that must commit
|
|
22
|
+
* atomically. OPFS availability depends on the browser and origin, and multiple
|
|
23
|
+
* tabs or workers opening the same OPFS database should coordinate migrations
|
|
24
|
+
* and writes outside this module. Worker-backed clients restart their scoped
|
|
25
|
+
* connection on worker errors, `executeStream` is not implemented there, and
|
|
26
|
+
* SQLite does not support `updateValues`.
|
|
27
|
+
*
|
|
28
|
+
* @since 4.0.0
|
|
3
29
|
*/
|
|
4
30
|
// oxlint-disable-next-line effect/no-import-from-barrel-package
|
|
5
31
|
import * as WaSqlite from "@effect/wa-sqlite";
|
|
6
32
|
import SQLiteESMFactory from "@effect/wa-sqlite/dist/wa-sqlite.mjs";
|
|
7
33
|
import { MemoryVFS } from "@effect/wa-sqlite/src/examples/MemoryVFS.js";
|
|
8
34
|
import * as Config from "effect/Config";
|
|
35
|
+
import * as Context from "effect/Context";
|
|
9
36
|
import * as Deferred from "effect/Deferred";
|
|
10
37
|
import * as Effect from "effect/Effect";
|
|
11
38
|
import * as Exit from "effect/Exit";
|
|
@@ -15,29 +42,38 @@ import * as Layer from "effect/Layer";
|
|
|
15
42
|
import * as Scope from "effect/Scope";
|
|
16
43
|
import * as ScopedRef from "effect/ScopedRef";
|
|
17
44
|
import * as Semaphore from "effect/Semaphore";
|
|
18
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
19
45
|
import * as Stream from "effect/Stream";
|
|
20
46
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
21
47
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
22
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
48
|
+
import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError";
|
|
23
49
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
24
50
|
const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
|
51
|
+
const classifyError = (cause, message, operation) => classifySqliteError(cause, {
|
|
52
|
+
message,
|
|
53
|
+
operation
|
|
54
|
+
});
|
|
25
55
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
56
|
+
* Runtime identifier attached to SQLite WASM client values.
|
|
57
|
+
*
|
|
58
|
+
* @category type IDs
|
|
59
|
+
* @since 4.0.0
|
|
28
60
|
*/
|
|
29
61
|
export const TypeId = "~@effect/sql-sqlite-wasm/SqliteClient";
|
|
30
62
|
/**
|
|
63
|
+
* Context service tag for the SQLite WASM client.
|
|
64
|
+
*
|
|
31
65
|
* @category tags
|
|
32
|
-
* @since
|
|
66
|
+
* @since 4.0.0
|
|
33
67
|
*/
|
|
34
|
-
export const SqliteClient = /*#__PURE__*/
|
|
68
|
+
export const SqliteClient = /*#__PURE__*/Context.Service("@effect/sql-sqlite-wasm/SqliteClient");
|
|
35
69
|
const initModule = /*#__PURE__*/Effect.runSync(/*#__PURE__*/Effect.cached(/*#__PURE__*/Effect.promise(() => SQLiteESMFactory())));
|
|
36
70
|
const initEffect = /*#__PURE__*/Effect.runSync(/*#__PURE__*/Effect.cached(/*#__PURE__*/initModule.pipe(/*#__PURE__*/Effect.map(module => WaSqlite.Factory(module)))));
|
|
37
71
|
const registered = /*#__PURE__*/new Set();
|
|
38
72
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
73
|
+
* Creates a scoped in-memory SQLite WASM client using the memory VFS, serializing access through a semaphore and exposing database `export` and `import` operations.
|
|
74
|
+
*
|
|
75
|
+
* @category constructors
|
|
76
|
+
* @since 4.0.0
|
|
41
77
|
*/
|
|
42
78
|
export const makeMemory = options => Effect.gen(function* () {
|
|
43
79
|
const reactivity = yield* Reactivity.Reactivity;
|
|
@@ -55,8 +91,7 @@ export const makeMemory = options => Effect.gen(function* () {
|
|
|
55
91
|
const db = yield* Effect.acquireRelease(Effect.try({
|
|
56
92
|
try: () => sqlite3.open_v2(":memory:", undefined, "memory-vfs"),
|
|
57
93
|
catch: cause => new SqlError({
|
|
58
|
-
cause,
|
|
59
|
-
message: "Failed to open database"
|
|
94
|
+
reason: classifyError(cause, "Failed to open database", "openDatabase")
|
|
60
95
|
})
|
|
61
96
|
}), db => Effect.sync(() => sqlite3.close(db)));
|
|
62
97
|
if (options.installReactivityHooks) {
|
|
@@ -91,8 +126,7 @@ export const makeMemory = options => Effect.gen(function* () {
|
|
|
91
126
|
return results;
|
|
92
127
|
},
|
|
93
128
|
catch: cause => new SqlError({
|
|
94
|
-
cause,
|
|
95
|
-
message: "Failed to execute statement"
|
|
129
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
96
130
|
})
|
|
97
131
|
});
|
|
98
132
|
return identity({
|
|
@@ -125,23 +159,20 @@ export const makeMemory = options => Effect.gen(function* () {
|
|
|
125
159
|
}
|
|
126
160
|
}
|
|
127
161
|
return Stream.suspend(() => Stream.fromIteratorSucceed(stream()[Symbol.iterator]())).pipe(transformRows ? Stream.mapArray(chunk => transformRows(chunk)) : identity, Stream.mapError(cause => new SqlError({
|
|
128
|
-
cause,
|
|
129
|
-
message: "Failed to execute statement"
|
|
162
|
+
reason: classifyError(cause, "Failed to execute statement", "stream")
|
|
130
163
|
})));
|
|
131
164
|
},
|
|
132
165
|
export: Effect.try({
|
|
133
166
|
try: () => sqlite3.serialize(db, "main"),
|
|
134
167
|
catch: cause => new SqlError({
|
|
135
|
-
cause,
|
|
136
|
-
message: "Failed to export database"
|
|
168
|
+
reason: classifyError(cause, "Failed to export database", "export")
|
|
137
169
|
})
|
|
138
170
|
}),
|
|
139
171
|
import(data) {
|
|
140
172
|
return Effect.try({
|
|
141
173
|
try: () => sqlite3.deserialize(db, "main", data, data.length, data.length, 1 | 2),
|
|
142
174
|
catch: cause => new SqlError({
|
|
143
|
-
cause,
|
|
144
|
-
message: "Failed to import database"
|
|
175
|
+
reason: classifyError(cause, "Failed to import database", "import")
|
|
145
176
|
})
|
|
146
177
|
});
|
|
147
178
|
}
|
|
@@ -152,7 +183,7 @@ export const makeMemory = options => Effect.gen(function* () {
|
|
|
152
183
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
|
|
153
184
|
const transactionAcquirer = Effect.uninterruptibleMask(restore => {
|
|
154
185
|
const fiber = Fiber.getCurrent();
|
|
155
|
-
const scope =
|
|
186
|
+
const scope = Context.getUnsafe(fiber.context, Scope.Scope);
|
|
156
187
|
return Effect.as(Effect.tap(restore(semaphore.take(1)), () => Scope.addFinalizer(scope, semaphore.release(1))), connection);
|
|
157
188
|
});
|
|
158
189
|
return Object.assign(yield* Client.make({
|
|
@@ -171,8 +202,10 @@ export const makeMemory = options => Effect.gen(function* () {
|
|
|
171
202
|
});
|
|
172
203
|
});
|
|
173
204
|
/**
|
|
174
|
-
*
|
|
175
|
-
*
|
|
205
|
+
* Creates a scoped worker-backed SQLite WASM client, communicating with the configured worker or message port, restarting the scoped connection on worker errors, and exposing database `export` and `import` operations.
|
|
206
|
+
*
|
|
207
|
+
* @category constructors
|
|
208
|
+
* @since 4.0.0
|
|
176
209
|
*/
|
|
177
210
|
export const make = options => Effect.gen(function* () {
|
|
178
211
|
const reactivity = yield* Reactivity.Reactivity;
|
|
@@ -203,8 +236,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
203
236
|
pending.delete(id);
|
|
204
237
|
if (error) {
|
|
205
238
|
resume(Exit.fail(new SqlError({
|
|
206
|
-
|
|
207
|
-
message: "Failed to execute statement"
|
|
239
|
+
reason: classifyError(error, "Failed to execute statement", "execute")
|
|
208
240
|
})));
|
|
209
241
|
} else {
|
|
210
242
|
resume(Exit.succeed(results));
|
|
@@ -270,7 +302,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
270
302
|
const acquirer = semaphore.withPermits(1)(ScopedRef.get(connectionRef));
|
|
271
303
|
const transactionAcquirer = Effect.uninterruptibleMask(Effect.fnUntraced(function* (restore) {
|
|
272
304
|
const fiber = Fiber.getCurrent();
|
|
273
|
-
const scope =
|
|
305
|
+
const scope = Context.getUnsafe(fiber.context, Scope.Scope);
|
|
274
306
|
yield* restore(semaphore.take(1));
|
|
275
307
|
yield* Scope.addFinalizer(scope, semaphore.release(1));
|
|
276
308
|
return yield* ScopedRef.get(connectionRef);
|
|
@@ -300,35 +332,47 @@ function rowToObject(columns, row) {
|
|
|
300
332
|
const extractObject = rows => rows[1].map(row => rowToObject(rows[0], row));
|
|
301
333
|
const extractRows = rows => rows[1];
|
|
302
334
|
/**
|
|
335
|
+
* Fiber-local list of transferables to include with worker-backed SQLite WASM query messages.
|
|
336
|
+
*
|
|
303
337
|
* @category tranferables
|
|
304
|
-
* @since
|
|
338
|
+
* @since 4.0.0
|
|
305
339
|
*/
|
|
306
|
-
export const Transferables = /*#__PURE__*/
|
|
340
|
+
export const Transferables = /*#__PURE__*/Context.Reference("@effect/sql-sqlite-wasm/currentTransferables", {
|
|
307
341
|
defaultValue: () => []
|
|
308
342
|
});
|
|
309
343
|
/**
|
|
344
|
+
* Runs an effect with the supplied transferables attached to worker-backed SQLite WASM query messages.
|
|
345
|
+
*
|
|
310
346
|
* @category tranferables
|
|
311
|
-
* @since
|
|
347
|
+
* @since 4.0.0
|
|
312
348
|
*/
|
|
313
349
|
export const withTransferables = transferables => effect => Effect.provideService(effect, Transferables, transferables);
|
|
314
350
|
/**
|
|
351
|
+
* Builds a layer from an Effect `Config` value, providing both the in-memory SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
|
|
352
|
+
*
|
|
315
353
|
* @category layers
|
|
316
|
-
* @since
|
|
354
|
+
* @since 4.0.0
|
|
317
355
|
*/
|
|
318
|
-
export const layerMemoryConfig = config => Layer.
|
|
356
|
+
export const layerMemoryConfig = config => Layer.effectContext(Config.unwrap(config).pipe(Effect.flatMap(makeMemory), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
319
357
|
/**
|
|
358
|
+
* Builds a layer from an in-memory SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
359
|
+
*
|
|
320
360
|
* @category layers
|
|
321
|
-
* @since
|
|
361
|
+
* @since 4.0.0
|
|
322
362
|
*/
|
|
323
|
-
export const layerMemory = config => Layer.
|
|
363
|
+
export const layerMemory = config => Layer.effectContext(Effect.map(makeMemory(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
324
364
|
/**
|
|
365
|
+
* Builds a layer from a worker-backed SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
366
|
+
*
|
|
325
367
|
* @category layers
|
|
326
|
-
* @since
|
|
368
|
+
* @since 4.0.0
|
|
327
369
|
*/
|
|
328
|
-
export const layer = config => Layer.
|
|
370
|
+
export const layer = config => Layer.effectContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
329
371
|
/**
|
|
372
|
+
* Builds a layer from an Effect `Config` value, providing both the worker-backed SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
|
|
373
|
+
*
|
|
330
374
|
* @category layers
|
|
331
|
-
* @since
|
|
375
|
+
* @since 4.0.0
|
|
332
376
|
*/
|
|
333
|
-
export const layerConfig = config => Layer.
|
|
377
|
+
export const layerConfig = config => Layer.effectContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
334
378
|
//# sourceMappingURL=SqliteClient.js.map
|
package/dist/SqliteClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.js","names":["WaSqlite","SQLiteESMFactory","MemoryVFS","Config","Deferred","Effect","Exit","Fiber","identity","Layer","Scope","ScopedRef","Semaphore","ServiceMap","Stream","Reactivity","Client","SqlError","Statement","ATTR_DB_SYSTEM_NAME","TypeId","SqliteClient","Service","initModule","runSync","cached","promise","initEffect","pipe","map","module","Factory","registered","Set","makeMemory","options","gen","reactivity","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","sqlite3","has","add","vfs","vfs_register","db","acquireRelease","try","open_v2","catch","cause","message","sync","close","installReactivityHooks","update_hook","_op","_db","table","rowid","id","String","Number","invalidateUnsafe","run","sql","params","rowMode","results","stmt","statements","columns","bind_collection","step","SQLITE_ROW","column_names","row","obj","i","length","push","execute","executeRaw","executeValues","executeUnprepared","executeStream","stream","suspend","fromIteratorSucceed","Symbol","iterator","mapArray","chunk","mapError","export","serialize","import","data","deserialize","semaphore","make","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","fiber","getCurrent","scope","getUnsafe","services","as","tap","take","addFinalizer","release","Object","assign","spanAttributes","entries","config","pending","Map","currentId","readyDeferred","worker","port","postMessage","transferables","onMessage","event","error","doneUnsafe","void","resume","get","delete","fail","addEventListener","onError","runFork","set","connectionRef","removeEventListener","await","send","callback","rows","withFiber","getRef","Transferables","extractObject","extractRows","die","buffer","fromAcquire","fnUntraced","flatMap","rowToObject","Reference","defaultValue","withTransferables","effect","provideService","layerMemoryConfig","effectServices","unwrap","asEffect","client","SqlClient","provide","layer","layerMemory","layerConfig"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SqliteClient.js","names":["WaSqlite","SQLiteESMFactory","MemoryVFS","Config","Context","Deferred","Effect","Exit","Fiber","identity","Layer","Scope","ScopedRef","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","initModule","runSync","cached","promise","initEffect","pipe","map","module","Factory","registered","Set","makeMemory","options","gen","reactivity","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","sqlite3","has","add","vfs","vfs_register","db","acquireRelease","try","open_v2","catch","reason","sync","close","installReactivityHooks","update_hook","_op","_db","table","rowid","id","String","Number","invalidateUnsafe","run","sql","params","rowMode","results","stmt","statements","columns","bind_collection","step","SQLITE_ROW","column_names","row","obj","i","length","push","execute","executeRaw","executeValues","executeUnprepared","executeStream","stream","suspend","fromIteratorSucceed","Symbol","iterator","mapArray","chunk","mapError","export","serialize","import","data","deserialize","semaphore","make","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","fiber","getCurrent","scope","getUnsafe","context","as","tap","take","addFinalizer","release","Object","assign","spanAttributes","entries","config","pending","Map","currentId","readyDeferred","worker","port","postMessage","transferables","onMessage","event","error","doneUnsafe","void","resume","get","delete","fail","addEventListener","onError","runFork","set","connectionRef","removeEventListener","await","send","callback","rows","withFiber","getRef","Transferables","extractObject","extractRows","die","buffer","fromAcquire","fnUntraced","flatMap","rowToObject","Reference","defaultValue","withTransferables","effect","provideService","layerMemoryConfig","effectContext","unwrap","client","SqlClient","provide","layer","layerMemory","layerConfig"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/SqliteMigrator.d.ts
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for applying Effect SQL migrations to SQLite WASM databases.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers that execute ordered migrations through the
|
|
6
|
+
* current SQLite WASM `SqlClient`. Use it when a browser, worker, or test
|
|
7
|
+
* runtime needs to create or upgrade a local SQLite schema before repositories,
|
|
8
|
+
* caches, sync services, or other database-backed services start.
|
|
9
|
+
*
|
|
10
|
+
* The migrator operates on whichever WASM client is in the environment. With
|
|
11
|
+
* `SqliteClient.makeMemory`, migrations update an in-memory database, so the
|
|
12
|
+
* resulting schema is transient unless you persist it with the client's
|
|
13
|
+
* `export` and `import` operations. With worker-backed OPFS databases, run the
|
|
14
|
+
* migrator against the same worker configuration and OPFS database name used by
|
|
15
|
+
* the rest of the application, and coordinate startup across tabs or workers so
|
|
16
|
+
* only one migrator upgrades a given database at a time. OPFS availability is
|
|
17
|
+
* browser- and origin-dependent, and this adapter does not currently write
|
|
18
|
+
* SQLite schema dumps for `schemaDirectory`.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
3
21
|
*/
|
|
4
22
|
import type * as Effect from "effect/Effect";
|
|
5
23
|
import * as Layer from "effect/Layer";
|
|
@@ -7,17 +25,21 @@ import * as Migrator from "effect/unstable/sql/Migrator";
|
|
|
7
25
|
import type * as Client from "effect/unstable/sql/SqlClient";
|
|
8
26
|
import type { SqlError } from "effect/unstable/sql/SqlError";
|
|
9
27
|
/**
|
|
10
|
-
* @since
|
|
28
|
+
* @since 4.0.0
|
|
11
29
|
*/
|
|
12
30
|
export * from "effect/unstable/sql/Migrator";
|
|
13
31
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
32
|
+
* Runs SQL migrations for a SQLite WASM database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
33
|
+
*
|
|
34
|
+
* @category constructors
|
|
35
|
+
* @since 4.0.0
|
|
16
36
|
*/
|
|
17
37
|
export declare const run: <R>(options: Migrator.MigratorOptions<R>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, SqlError | Migrator.MigrationError, Client.SqlClient | R>;
|
|
18
38
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
39
|
+
* Creates a layer that runs the configured SQLite WASM migrations during layer construction and provides no services.
|
|
40
|
+
*
|
|
41
|
+
* @category constructors
|
|
42
|
+
* @since 4.0.0
|
|
21
43
|
*/
|
|
22
44
|
export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, SqlError | Migrator.MigrationError, R | Client.SqlClient>;
|
|
23
45
|
//# sourceMappingURL=SqliteMigrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteMigrator.d.ts","sourceRoot":"","sources":["../src/SqliteMigrator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SqliteMigrator.d.ts","sourceRoot":"","sources":["../src/SqliteMigrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,CAAC,EAClB,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACjC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CACD,CAAA;AAErB;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAsC,CAAA"}
|
package/dist/SqliteMigrator.js
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import * as Layer from "effect/Layer";
|
|
2
2
|
import * as Migrator from "effect/unstable/sql/Migrator";
|
|
3
3
|
/**
|
|
4
|
-
* @since
|
|
4
|
+
* @since 4.0.0
|
|
5
5
|
*/
|
|
6
6
|
export * from "effect/unstable/sql/Migrator";
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Runs SQL migrations for a SQLite WASM database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
9
|
+
*
|
|
10
|
+
* @category constructors
|
|
11
|
+
* @since 4.0.0
|
|
10
12
|
*/
|
|
11
13
|
export const run = /*#__PURE__*/Migrator.make({});
|
|
12
14
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
+
* Creates a layer that runs the configured SQLite WASM migrations during layer construction and provides no services.
|
|
16
|
+
*
|
|
17
|
+
* @category constructors
|
|
18
|
+
* @since 4.0.0
|
|
15
19
|
*/
|
|
16
20
|
export const layer = options => Layer.effectDiscard(run(options));
|
|
17
21
|
//# sourceMappingURL=SqliteMigrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/SqliteMigrator.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"SqliteMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/SqliteMigrator.ts"],"sourcesContent":[null],"mappings":"AAsBA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,8BAA8B;AAIxD;;;AAGA,cAAc,8BAA8B;AAE5C;;;;;;AAMA,OAAO,MAAMC,GAAG,gBAMZD,QAAQ,CAACE,IAAI,CAAC,EAAE,CAAC;AAErB;;;;;;AAMA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAC6CL,KAAK,CAACM,aAAa,CAACJ,GAAG,CAACG,OAAO,CAAC,CAAC","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
export * as OpfsWorker from "./OpfsWorker.ts";
|
|
5
5
|
/**
|
|
6
|
-
* @since
|
|
6
|
+
* @since 4.0.0
|
|
7
7
|
*/
|
|
8
8
|
export * as SqliteClient from "./SqliteClient.ts";
|
|
9
9
|
/**
|
|
10
|
-
* @since
|
|
10
|
+
* @since 4.0.0
|
|
11
11
|
*/
|
|
12
12
|
export * as SqliteMigrator from "./SqliteMigrator.ts";
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
export * as OpfsWorker from "./OpfsWorker.js";
|
|
5
5
|
/**
|
|
6
|
-
* @since
|
|
6
|
+
* @since 4.0.0
|
|
7
7
|
*/
|
|
8
8
|
export * as SqliteClient from "./SqliteClient.js";
|
|
9
9
|
/**
|
|
10
|
-
* @since
|
|
10
|
+
* @since 4.0.0
|
|
11
11
|
*/
|
|
12
12
|
export * as SqliteMigrator from "./SqliteMigrator.js";
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-sqlite-wasm",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.70",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A SQLite toolkit for Effect",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@effect/wa-sqlite": "^0.2.1",
|
|
47
|
-
"effect": "^4.0.0-beta.
|
|
47
|
+
"effect": "^4.0.0-beta.70"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@effect/wa-sqlite": "^0.1.2",
|
|
51
|
-
"effect": "^4.0.0-beta.
|
|
51
|
+
"effect": "^4.0.0-beta.70"
|
|
52
52
|
},
|
|
53
53
|
"scripts": {
|
|
54
54
|
"codegen": "effect-utils codegen",
|
package/src/OpfsWorker.ts
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Worker-side entry point for SQLite WASM databases stored in the browser
|
|
3
|
+
* Origin Private File System.
|
|
4
|
+
*
|
|
5
|
+
* This module opens `@effect/wa-sqlite` with the OPFS access-handle VFS and
|
|
6
|
+
* serves the message protocol used by `SqliteClient.make`. Run it from a
|
|
7
|
+
* dedicated worker, or from a `SharedWorker` connection port, when an
|
|
8
|
+
* application needs durable local SQLite storage for local-first data, offline
|
|
9
|
+
* caches, client-side migrations, or import/export workflows that keep the
|
|
10
|
+
* database off the main thread.
|
|
11
|
+
*
|
|
12
|
+
* The worker owns the SQLite connection for the lifetime of `run`: it posts a
|
|
13
|
+
* `ready` message after opening the database, responds to query, import,
|
|
14
|
+
* export, and update-hook messages, and releases the database when the client
|
|
15
|
+
* sends `close` or the surrounding scope is interrupted. Because OPFS support
|
|
16
|
+
* depends on the browser and origin, applications should start this worker only
|
|
17
|
+
* in supported secure contexts, close unused ports so access handles are
|
|
18
|
+
* released, and coordinate multiple tabs or workers before opening or migrating
|
|
19
|
+
* the same OPFS database.
|
|
20
|
+
*
|
|
21
|
+
* @since 4.0.0
|
|
3
22
|
*/
|
|
4
23
|
/// <reference lib="webworker" />
|
|
5
24
|
// oxlint-disable-next-line effect/no-import-from-barrel-package
|
|
@@ -7,12 +26,17 @@ import * as WaSqlite from "@effect/wa-sqlite"
|
|
|
7
26
|
import SQLiteESMFactory from "@effect/wa-sqlite/dist/wa-sqlite.mjs"
|
|
8
27
|
import { AccessHandlePoolVFS } from "@effect/wa-sqlite/src/examples/AccessHandlePoolVFS.js"
|
|
9
28
|
import * as Effect from "effect/Effect"
|
|
10
|
-
import { SqlError } from "effect/unstable/sql/SqlError"
|
|
29
|
+
import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError"
|
|
11
30
|
import type { OpfsWorkerMessage } from "./internal/opfsWorker.ts"
|
|
12
31
|
|
|
32
|
+
const classifyError = (cause: unknown, message: string, operation: string) =>
|
|
33
|
+
classifySqliteError(cause, { message, operation })
|
|
34
|
+
|
|
13
35
|
/**
|
|
36
|
+
* Configuration for the SQLite OPFS worker, including the message port used for the client protocol and the OPFS database name to open.
|
|
37
|
+
*
|
|
14
38
|
* @category models
|
|
15
|
-
* @since
|
|
39
|
+
* @since 4.0.0
|
|
16
40
|
*/
|
|
17
41
|
export interface OpfsWorkerConfig {
|
|
18
42
|
readonly port: EventTarget & Pick<MessagePort, "postMessage" | "close">
|
|
@@ -20,8 +44,10 @@ export interface OpfsWorkerConfig {
|
|
|
20
44
|
}
|
|
21
45
|
|
|
22
46
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
47
|
+
* Runs the SQLite OPFS worker loop, opening the configured database, posting a ready message, handling query/import/export/update-hook messages, and closing when a close message is received.
|
|
48
|
+
*
|
|
49
|
+
* @category constructors
|
|
50
|
+
* @since 4.0.0
|
|
25
51
|
*/
|
|
26
52
|
export const run = (
|
|
27
53
|
options: OpfsWorkerConfig
|
|
@@ -34,7 +60,7 @@ export const run = (
|
|
|
34
60
|
const db = yield* Effect.acquireRelease(
|
|
35
61
|
Effect.try({
|
|
36
62
|
try: () => sqlite3.open_v2(options.dbName, undefined, "opfs"),
|
|
37
|
-
catch: (cause) => new SqlError({ cause,
|
|
63
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to open database", "openDatabase") })
|
|
38
64
|
}),
|
|
39
65
|
(db) => Effect.sync(() => sqlite3.close(db))
|
|
40
66
|
)
|
package/src/SqliteClient.ts
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* SQLite WASM client implementation for Effect SQL, backed by `@effect/wa-sqlite`.
|
|
3
|
+
*
|
|
4
|
+
* This module exposes constructors and layers for providing both the
|
|
5
|
+
* SQLite-specific `SqliteClient` service and the generic Effect `SqlClient`
|
|
6
|
+
* service in browser, worker, and test runtimes. Use it for local-first
|
|
7
|
+
* browser storage, offline caches, client-side migrations, sandboxed test
|
|
8
|
+
* databases, and import/export workflows that snapshot a SQLite database as a
|
|
9
|
+
* `Uint8Array`.
|
|
10
|
+
*
|
|
11
|
+
* `makeMemory` opens an in-memory database through the WASM memory VFS, so data
|
|
12
|
+
* is transient unless the client `export` result is persisted and later passed
|
|
13
|
+
* back to `import`. `make` talks to a scoped `Worker`, `SharedWorker`, or
|
|
14
|
+
* `MessagePort`, which is the path used by the OPFS worker helper for persistent
|
|
15
|
+
* browser storage. Worker-backed queries cross a message boundary, transferable
|
|
16
|
+
* buffers can be supplied with `withTransferables`, and imports transfer the
|
|
17
|
+
* supplied `Uint8Array` buffer to the worker.
|
|
18
|
+
*
|
|
19
|
+
* Both client variants serialize access through a single connection. A
|
|
20
|
+
* transaction holds that connection for the lifetime of its scope, so keep
|
|
21
|
+
* transactions short and use them for multi-statement writes that must commit
|
|
22
|
+
* atomically. OPFS availability depends on the browser and origin, and multiple
|
|
23
|
+
* tabs or workers opening the same OPFS database should coordinate migrations
|
|
24
|
+
* and writes outside this module. Worker-backed clients restart their scoped
|
|
25
|
+
* connection on worker errors, `executeStream` is not implemented there, and
|
|
26
|
+
* SQLite does not support `updateValues`.
|
|
27
|
+
*
|
|
28
|
+
* @since 4.0.0
|
|
3
29
|
*/
|
|
4
30
|
// oxlint-disable-next-line effect/no-import-from-barrel-package
|
|
5
31
|
import * as WaSqlite from "@effect/wa-sqlite"
|
|
6
32
|
import SQLiteESMFactory from "@effect/wa-sqlite/dist/wa-sqlite.mjs"
|
|
7
33
|
import { MemoryVFS } from "@effect/wa-sqlite/src/examples/MemoryVFS.js"
|
|
8
34
|
import * as Config from "effect/Config"
|
|
35
|
+
import * as Context from "effect/Context"
|
|
9
36
|
import * as Deferred from "effect/Deferred"
|
|
10
37
|
import * as Effect from "effect/Effect"
|
|
11
38
|
import * as Exit from "effect/Exit"
|
|
@@ -15,32 +42,40 @@ import * as Layer from "effect/Layer"
|
|
|
15
42
|
import * as Scope from "effect/Scope"
|
|
16
43
|
import * as ScopedRef from "effect/ScopedRef"
|
|
17
44
|
import * as Semaphore from "effect/Semaphore"
|
|
18
|
-
import * as ServiceMap from "effect/ServiceMap"
|
|
19
45
|
import * as Stream from "effect/Stream"
|
|
20
46
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity"
|
|
21
47
|
import * as Client from "effect/unstable/sql/SqlClient"
|
|
22
48
|
import type { Connection } from "effect/unstable/sql/SqlConnection"
|
|
23
|
-
import { SqlError } from "effect/unstable/sql/SqlError"
|
|
49
|
+
import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError"
|
|
24
50
|
import * as Statement from "effect/unstable/sql/Statement"
|
|
25
51
|
import type { OpfsWorkerMessage } from "./internal/opfsWorker.ts"
|
|
26
52
|
|
|
27
53
|
const ATTR_DB_SYSTEM_NAME = "db.system.name"
|
|
28
54
|
|
|
55
|
+
const classifyError = (cause: unknown, message: string, operation: string) =>
|
|
56
|
+
classifySqliteError(cause, { message, operation })
|
|
57
|
+
|
|
29
58
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
59
|
+
* Runtime identifier attached to SQLite WASM client values.
|
|
60
|
+
*
|
|
61
|
+
* @category type IDs
|
|
62
|
+
* @since 4.0.0
|
|
32
63
|
*/
|
|
33
64
|
export const TypeId: TypeId = "~@effect/sql-sqlite-wasm/SqliteClient"
|
|
34
65
|
|
|
35
66
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
67
|
+
* Type-level identifier for SQLite WASM client values.
|
|
68
|
+
*
|
|
69
|
+
* @category type IDs
|
|
70
|
+
* @since 4.0.0
|
|
38
71
|
*/
|
|
39
72
|
export type TypeId = "~@effect/sql-sqlite-wasm/SqliteClient"
|
|
40
73
|
|
|
41
74
|
/**
|
|
75
|
+
* SQLite WASM client service interface, extending `SqlClient` with database `export` and `import` operations and marking `updateValues` as unsupported for SQLite.
|
|
76
|
+
*
|
|
42
77
|
* @category models
|
|
43
|
-
* @since
|
|
78
|
+
* @since 4.0.0
|
|
44
79
|
*/
|
|
45
80
|
export interface SqliteClient extends Client.SqlClient {
|
|
46
81
|
readonly [TypeId]: TypeId
|
|
@@ -53,14 +88,18 @@ export interface SqliteClient extends Client.SqlClient {
|
|
|
53
88
|
}
|
|
54
89
|
|
|
55
90
|
/**
|
|
91
|
+
* Context service tag for the SQLite WASM client.
|
|
92
|
+
*
|
|
56
93
|
* @category tags
|
|
57
|
-
* @since
|
|
94
|
+
* @since 4.0.0
|
|
58
95
|
*/
|
|
59
|
-
export const SqliteClient =
|
|
96
|
+
export const SqliteClient = Context.Service<SqliteClient>("@effect/sql-sqlite-wasm/SqliteClient")
|
|
60
97
|
|
|
61
98
|
/**
|
|
99
|
+
* Configuration for an in-memory SQLite WASM client, including optional reactivity hooks, span attributes, and query/result name transforms.
|
|
100
|
+
*
|
|
62
101
|
* @category models
|
|
63
|
-
* @since
|
|
102
|
+
* @since 4.0.0
|
|
64
103
|
*/
|
|
65
104
|
export interface SqliteClientMemoryConfig {
|
|
66
105
|
readonly installReactivityHooks?: boolean
|
|
@@ -70,8 +109,10 @@ export interface SqliteClientMemoryConfig {
|
|
|
70
109
|
}
|
|
71
110
|
|
|
72
111
|
/**
|
|
112
|
+
* Configuration for a worker-backed SQLite WASM client, including the scoped worker or message port, optional reactivity hooks, span attributes, and query/result name transforms.
|
|
113
|
+
*
|
|
73
114
|
* @category models
|
|
74
|
-
* @since
|
|
115
|
+
* @since 4.0.0
|
|
75
116
|
*/
|
|
76
117
|
export interface SqliteClientConfig {
|
|
77
118
|
readonly worker: Effect.Effect<Worker | SharedWorker | MessagePort, never, Scope.Scope>
|
|
@@ -97,8 +138,10 @@ const initEffect = Effect.runSync(
|
|
|
97
138
|
const registered = new Set<string>()
|
|
98
139
|
|
|
99
140
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
141
|
+
* Creates a scoped in-memory SQLite WASM client using the memory VFS, serializing access through a semaphore and exposing database `export` and `import` operations.
|
|
142
|
+
*
|
|
143
|
+
* @category constructors
|
|
144
|
+
* @since 4.0.0
|
|
102
145
|
*/
|
|
103
146
|
export const makeMemory = (
|
|
104
147
|
options: SqliteClientMemoryConfig
|
|
@@ -125,7 +168,7 @@ export const makeMemory = (
|
|
|
125
168
|
const db = yield* Effect.acquireRelease(
|
|
126
169
|
Effect.try({
|
|
127
170
|
try: () => sqlite3.open_v2(":memory:", undefined, "memory-vfs"),
|
|
128
|
-
catch: (cause) => new SqlError({ cause,
|
|
171
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to open database", "openDatabase") })
|
|
129
172
|
}),
|
|
130
173
|
(db) => Effect.sync(() => sqlite3.close(db))
|
|
131
174
|
)
|
|
@@ -165,7 +208,7 @@ export const makeMemory = (
|
|
|
165
208
|
}
|
|
166
209
|
return results
|
|
167
210
|
},
|
|
168
|
-
catch: (cause) => new SqlError({ cause,
|
|
211
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") })
|
|
169
212
|
})
|
|
170
213
|
|
|
171
214
|
return identity<SqliteConnection>({
|
|
@@ -203,17 +246,19 @@ export const makeMemory = (
|
|
|
203
246
|
transformRows
|
|
204
247
|
? Stream.mapArray((chunk) => transformRows(chunk) as any)
|
|
205
248
|
: identity,
|
|
206
|
-
Stream.mapError((cause) =>
|
|
249
|
+
Stream.mapError((cause) =>
|
|
250
|
+
new SqlError({ reason: classifyError(cause, "Failed to execute statement", "stream") })
|
|
251
|
+
)
|
|
207
252
|
)
|
|
208
253
|
},
|
|
209
254
|
export: Effect.try({
|
|
210
255
|
try: () => sqlite3.serialize(db, "main"),
|
|
211
|
-
catch: (cause) => new SqlError({ cause,
|
|
256
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to export database", "export") })
|
|
212
257
|
}),
|
|
213
258
|
import(data) {
|
|
214
259
|
return Effect.try({
|
|
215
260
|
try: () => sqlite3.deserialize(db, "main", data, data.length, data.length, 1 | 2),
|
|
216
|
-
catch: (cause) => new SqlError({ cause,
|
|
261
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to import database", "import") })
|
|
217
262
|
})
|
|
218
263
|
}
|
|
219
264
|
})
|
|
@@ -225,7 +270,7 @@ export const makeMemory = (
|
|
|
225
270
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection))
|
|
226
271
|
const transactionAcquirer = Effect.uninterruptibleMask((restore) => {
|
|
227
272
|
const fiber = Fiber.getCurrent()!
|
|
228
|
-
const scope =
|
|
273
|
+
const scope = Context.getUnsafe(fiber.context, Scope.Scope)
|
|
229
274
|
return Effect.as(
|
|
230
275
|
Effect.tap(
|
|
231
276
|
restore(semaphore.take(1)),
|
|
@@ -258,8 +303,10 @@ export const makeMemory = (
|
|
|
258
303
|
})
|
|
259
304
|
|
|
260
305
|
/**
|
|
261
|
-
*
|
|
262
|
-
*
|
|
306
|
+
* Creates a scoped worker-backed SQLite WASM client, communicating with the configured worker or message port, restarting the scoped connection on worker errors, and exposing database `export` and `import` operations.
|
|
307
|
+
*
|
|
308
|
+
* @category constructors
|
|
309
|
+
* @since 4.0.0
|
|
263
310
|
*/
|
|
264
311
|
export const make = (
|
|
265
312
|
options: SqliteClientConfig
|
|
@@ -297,7 +344,11 @@ export const make = (
|
|
|
297
344
|
if (!resume) return
|
|
298
345
|
pending.delete(id)
|
|
299
346
|
if (error) {
|
|
300
|
-
resume(
|
|
347
|
+
resume(
|
|
348
|
+
Exit.fail(
|
|
349
|
+
new SqlError({ reason: classifyError(error as string, "Failed to execute statement", "execute") })
|
|
350
|
+
)
|
|
351
|
+
)
|
|
301
352
|
} else {
|
|
302
353
|
resume(Exit.succeed(results))
|
|
303
354
|
}
|
|
@@ -383,7 +434,7 @@ export const make = (
|
|
|
383
434
|
const acquirer = semaphore.withPermits(1)(ScopedRef.get(connectionRef))
|
|
384
435
|
const transactionAcquirer = Effect.uninterruptibleMask(Effect.fnUntraced(function*(restore) {
|
|
385
436
|
const fiber = Fiber.getCurrent()!
|
|
386
|
-
const scope =
|
|
437
|
+
const scope = Context.getUnsafe(fiber.context, Scope.Scope)
|
|
387
438
|
yield* restore(semaphore.take(1))
|
|
388
439
|
yield* Scope.addFinalizer(scope, semaphore.release(1))
|
|
389
440
|
return yield* ScopedRef.get(connectionRef)
|
|
@@ -422,81 +473,93 @@ const extractObject = (rows: [Array<string>, Array<any>]) => rows[1].map((row) =
|
|
|
422
473
|
const extractRows = (rows: [Array<string>, Array<any>]) => rows[1]
|
|
423
474
|
|
|
424
475
|
/**
|
|
476
|
+
* Fiber-local list of transferables to include with worker-backed SQLite WASM query messages.
|
|
477
|
+
*
|
|
425
478
|
* @category tranferables
|
|
426
|
-
* @since
|
|
479
|
+
* @since 4.0.0
|
|
427
480
|
*/
|
|
428
|
-
export const Transferables =
|
|
481
|
+
export const Transferables = Context.Reference<ReadonlyArray<Transferable>>(
|
|
429
482
|
"@effect/sql-sqlite-wasm/currentTransferables",
|
|
430
483
|
{ defaultValue: () => [] }
|
|
431
484
|
)
|
|
432
485
|
|
|
433
486
|
/**
|
|
487
|
+
* Runs an effect with the supplied transferables attached to worker-backed SQLite WASM query messages.
|
|
488
|
+
*
|
|
434
489
|
* @category tranferables
|
|
435
|
-
* @since
|
|
490
|
+
* @since 4.0.0
|
|
436
491
|
*/
|
|
437
492
|
export const withTransferables =
|
|
438
493
|
(transferables: ReadonlyArray<Transferable>) => <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
|
439
494
|
Effect.provideService(effect, Transferables, transferables)
|
|
440
495
|
|
|
441
496
|
/**
|
|
497
|
+
* Builds a layer from an Effect `Config` value, providing both the in-memory SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
|
|
498
|
+
*
|
|
442
499
|
* @category layers
|
|
443
|
-
* @since
|
|
500
|
+
* @since 4.0.0
|
|
444
501
|
*/
|
|
445
502
|
export const layerMemoryConfig = (
|
|
446
503
|
config: Config.Wrap<SqliteClientMemoryConfig>
|
|
447
504
|
): Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError | SqlError> =>
|
|
448
|
-
Layer.
|
|
449
|
-
Config.unwrap(config).
|
|
505
|
+
Layer.effectContext(
|
|
506
|
+
Config.unwrap(config).pipe(
|
|
450
507
|
Effect.flatMap(makeMemory),
|
|
451
508
|
Effect.map((client) =>
|
|
452
|
-
|
|
453
|
-
|
|
509
|
+
Context.make(SqliteClient, client).pipe(
|
|
510
|
+
Context.add(Client.SqlClient, client)
|
|
454
511
|
)
|
|
455
512
|
)
|
|
456
513
|
)
|
|
457
514
|
).pipe(Layer.provide(Reactivity.layer))
|
|
458
515
|
|
|
459
516
|
/**
|
|
517
|
+
* Builds a layer from an in-memory SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
518
|
+
*
|
|
460
519
|
* @category layers
|
|
461
|
-
* @since
|
|
520
|
+
* @since 4.0.0
|
|
462
521
|
*/
|
|
463
522
|
export const layerMemory = (
|
|
464
523
|
config: SqliteClientMemoryConfig
|
|
465
524
|
): Layer.Layer<SqliteClient | Client.SqlClient, SqlError> =>
|
|
466
|
-
Layer.
|
|
525
|
+
Layer.effectContext(
|
|
467
526
|
Effect.map(makeMemory(config), (client) =>
|
|
468
|
-
|
|
469
|
-
|
|
527
|
+
Context.make(SqliteClient, client).pipe(
|
|
528
|
+
Context.add(Client.SqlClient, client)
|
|
470
529
|
))
|
|
471
530
|
).pipe(Layer.provide(Reactivity.layer))
|
|
472
531
|
|
|
473
532
|
/**
|
|
533
|
+
* Builds a layer from a worker-backed SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
534
|
+
*
|
|
474
535
|
* @category layers
|
|
475
|
-
* @since
|
|
536
|
+
* @since 4.0.0
|
|
476
537
|
*/
|
|
477
538
|
export const layer = (
|
|
478
539
|
config: SqliteClientConfig
|
|
479
540
|
): Layer.Layer<SqliteClient | Client.SqlClient, SqlError> =>
|
|
480
|
-
Layer.
|
|
541
|
+
Layer.effectContext(
|
|
481
542
|
Effect.map(make(config), (client) =>
|
|
482
|
-
|
|
483
|
-
|
|
543
|
+
Context.make(SqliteClient, client).pipe(
|
|
544
|
+
Context.add(Client.SqlClient, client)
|
|
484
545
|
))
|
|
485
546
|
).pipe(Layer.provide(Reactivity.layer))
|
|
486
547
|
|
|
487
548
|
/**
|
|
549
|
+
* Builds a layer from an Effect `Config` value, providing both the worker-backed SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
|
|
550
|
+
*
|
|
488
551
|
* @category layers
|
|
489
|
-
* @since
|
|
552
|
+
* @since 4.0.0
|
|
490
553
|
*/
|
|
491
554
|
export const layerConfig = (
|
|
492
555
|
config: Config.Wrap<SqliteClientConfig>
|
|
493
556
|
): Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError | SqlError> =>
|
|
494
|
-
Layer.
|
|
495
|
-
Config.unwrap(config).
|
|
557
|
+
Layer.effectContext(
|
|
558
|
+
Config.unwrap(config).pipe(
|
|
496
559
|
Effect.flatMap(make),
|
|
497
560
|
Effect.map((client) =>
|
|
498
|
-
|
|
499
|
-
|
|
561
|
+
Context.make(SqliteClient, client).pipe(
|
|
562
|
+
Context.add(Client.SqlClient, client)
|
|
500
563
|
)
|
|
501
564
|
)
|
|
502
565
|
)
|
package/src/SqliteMigrator.ts
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for applying Effect SQL migrations to SQLite WASM databases.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers that execute ordered migrations through the
|
|
6
|
+
* current SQLite WASM `SqlClient`. Use it when a browser, worker, or test
|
|
7
|
+
* runtime needs to create or upgrade a local SQLite schema before repositories,
|
|
8
|
+
* caches, sync services, or other database-backed services start.
|
|
9
|
+
*
|
|
10
|
+
* The migrator operates on whichever WASM client is in the environment. With
|
|
11
|
+
* `SqliteClient.makeMemory`, migrations update an in-memory database, so the
|
|
12
|
+
* resulting schema is transient unless you persist it with the client's
|
|
13
|
+
* `export` and `import` operations. With worker-backed OPFS databases, run the
|
|
14
|
+
* migrator against the same worker configuration and OPFS database name used by
|
|
15
|
+
* the rest of the application, and coordinate startup across tabs or workers so
|
|
16
|
+
* only one migrator upgrades a given database at a time. OPFS availability is
|
|
17
|
+
* browser- and origin-dependent, and this adapter does not currently write
|
|
18
|
+
* SQLite schema dumps for `schemaDirectory`.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
3
21
|
*/
|
|
4
22
|
import type * as Effect from "effect/Effect"
|
|
5
23
|
import * as Layer from "effect/Layer"
|
|
@@ -8,13 +26,15 @@ import type * as Client from "effect/unstable/sql/SqlClient"
|
|
|
8
26
|
import type { SqlError } from "effect/unstable/sql/SqlError"
|
|
9
27
|
|
|
10
28
|
/**
|
|
11
|
-
* @since
|
|
29
|
+
* @since 4.0.0
|
|
12
30
|
*/
|
|
13
31
|
export * from "effect/unstable/sql/Migrator"
|
|
14
32
|
|
|
15
33
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
34
|
+
* Runs SQL migrations for a SQLite WASM database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
35
|
+
*
|
|
36
|
+
* @category constructors
|
|
37
|
+
* @since 4.0.0
|
|
18
38
|
*/
|
|
19
39
|
export const run: <R>(
|
|
20
40
|
options: Migrator.MigratorOptions<R>
|
|
@@ -25,8 +45,10 @@ export const run: <R>(
|
|
|
25
45
|
> = Migrator.make({})
|
|
26
46
|
|
|
27
47
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
48
|
+
* Creates a layer that runs the configured SQLite WASM migrations during layer construction and provides no services.
|
|
49
|
+
*
|
|
50
|
+
* @category constructors
|
|
51
|
+
* @since 4.0.0
|
|
30
52
|
*/
|
|
31
53
|
export const layer = <R>(
|
|
32
54
|
options: Migrator.MigratorOptions<R>
|
package/src/index.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
export * as OpfsWorker from "./OpfsWorker.ts"
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* @since
|
|
7
|
+
* @since 4.0.0
|
|
8
8
|
*/
|
|
9
9
|
export * as SqliteClient from "./SqliteClient.ts"
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* @since
|
|
12
|
+
* @since 4.0.0
|
|
13
13
|
*/
|
|
14
14
|
export * as SqliteMigrator from "./SqliteMigrator.ts"
|
package/src/sqlite-wasm.d.ts
CHANGED
|
@@ -1,19 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Declares the wa-sqlite IndexedDB batch-atomic VFS example module.
|
|
3
|
+
*
|
|
4
|
+
* @since 4.0.0
|
|
3
5
|
*/
|
|
4
6
|
declare module "@effect/wa-sqlite/src/examples/IDBBatchAtomicVFS.js" {
|
|
7
|
+
/**
|
|
8
|
+
* IndexedDB-backed wa-sqlite virtual file system that batches writes and
|
|
9
|
+
* commits them atomically.
|
|
10
|
+
*
|
|
11
|
+
* @category models
|
|
12
|
+
* @since 4.0.0
|
|
13
|
+
*/
|
|
5
14
|
// oxlint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
6
15
|
export class IDBBatchAtomicVFS {
|
|
16
|
+
/**
|
|
17
|
+
* Creates a batch-atomic IndexedDB VFS registered under `name` for the
|
|
18
|
+
* provided wa-sqlite module. The optional `options` value is forwarded to
|
|
19
|
+
* the upstream VFS implementation.
|
|
20
|
+
*/
|
|
7
21
|
static async create(name: string, module: any, options?: any): Promise<any>
|
|
8
22
|
}
|
|
9
23
|
}
|
|
10
24
|
|
|
11
25
|
/**
|
|
12
|
-
*
|
|
26
|
+
* Declares the wa-sqlite OPFS access-handle pool VFS example module.
|
|
27
|
+
*
|
|
28
|
+
* @since 4.0.0
|
|
13
29
|
*/
|
|
14
30
|
declare module "@effect/wa-sqlite/src/examples/AccessHandlePoolVFS.js" {
|
|
31
|
+
/**
|
|
32
|
+
* OPFS-backed wa-sqlite virtual file system that pools file-system access
|
|
33
|
+
* handles for persistent browser storage.
|
|
34
|
+
*
|
|
35
|
+
* @category models
|
|
36
|
+
* @since 4.0.0
|
|
37
|
+
*/
|
|
15
38
|
// oxlint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
16
39
|
export class AccessHandlePoolVFS {
|
|
40
|
+
/**
|
|
41
|
+
* Creates an OPFS access-handle pool VFS registered under `name` for the
|
|
42
|
+
* provided wa-sqlite module. The optional `options` value is forwarded to
|
|
43
|
+
* the upstream VFS implementation.
|
|
44
|
+
*/
|
|
17
45
|
static async create(name: string, module: any, options?: any): Promise<any>
|
|
18
46
|
}
|
|
19
47
|
}
|