@tursodatabase/database-wasm-common 0.5.0-pre.2 → 0.5.0-pre.20
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 +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -3
- package/package.json +1 -1
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
|
-
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|