@livestore/sqlite-wasm 0.4.0 → 0.5.0-dev.0
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/.tsbuildinfo +1 -1
- package/dist/FacadeVFS.d.ts +0 -3
- package/dist/FacadeVFS.d.ts.map +1 -1
- package/dist/FacadeVFS.js +0 -3
- package/dist/FacadeVFS.js.map +1 -1
- package/dist/browser/mod.d.ts.map +1 -1
- package/dist/browser/mod.js +3 -3
- package/dist/browser/mod.js.map +1 -1
- package/dist/browser/opfs/AccessHandlePoolVFS.d.ts +4 -4
- package/dist/browser/opfs/AccessHandlePoolVFS.d.ts.map +1 -1
- package/dist/browser/opfs/AccessHandlePoolVFS.js +79 -66
- package/dist/browser/opfs/AccessHandlePoolVFS.js.map +1 -1
- package/dist/browser/opfs/index.d.ts.map +1 -1
- package/dist/browser/opfs/index.js +2 -2
- package/dist/browser/opfs/index.js.map +1 -1
- package/dist/cf/CloudflareDurableObjectVFS.d.ts.map +1 -1
- package/dist/cf/CloudflareDurableObjectVFS.js +3 -1
- package/dist/cf/CloudflareDurableObjectVFS.js.map +1 -1
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js +1 -1
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js.map +1 -1
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js +1 -1
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js.map +1 -1
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js +1 -1
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js.map +1 -1
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js +1 -1
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js.map +1 -1
- package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js +1 -1
- package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js.map +1 -1
- package/dist/make-sqlite-db.d.ts.map +1 -1
- package/dist/make-sqlite-db.js +1 -1
- package/dist/make-sqlite-db.js.map +1 -1
- package/dist/node/NodeFS.js +1 -1
- package/dist/node/NodeFS.js.map +1 -1
- package/dist/node/mod.js +1 -1
- package/dist/node/mod.js.map +1 -1
- package/package.json +13 -22
- package/src/FacadeVFS.ts +0 -4
- package/src/browser/mod.ts +3 -3
- package/src/browser/opfs/AccessHandlePoolVFS.ts +91 -77
- package/src/browser/opfs/index.ts +2 -2
- package/src/cf/CloudflareDurableObjectVFS.ts +3 -4
- package/src/cf/test/README.md +8 -11
- package/src/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.ts +2 -1
- package/src/cf/test/async-storage/cloudflare-worker-vfs-core.test.ts +2 -1
- package/src/cf/test/async-storage/cloudflare-worker-vfs-integration.test.ts +2 -1
- package/src/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.ts +2 -1
- package/src/cf/test/sql/cloudflare-sql-vfs-core.test.ts +6 -3
- package/src/make-sqlite-db.ts +16 -21
- package/src/node/NodeFS.ts +1 -1
- package/src/node/mod.ts +1 -1
package/dist/FacadeVFS.d.ts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/** biome-ignore-all lint/complexity/useLiteralKeys: not needed for this file */
|
|
2
|
-
/** biome-ignore-all lint/correctness/noUnusedFunctionParameters: not needed for this file */
|
|
3
|
-
/** biome-ignore-all lint/complexity/noUselessConstructor: keep constructor for compatibility */
|
|
4
1
|
import * as VFS from '@livestore/wa-sqlite/src/VFS.js';
|
|
5
2
|
export declare class FacadeVFS extends VFS.Base {
|
|
6
3
|
#private;
|
package/dist/FacadeVFS.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacadeVFS.d.ts","sourceRoot":"","sources":["../src/FacadeVFS.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FacadeVFS.d.ts","sourceRoot":"","sources":["../src/FacadeVFS.ts"],"names":[],"mappings":"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"}
|
package/dist/FacadeVFS.js
CHANGED
|
@@ -3,9 +3,6 @@
|
|
|
3
3
|
// This TypeScript version lives in @livestore/sqlite-wasm instead of @livestore/wa-sqlite because:
|
|
4
4
|
// - @livestore/wa-sqlite is a direct wrapper of upstream wa-sqlite (kept as JavaScript for easier upstream sync)
|
|
5
5
|
// - @livestore/sqlite-wasm is where we add TypeScript abstractions on top of wa-sqlite
|
|
6
|
-
/** biome-ignore-all lint/complexity/useLiteralKeys: not needed for this file */
|
|
7
|
-
/** biome-ignore-all lint/correctness/noUnusedFunctionParameters: not needed for this file */
|
|
8
|
-
/** biome-ignore-all lint/complexity/noUselessConstructor: keep constructor for compatibility */
|
|
9
6
|
// @ts-nocheck
|
|
10
7
|
import * as VFS from '@livestore/wa-sqlite/src/VFS.js';
|
|
11
8
|
const AsyncFunction = Object.getPrototypeOf(async () => { }).constructor;
|
package/dist/FacadeVFS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacadeVFS.js","sourceRoot":"","sources":["../src/FacadeVFS.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FacadeVFS.js","sourceRoot":"","sources":["../src/FacadeVFS.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/browser/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/browser/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAA;AAI/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAGxE,cAAc,yBAAyB,CAAA;AAEvC,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,eAAe,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,SAAS,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,eAAe,CAAA;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,mBAAmB,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,eAAe,CAAC;QAC/B,aAAa,EAAE,MAAM,CAAA;QACrB,mCAAmC;QACnC,YAAY,EAAE,MAAM,CAAA;KACrB,CAAC,CAAA;IACF,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,2BAA2B,GAAG,uBAAuB,CAAA;AAEvF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,WAAW,CAAA;IACjB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,KAAK,uBAAuB,GAAG,YAAY,CAAC,cAAc,EAAE,wBAAwB,EAAE,2BAA2B,CAAC,CAAA;AAElH,KAAK,mBAAmB,GAAG,YAAY,CACrC,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CACxB,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,aAAa;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE;YAC1C,wBAAwB,GAAG,UAAU,CAAC,uBAAuB,CAAC;YAC9D,oBAAoB,GAAG,UAAU,CAAC,mBAAmB,CAAC;CAoE9E,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA"}
|
package/dist/browser/mod.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Effect, Hash
|
|
1
|
+
import { Effect, Hash } from '@livestore/utils/effect';
|
|
2
2
|
import { makeInMemoryDb } from "../in-memory-vfs.js";
|
|
3
3
|
import { makeSqliteDb } from "../make-sqlite-db.js";
|
|
4
4
|
import { makeOpfsDb } from "./opfs/index.js";
|
|
@@ -34,14 +34,14 @@ export const sqliteDbFactory = ({ sqlite3 }) => {
|
|
|
34
34
|
directory: input.opfsDirectory,
|
|
35
35
|
fileName: dbFilename,
|
|
36
36
|
});
|
|
37
|
-
const
|
|
37
|
+
const services = yield* Effect.context();
|
|
38
38
|
return makeSqliteDb({
|
|
39
39
|
sqlite3,
|
|
40
40
|
metadata: {
|
|
41
41
|
_tag: 'opfs',
|
|
42
42
|
vfs,
|
|
43
43
|
dbPointer,
|
|
44
|
-
deleteDb: () => vfs.resetAccessHandle(input.fileName).pipe(
|
|
44
|
+
deleteDb: () => vfs.resetAccessHandle(input.fileName).pipe(Effect.runSyncWith(services)),
|
|
45
45
|
configureDb: input.configureDb ?? (() => { }),
|
|
46
46
|
persistenceInfo: {
|
|
47
47
|
fileName: dbFilename,
|
package/dist/browser/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/browser/mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/browser/mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAc,MAAM,yBAAyB,CAAA;AAKlE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,cAAc,yBAAyB,CAAA;AAqDvC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,OAAO,EAA0B,EAAE,EAAE;IAGrE,SAAS,MAAM,CACb,KAAsD;QAStD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;gBAClD,OAAO,YAAY,CAA8B;oBAC/C,OAAO;oBACP,QAAQ,EAAE;wBACR,IAAI,EAAE,WAAW;wBACjB,GAAG;wBACH,SAAS;wBACT,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;wBAClB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;wBAC5C,eAAe,EAAE;4BACf,QAAQ,EAAE,UAAU;yBACrB;qBACF;iBACF,CAAC,CAAA;YACJ,CAAC;YAED,wCAAwC;YACxC,MAAM,sBAAsB,GAAG,EAAE,CAAA;YAEjC,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAA;YAE/B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;gBACnD,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,yBAAyB,KAAK,CAAC,QAAQ,UAAU,sBAAsB,eAAe,KAAK,CAAC,QAAQ,CAAC,MAAM,cAAc,CAC1H,CAAA;gBACD,UAAU,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAA;YACvD,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC;gBAC3C,OAAO;gBACP,SAAS,EAAE,KAAK,CAAC,aAAa;gBAC9B,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAa,CAAA;YAEnD,OAAO,YAAY,CAA0B;gBAC3C,OAAO;gBACP,QAAQ,EAAE;oBACR,IAAI,EAAE,MAAM;oBACZ,GAAG;oBACH,SAAS;oBACT,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACxF,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;oBAC5C,eAAe,EAAE;wBACf,QAAQ,EAAE,UAAU;wBACpB,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,YAAY,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC;qBACrD;iBACF;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type Context, Effect, type Scope } from '@livestore/utils/effect';
|
|
2
2
|
import { Opfs, type WebError } from '@livestore/utils/effect/browser';
|
|
3
3
|
import { FacadeVFS } from '../../FacadeVFS.ts';
|
|
4
4
|
/**
|
|
@@ -11,11 +11,11 @@ export declare class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
11
11
|
#private;
|
|
12
12
|
log: null;
|
|
13
13
|
static create: (name: string, directoryPath: string, module: any) => Effect.Effect<AccessHandlePoolVFS, never, Opfs.Opfs | Scope.Scope>;
|
|
14
|
-
constructor({ name, directoryPath, module,
|
|
14
|
+
constructor({ name, directoryPath, module, services, }: {
|
|
15
15
|
name: string;
|
|
16
16
|
directoryPath: string;
|
|
17
17
|
module: any;
|
|
18
|
-
|
|
18
|
+
services: Context.Context<Opfs.Opfs | Scope.Scope>;
|
|
19
19
|
});
|
|
20
20
|
/**
|
|
21
21
|
* Get the OPFS file name that contains the data for the given SQLite file.
|
|
@@ -75,6 +75,6 @@ export declare class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
75
75
|
* decreased to fewer than the current number of SQLite files in the
|
|
76
76
|
* file system.
|
|
77
77
|
*/
|
|
78
|
-
removeCapacity: (n: number) => Effect.Effect<number, WebError.
|
|
78
|
+
removeCapacity: (n: number) => Effect.Effect<number, WebError.WebError, Opfs.Opfs>;
|
|
79
79
|
}
|
|
80
80
|
//# sourceMappingURL=AccessHandlePoolVFS.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessHandlePoolVFS.d.ts","sourceRoot":"","sources":["../../../src/browser/opfs/AccessHandlePoolVFS.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AccessHandlePoolVFS.d.ts","sourceRoot":"","sources":["../../../src/browser/opfs/AccessHandlePoolVFS.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAY,KAAK,KAAK,EAAU,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AA+C9C;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;;IAChD,GAAG,OAAO;IAuBV,MAAM,CAAC,MAAM,2HAKX;gBAEU,EACV,IAAI,EACJ,aAAa,EACb,MAAM,EACN,QAAQ,GACT,EAAE;QACD,IAAI,EAAE,MAAM,CAAA;QACZ,aAAa,EAAE,MAAM,CAAA;QACrB,MAAM,EAAE,GAAG,CAAA;QACX,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;KACnD;IAMD;;;;;;;;OAQG;IACH,eAAe,yDAMd;IAED;;;;;;;;OAQG;IACH,eAAe,8EA0Bd;IAED,iBAAiB,uEAShB;IAEQ,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM;IAkChF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAmB9B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAmB9E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAkB/E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAahD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAa7C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM;IAepD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpC,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI/C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM;IAYjE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAYzD,KAAK;IAIC,OAAO;IAeb;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;;OAKG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAgB1F;IAED;;;;OAIG;IACH,cAAc,qEAsBb;CAgLF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Based on https://github.com/rhashimoto/wa-sqlite/blob/master/src/examples/AccessHandlePoolVFS.js
|
|
2
2
|
/// <reference lib="webworker" />
|
|
3
3
|
import { shouldNeverHappen } from '@livestore/utils';
|
|
4
|
-
import { Effect,
|
|
4
|
+
import { Effect, Schedule, Stream } from '@livestore/utils/effect';
|
|
5
5
|
import { Opfs } from '@livestore/utils/effect/browser';
|
|
6
6
|
import * as VFS from '@livestore/wa-sqlite/src/VFS.js';
|
|
7
7
|
import { FacadeVFS } from "../../FacadeVFS.js";
|
|
@@ -57,8 +57,8 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
57
57
|
// specified in the constructor. No other files should be written here.
|
|
58
58
|
#directoryPath;
|
|
59
59
|
#directoryHandle;
|
|
60
|
-
//
|
|
61
|
-
#
|
|
60
|
+
// Context for executing Effect operations.
|
|
61
|
+
#services;
|
|
62
62
|
// The OPFS files all have randomly-generated names that do not match
|
|
63
63
|
// the SQLite files whose data they contain. This map links those names
|
|
64
64
|
// with their respective OPFS access handles.
|
|
@@ -70,15 +70,15 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
70
70
|
#availableAccessHandles = new Set();
|
|
71
71
|
#mapIdToFile = new Map();
|
|
72
72
|
static create = Effect.fn(function* (name, directoryPath, module) {
|
|
73
|
-
const
|
|
74
|
-
const vfs = new AccessHandlePoolVFS({ name, directoryPath, module,
|
|
73
|
+
const services = yield* Effect.context();
|
|
74
|
+
const vfs = new AccessHandlePoolVFS({ name, directoryPath, module, services });
|
|
75
75
|
yield* Effect.promise(() => vfs.isReady());
|
|
76
76
|
return vfs;
|
|
77
77
|
});
|
|
78
|
-
constructor({ name, directoryPath, module,
|
|
78
|
+
constructor({ name, directoryPath, module, services, }) {
|
|
79
79
|
super(name, module);
|
|
80
80
|
this.#directoryPath = directoryPath;
|
|
81
|
-
this.#
|
|
81
|
+
this.#services = services;
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
84
|
* Get the OPFS file name that contains the data for the given SQLite file.
|
|
@@ -89,7 +89,7 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
89
89
|
* It's not the same as the SQLite file name. It's a randomly-generated
|
|
90
90
|
* string that is not meaningful to the application.
|
|
91
91
|
*/
|
|
92
|
-
getOpfsFileName = Effect.fn((zName) => Effect.gen(this, function* () {
|
|
92
|
+
getOpfsFileName = Effect.fn((zName) => Effect.gen({ self: this }, function* () {
|
|
93
93
|
const path = this.#getPath(zName);
|
|
94
94
|
const accessHandle = this.#mapPathToAccessHandle.get(path);
|
|
95
95
|
return this.#mapAccessHandleToName.get(accessHandle);
|
|
@@ -103,33 +103,35 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
103
103
|
* acquires an exclusive lock — we don't need to handle short reads as
|
|
104
104
|
* the file cannot be modified by other threads.
|
|
105
105
|
*/
|
|
106
|
-
readFilePayload = Effect.fn((zName) => Effect.gen(this, function* () {
|
|
106
|
+
readFilePayload = Effect.fn((zName) => Effect.gen({ self: this }, function* () {
|
|
107
107
|
const path = this.#getPath(zName);
|
|
108
108
|
const accessHandle = this.#mapPathToAccessHandle.get(path);
|
|
109
109
|
if (accessHandle === undefined) {
|
|
110
110
|
return shouldNeverHappen('Cannot read payload for untracked OPFS path');
|
|
111
111
|
}
|
|
112
|
-
const
|
|
112
|
+
const opfs = yield* Opfs.Opfs;
|
|
113
|
+
const fileSize = yield* opfs.syncGetSize(accessHandle);
|
|
113
114
|
if (fileSize <= HEADER_OFFSET_DATA) {
|
|
114
115
|
return shouldNeverHappen(`OPFS file too small to contain header and payload: size ${fileSize} < HEADER_OFFSET_DATA ${HEADER_OFFSET_DATA}`);
|
|
115
116
|
}
|
|
116
117
|
const payloadSize = fileSize - HEADER_OFFSET_DATA;
|
|
117
118
|
const payload = new Uint8Array(payloadSize);
|
|
118
|
-
const bytesRead = yield*
|
|
119
|
+
const bytesRead = yield* opfs.syncRead(accessHandle, payload, { at: HEADER_OFFSET_DATA });
|
|
119
120
|
if (bytesRead !== payloadSize) {
|
|
120
121
|
return shouldNeverHappen(`Failed to read full payload from OPFS file: read ${bytesRead}/${payloadSize}`);
|
|
121
122
|
}
|
|
122
123
|
return payload.buffer;
|
|
123
124
|
}));
|
|
124
|
-
resetAccessHandle = Effect.fn((zName) => Effect.gen(this, function* () {
|
|
125
|
+
resetAccessHandle = Effect.fn((zName) => Effect.gen({ self: this }, function* () {
|
|
125
126
|
const path = this.#getPath(zName);
|
|
126
127
|
const accessHandle = this.#mapPathToAccessHandle.get(path);
|
|
127
|
-
yield* Opfs.Opfs
|
|
128
|
+
const opfs = yield* Opfs.Opfs;
|
|
129
|
+
yield* opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
|
|
128
130
|
// accessHandle.write(new Uint8Array(), { at: HEADER_OFFSET_DATA })
|
|
129
131
|
// accessHandle.flush()
|
|
130
132
|
}));
|
|
131
133
|
jOpen(zName, fileId, flags, pOutFlags) {
|
|
132
|
-
return Effect.gen(this, function* () {
|
|
134
|
+
return Effect.gen({ self: this }, function* () {
|
|
133
135
|
// First try to open a path that already exists in the file system.
|
|
134
136
|
const name = zName;
|
|
135
137
|
const path = typeof name === 'string' && name !== '' ? this.#getPath(name) : Math.random().toString(36);
|
|
@@ -145,36 +147,38 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
145
147
|
else {
|
|
146
148
|
// Out of unassociated files. This can be fixed by calling
|
|
147
149
|
// addCapacity() from the application.
|
|
148
|
-
return yield* Effect.
|
|
150
|
+
return yield* Effect.die(new Error('cannot create file'));
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
153
|
if (accessHandle == null)
|
|
152
|
-
return yield* Effect.
|
|
154
|
+
return yield* Effect.die(new Error('file not found'));
|
|
153
155
|
// Subsequent methods are only passed the fileId, so make sure we have
|
|
154
156
|
// a way to get the file resources.
|
|
155
157
|
const file = { path, flags, accessHandle };
|
|
156
158
|
this.#mapIdToFile.set(fileId, file);
|
|
157
159
|
pOutFlags.setInt32(0, flags, true);
|
|
158
160
|
return VFS.SQLITE_OK;
|
|
159
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.
|
|
161
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_CANTOPEN)), Effect.runSyncWith(this.#services));
|
|
160
162
|
}
|
|
161
163
|
jClose(fileId) {
|
|
162
|
-
return Effect.gen(this, function* () {
|
|
164
|
+
return Effect.gen({ self: this }, function* () {
|
|
163
165
|
const file = this.#mapIdToFile.get(fileId);
|
|
164
166
|
if (file !== undefined) {
|
|
165
|
-
yield* Opfs.Opfs
|
|
167
|
+
const opfs = yield* Opfs.Opfs;
|
|
168
|
+
yield* opfs.syncFlush(file.accessHandle);
|
|
166
169
|
this.#mapIdToFile.delete(fileId);
|
|
167
170
|
if ((file.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) !== 0) {
|
|
168
171
|
yield* this.#deletePath(file.path);
|
|
169
172
|
}
|
|
170
173
|
}
|
|
171
174
|
return VFS.SQLITE_OK;
|
|
172
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.
|
|
175
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_CLOSE)), Effect.runSyncWith(this.#services));
|
|
173
176
|
}
|
|
174
177
|
jRead(fileId, pData, iOffset) {
|
|
175
|
-
return Effect.gen(this, function* () {
|
|
178
|
+
return Effect.gen({ self: this }, function* () {
|
|
176
179
|
const file = this.#mapIdToFile.get(fileId);
|
|
177
|
-
const
|
|
180
|
+
const opfs = yield* Opfs.Opfs;
|
|
181
|
+
const nBytes = yield* opfs.syncRead(file.accessHandle, pData.subarray(), {
|
|
178
182
|
at: HEADER_OFFSET_DATA + iOffset,
|
|
179
183
|
});
|
|
180
184
|
if (nBytes < pData.byteLength) {
|
|
@@ -182,42 +186,46 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
182
186
|
return VFS.SQLITE_IOERR_SHORT_READ;
|
|
183
187
|
}
|
|
184
188
|
return VFS.SQLITE_OK;
|
|
185
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.
|
|
189
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_READ)), Effect.runSyncWith(this.#services));
|
|
186
190
|
}
|
|
187
191
|
jWrite(fileId, pData, iOffset) {
|
|
188
|
-
return Effect.gen(this, function* () {
|
|
192
|
+
return Effect.gen({ self: this }, function* () {
|
|
189
193
|
const file = this.#mapIdToFile.get(fileId);
|
|
190
|
-
const
|
|
194
|
+
const opfs = yield* Opfs.Opfs;
|
|
195
|
+
const nBytes = yield* opfs.syncWrite(file.accessHandle, pData.subarray(), {
|
|
191
196
|
at: HEADER_OFFSET_DATA + iOffset,
|
|
192
197
|
});
|
|
193
198
|
if (nBytes !== pData.byteLength) {
|
|
194
|
-
return yield* Effect.
|
|
199
|
+
return yield* Effect.die(new Error(`Wrote ${nBytes} bytes, expected ${pData.byteLength}`));
|
|
195
200
|
}
|
|
196
201
|
return VFS.SQLITE_OK;
|
|
197
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.
|
|
202
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_WRITE)), Effect.runSyncWith(this.#services));
|
|
198
203
|
}
|
|
199
204
|
jTruncate(fileId, iSize) {
|
|
200
|
-
return Effect.gen(this, function* () {
|
|
205
|
+
return Effect.gen({ self: this }, function* () {
|
|
201
206
|
const file = this.#mapIdToFile.get(fileId);
|
|
202
|
-
yield* Opfs.Opfs
|
|
207
|
+
const opfs = yield* Opfs.Opfs;
|
|
208
|
+
yield* opfs.syncTruncate(file.accessHandle, HEADER_OFFSET_DATA + iSize);
|
|
203
209
|
return VFS.SQLITE_OK;
|
|
204
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.
|
|
210
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_TRUNCATE)), Effect.runSyncWith(this.#services));
|
|
205
211
|
}
|
|
206
212
|
jSync(fileId, _flags) {
|
|
207
|
-
return Effect.gen(this, function* () {
|
|
213
|
+
return Effect.gen({ self: this }, function* () {
|
|
208
214
|
const file = this.#mapIdToFile.get(fileId);
|
|
209
|
-
yield* Opfs.Opfs
|
|
215
|
+
const opfs = yield* Opfs.Opfs;
|
|
216
|
+
yield* opfs.syncFlush(file.accessHandle);
|
|
210
217
|
return VFS.SQLITE_OK;
|
|
211
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.
|
|
218
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_FSYNC)), Effect.runSyncWith(this.#services));
|
|
212
219
|
}
|
|
213
220
|
jFileSize(fileId, pSize64) {
|
|
214
|
-
return Effect.gen(this, function* () {
|
|
221
|
+
return Effect.gen({ self: this }, function* () {
|
|
215
222
|
const file = this.#mapIdToFile.get(fileId);
|
|
216
|
-
const
|
|
223
|
+
const opfs = yield* Opfs.Opfs;
|
|
224
|
+
const opfsFileSize = yield* opfs.syncGetSize(file.accessHandle);
|
|
217
225
|
const size = opfsFileSize - HEADER_OFFSET_DATA;
|
|
218
226
|
pSize64.setBigInt64(0, BigInt(size), true);
|
|
219
227
|
return VFS.SQLITE_OK;
|
|
220
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.
|
|
228
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_FSTAT)), Effect.runSyncWith(this.#services));
|
|
221
229
|
}
|
|
222
230
|
jSectorSize(_fileId) {
|
|
223
231
|
return SECTOR_SIZE;
|
|
@@ -226,24 +234,24 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
226
234
|
return VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;
|
|
227
235
|
}
|
|
228
236
|
jAccess(zName, _flags, pResOut) {
|
|
229
|
-
return Effect.gen(this, function* () {
|
|
237
|
+
return Effect.gen({ self: this }, function* () {
|
|
230
238
|
const path = this.#getPath(zName);
|
|
231
239
|
pResOut.setInt32(0, this.#mapPathToAccessHandle.has(path) === true ? 1 : 0, true);
|
|
232
240
|
return VFS.SQLITE_OK;
|
|
233
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.
|
|
241
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_ACCESS)), Effect.runSyncWith(this.#services));
|
|
234
242
|
}
|
|
235
243
|
jDelete(zName, _syncDir) {
|
|
236
|
-
return Effect.gen(this, function* () {
|
|
244
|
+
return Effect.gen({ self: this }, function* () {
|
|
237
245
|
const path = this.#getPath(zName);
|
|
238
246
|
yield* this.#deletePath(path);
|
|
239
247
|
return VFS.SQLITE_OK;
|
|
240
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.
|
|
248
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_DELETE)), Effect.runSyncWith(this.#services));
|
|
241
249
|
}
|
|
242
250
|
close() {
|
|
243
|
-
this.#releaseAccessHandles().pipe(
|
|
251
|
+
this.#releaseAccessHandles().pipe(Effect.runPromiseWith(this.#services));
|
|
244
252
|
}
|
|
245
253
|
async isReady() {
|
|
246
|
-
return Effect.gen(this, function* () {
|
|
254
|
+
return Effect.gen({ self: this }, function* () {
|
|
247
255
|
if (this.#directoryHandle == null) {
|
|
248
256
|
// All files are stored in a single directory.
|
|
249
257
|
this.#directoryHandle = yield* Opfs.getDirectoryHandleByPath(this.#directoryPath, { create: true });
|
|
@@ -253,7 +261,7 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
253
261
|
}
|
|
254
262
|
}
|
|
255
263
|
return true;
|
|
256
|
-
}).pipe(
|
|
264
|
+
}).pipe(Effect.runPromiseWith(this.#services));
|
|
257
265
|
}
|
|
258
266
|
/**
|
|
259
267
|
* Returns the number of SQLite files in the file system.
|
|
@@ -279,25 +287,27 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
279
287
|
/**
|
|
280
288
|
* Increase the capacity of the file system by n.
|
|
281
289
|
*/
|
|
282
|
-
addCapacity = Effect.fn((n) => Effect.
|
|
290
|
+
addCapacity = Effect.fn((n) => Effect.replicateEffect(Effect.gen({ self: this }, function* () {
|
|
283
291
|
const name = Math.random().toString(36).replace('0.', '');
|
|
284
|
-
const
|
|
292
|
+
const opfs = yield* Opfs.Opfs;
|
|
293
|
+
const accessHandle = yield* opfs.getFileHandle(this.#directoryHandle, name, { create: true }).pipe(Effect.andThen((handle) => opfs.createSyncAccessHandle(handle)), Effect.retry(Schedule.exponentialBackoff10Sec));
|
|
285
294
|
this.#mapAccessHandleToName.set(accessHandle, name);
|
|
286
295
|
yield* this.#setAssociatedPath(accessHandle, '', 0);
|
|
287
|
-
}), n));
|
|
296
|
+
}), n, { discard: true }));
|
|
288
297
|
/**
|
|
289
298
|
* Decrease the capacity of the file system by n. The capacity cannot be
|
|
290
299
|
* decreased to fewer than the current number of SQLite files in the
|
|
291
300
|
* file system.
|
|
292
301
|
*/
|
|
293
|
-
removeCapacity = Effect.fn((n) => Effect.gen(this, function* () {
|
|
302
|
+
removeCapacity = Effect.fn((n) => Effect.gen({ self: this }, function* () {
|
|
294
303
|
let nRemoved = 0;
|
|
295
|
-
yield* Effect.forEach(this.#availableAccessHandles, (accessHandle) => Effect.gen(this, function* () {
|
|
304
|
+
yield* Effect.forEach(this.#availableAccessHandles, (accessHandle) => Effect.gen({ self: this }, function* () {
|
|
296
305
|
if (nRemoved === n || this.getSize() === this.getCapacity())
|
|
297
306
|
return nRemoved;
|
|
298
307
|
const name = this.#mapAccessHandleToName.get(accessHandle);
|
|
299
308
|
accessHandle.close();
|
|
300
|
-
yield* Opfs.Opfs
|
|
309
|
+
const opfs = yield* Opfs.Opfs;
|
|
310
|
+
yield* opfs.removeEntry(this.#directoryHandle, name);
|
|
301
311
|
this.#mapAccessHandleToName.delete(accessHandle);
|
|
302
312
|
this.#availableAccessHandles.delete(accessHandle);
|
|
303
313
|
++nRemoved;
|
|
@@ -305,16 +315,17 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
305
315
|
}), { discard: true });
|
|
306
316
|
return nRemoved;
|
|
307
317
|
}));
|
|
308
|
-
#acquireAccessHandles = Effect.fn(() => Effect.gen(this, function* () {
|
|
309
|
-
const
|
|
310
|
-
|
|
311
|
-
|
|
318
|
+
#acquireAccessHandles = Effect.fn(() => Effect.gen({ self: this }, function* () {
|
|
319
|
+
const opfs = yield* Opfs.Opfs;
|
|
320
|
+
const handlesStream = opfs.values(this.#directoryHandle);
|
|
321
|
+
yield* handlesStream.pipe(Stream.filter((handle) => handle.kind === 'file'), Stream.mapEffect((fileHandle) => Effect.gen({ self: this }, function* () {
|
|
322
|
+
const accessHandle = yield* opfs.createSyncAccessHandle(fileHandle);
|
|
312
323
|
return {
|
|
313
324
|
accessHandle,
|
|
314
325
|
opfsFileName: fileHandle.name,
|
|
315
326
|
path: yield* this.#getAssociatedPath(accessHandle),
|
|
316
327
|
};
|
|
317
|
-
}), { concurrency: 'unbounded' }), Stream.runForEach(({ opfsFileName, accessHandle, path }) => Effect.gen(this, function* () {
|
|
328
|
+
}), { concurrency: 'unbounded' }), Stream.runForEach(({ opfsFileName, accessHandle, path }) => Effect.gen({ self: this }, function* () {
|
|
318
329
|
this.#mapAccessHandleToName.set(accessHandle, opfsFileName);
|
|
319
330
|
if (path !== '') {
|
|
320
331
|
this.#mapPathToAccessHandle.set(path, accessHandle);
|
|
@@ -324,7 +335,7 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
324
335
|
}
|
|
325
336
|
})));
|
|
326
337
|
}));
|
|
327
|
-
#releaseAccessHandles = Effect.fn(() => Effect.gen(this, function* () {
|
|
338
|
+
#releaseAccessHandles = Effect.fn(() => Effect.gen({ self: this }, function* () {
|
|
328
339
|
yield* Effect.forEach(this.#mapAccessHandleToName.keys(), (accessHandle) => Effect.sync(() => accessHandle.close()), { concurrency: 'unbounded', discard: true });
|
|
329
340
|
this.#mapAccessHandleToName.clear();
|
|
330
341
|
this.#mapPathToAccessHandle.clear();
|
|
@@ -335,10 +346,11 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
335
346
|
* Empty string is returned for an unassociated OPFS file.
|
|
336
347
|
* @returns {string} path or empty string
|
|
337
348
|
*/
|
|
338
|
-
#getAssociatedPath = Effect.fn((accessHandle) => Effect.gen(this, function* () {
|
|
349
|
+
#getAssociatedPath = Effect.fn((accessHandle) => Effect.gen({ self: this }, function* () {
|
|
339
350
|
// Read the path and digest of the path from the file.
|
|
340
351
|
const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
|
|
341
|
-
yield* Opfs.Opfs
|
|
352
|
+
const opfs = yield* Opfs.Opfs;
|
|
353
|
+
yield* opfs.syncRead(accessHandle, corpus, { at: 0 });
|
|
342
354
|
// Delete files not expected to be present.
|
|
343
355
|
const dataView = new DataView(corpus.buffer, corpus.byteOffset);
|
|
344
356
|
const flags = dataView.getUint32(HEADER_OFFSET_FLAGS);
|
|
@@ -348,7 +360,7 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
348
360
|
return '';
|
|
349
361
|
}
|
|
350
362
|
const fileDigest = new Uint32Array(HEADER_DIGEST_SIZE / 4);
|
|
351
|
-
yield*
|
|
363
|
+
yield* opfs.syncRead(accessHandle, fileDigest, { at: HEADER_OFFSET_DIGEST });
|
|
352
364
|
// Verify the digest.
|
|
353
365
|
const computedDigest = this.#computeDigest(corpus);
|
|
354
366
|
if (fileDigest.every((value, i) => value === computedDigest[i]) === true) {
|
|
@@ -359,7 +371,7 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
359
371
|
// truncated in #setAssociatedPath after the header is written. If
|
|
360
372
|
// an interruption occurs right before the truncation then garbage
|
|
361
373
|
// may remain in the file.
|
|
362
|
-
yield*
|
|
374
|
+
yield* opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
|
|
363
375
|
}
|
|
364
376
|
return new TextDecoder().decode(corpus.subarray(0, pathBytes));
|
|
365
377
|
}
|
|
@@ -373,21 +385,22 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
373
385
|
/**
|
|
374
386
|
* Set the path on an OPFS file header.
|
|
375
387
|
*/
|
|
376
|
-
#setAssociatedPath = Effect.fn((accessHandle, path, flags) => Effect.gen(this, function* () {
|
|
388
|
+
#setAssociatedPath = Effect.fn((accessHandle, path, flags) => Effect.gen({ self: this }, function* () {
|
|
377
389
|
// Convert the path string to UTF-8.
|
|
378
390
|
const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
|
|
379
391
|
const encodedResult = new TextEncoder().encodeInto(path, corpus);
|
|
380
392
|
if (encodedResult.written >= HEADER_MAX_PATH_SIZE) {
|
|
381
|
-
return yield* Effect.
|
|
393
|
+
return yield* Effect.die(new Error('path too long'));
|
|
382
394
|
}
|
|
383
395
|
// Add the creation flags.
|
|
384
396
|
const dataView = new DataView(corpus.buffer, corpus.byteOffset);
|
|
385
397
|
dataView.setUint32(HEADER_OFFSET_FLAGS, flags);
|
|
386
398
|
// Write the OPFS file header, including the digest.
|
|
387
399
|
const digest = this.#computeDigest(corpus);
|
|
388
|
-
yield* Opfs.Opfs
|
|
389
|
-
yield*
|
|
390
|
-
yield*
|
|
400
|
+
const opfs = yield* Opfs.Opfs;
|
|
401
|
+
yield* opfs.syncWrite(accessHandle, corpus, { at: 0 });
|
|
402
|
+
yield* opfs.syncWrite(accessHandle, digest, { at: HEADER_OFFSET_DIGEST });
|
|
403
|
+
yield* opfs.syncFlush(accessHandle);
|
|
391
404
|
if (path !== '') {
|
|
392
405
|
this.#mapPathToAccessHandle.set(path, accessHandle);
|
|
393
406
|
this.#availableAccessHandles.delete(accessHandle);
|
|
@@ -395,7 +408,7 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
395
408
|
else {
|
|
396
409
|
// This OPFS file doesn't represent any SQLite file so it doesn't
|
|
397
410
|
// need to keep any data.
|
|
398
|
-
yield*
|
|
411
|
+
yield* opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
|
|
399
412
|
this.#availableAccessHandles.add(accessHandle);
|
|
400
413
|
}
|
|
401
414
|
}));
|
|
@@ -430,7 +443,7 @@ export class AccessHandlePoolVFS extends FacadeVFS {
|
|
|
430
443
|
* Remove the association between a path and an OPFS file.
|
|
431
444
|
* @param {string} path
|
|
432
445
|
*/
|
|
433
|
-
#deletePath = Effect.fn((path) => Effect.gen(this, function* () {
|
|
446
|
+
#deletePath = Effect.fn((path) => Effect.gen({ self: this }, function* () {
|
|
434
447
|
const accessHandle = this.#mapPathToAccessHandle.get(path);
|
|
435
448
|
if (accessHandle !== undefined) {
|
|
436
449
|
// Un-associate the SQLite path from the OPFS file.
|