@tursodatabase/database-wasm-common 0.5.0-pre.6 → 0.5.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/index.d.ts CHANGED
@@ -30,11 +30,17 @@ declare class OpfsDirectory {
30
30
  truncate(handle: number, size: number): number;
31
31
  size(handle: number): number;
32
32
  }
33
- declare function waitForWorkerResponse(worker: Worker, id: number): Promise<any>;
33
+ declare function waitForWorkerResponse(worker: Worker, id: number, timeoutMs?: number): Promise<any>;
34
34
  declare function registerFileAtWorker(worker: Worker, path: string): Promise<void>;
35
35
  declare function unregisterFileAtWorker(worker: Worker, path: string): Promise<void>;
36
36
  declare function isWebWorker(): boolean;
37
37
  declare function setupWebWorker(): void;
38
38
  declare function setupMainThread(wasmFile: ArrayBuffer, factory: () => Worker): Promise<any>;
39
- export { OpfsDirectory, workerImports, mainImports as MainDummyImports, waitForWorkerResponse, registerFileAtWorker, unregisterFileAtWorker, isWebWorker, setupWebWorker, setupMainThread };
39
+ declare class IONotifier {
40
+ private waiters;
41
+ waitForCompletion(): Promise<void>;
42
+ notify(): void;
43
+ }
44
+ declare const ioNotifier: IONotifier;
45
+ export { OpfsDirectory, workerImports, mainImports as MainDummyImports, waitForWorkerResponse, registerFileAtWorker, unregisterFileAtWorker, isWebWorker, setupWebWorker, setupMainThread, ioNotifier };
40
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAsBA,UAAU,cAAc;IACpB,aAAa,IAAI,OAAO,CAAC;IACzB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACvE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,OAAE;IAChF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,OAAE;IACjF,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,OAAE;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,OAAE;IACvD,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAUD,iBAAS,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,cAAc,CA4D3F;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,cAAc,CA8DtF;AAED,cAAM,aAAa;IACf,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,0BAA0B,CAAA;KAAE,CAAC,CAAC;IAC9E,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACtD,YAAY,EAAE,MAAM,CAAC;;IAQf,YAAY,CAAC,IAAI,EAAE,MAAM;IAYzB,cAAc,CAAC,IAAI,EAAE,MAAM;IASjC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAY7C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAUhE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAUjE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAU5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAUrC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAU/B;AAGD,iBAAS,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAoBvE;AAkCD,iBAAS,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzE;AAED,iBAAS,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3E;AAED,iBAAS,WAAW,IAAI,OAAO,CAE9B;AAED,iBAAS,cAAc,SAiEtB;AAED,iBAAe,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAyCzF;AAED,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,IAAI,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -246,10 +246,13 @@ class OpfsDirectory {
246
246
  }
247
247
  }
248
248
  let workerRequestId = 0;
249
- function waitForWorkerResponse(worker, id) {
249
+ function waitForWorkerResponse(worker, id, timeoutMs = 30_000) {
250
250
  let waitResolve, waitReject;
251
+ let settled = false;
251
252
  const callback = msg => {
252
253
  if (msg.data.__turso__ && msg.data.id == id) {
254
+ settled = true;
255
+ clearTimeout(stallTimer);
253
256
  if (msg.data.error != null) {
254
257
  waitReject(msg.data.error);
255
258
  }
@@ -260,6 +263,13 @@ function waitForWorkerResponse(worker, id) {
260
263
  }
261
264
  };
262
265
  const cleanup = () => worker.removeEventListener("message", callback);
266
+ const stallTimer = setTimeout(() => {
267
+ if (!settled) {
268
+ settled = true;
269
+ cleanup();
270
+ waitReject(new Error(`[turso:worker] request id=${id} timed out after ${timeoutMs}ms`));
271
+ }
272
+ }, timeoutMs);
263
273
  worker.addEventListener("message", callback);
264
274
  const result = new Promise((resolve, reject) => {
265
275
  waitResolve = resolve;
@@ -418,7 +428,27 @@ async function setupMainThread(wasmFile, factory) {
418
428
  }
419
429
  },
420
430
  });
421
- completeOpfs = __napiModule.exports.completeOpfs;
431
+ const nativeCompleteOpfs = __napiModule.exports.completeOpfs;
432
+ completeOpfs = (c, res) => {
433
+ nativeCompleteOpfs(c, res);
434
+ ioNotifier.notify();
435
+ };
422
436
  return __napiModule;
423
437
  }
424
- export { OpfsDirectory, workerImports, mainImports as MainDummyImports, waitForWorkerResponse, registerFileAtWorker, unregisterFileAtWorker, isWebWorker, setupWebWorker, setupMainThread };
438
+ class IONotifier {
439
+ waiters = [];
440
+ waitForCompletion() {
441
+ return new Promise(resolve => {
442
+ this.waiters.push(resolve);
443
+ });
444
+ }
445
+ notify() {
446
+ const waiters = this.waiters;
447
+ this.waiters = [];
448
+ for (const resolve of waiters) {
449
+ resolve();
450
+ }
451
+ }
452
+ }
453
+ const ioNotifier = new IONotifier();
454
+ export { OpfsDirectory, workerImports, mainImports as MainDummyImports, waitForWorkerResponse, registerFileAtWorker, unregisterFileAtWorker, isWebWorker, setupWebWorker, setupMainThread, ioNotifier };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tursodatabase/database-wasm-common",
3
- "version": "0.5.0-pre.6",
3
+ "version": "0.5.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/tursodatabase/turso"