node-cqrs 1.2.0-alpha.2 → 1.2.0-alpha.3
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/CHANGELOG.md +27 -39
- package/README.md +11 -0
- package/dist/cjs/shared/worker-utils/createWorker.js +85 -0
- package/dist/cjs/shared/worker-utils/createWorker.js.map +1 -0
- package/dist/cjs/shared/worker-utils/index.js +19 -0
- package/dist/cjs/shared/worker-utils/index.js.map +1 -0
- package/dist/cjs/shared/worker-utils/nodeEndpoint.js.map +1 -0
- package/dist/cjs/sqlite-workers/SqliteWorkerProxy.js +8 -2
- package/dist/cjs/sqlite-workers/SqliteWorkerProxy.js.map +1 -1
- package/dist/cjs/sqlite-workers/SqliteWorkerRunner.js +2 -1
- package/dist/cjs/sqlite-workers/SqliteWorkerRunner.js.map +1 -1
- package/dist/cjs/sqlite-workers/protocol.js +0 -7
- package/dist/cjs/sqlite-workers/protocol.js.map +1 -1
- package/dist/cjs/sqlite-workers/utils/index.js +0 -2
- package/dist/cjs/sqlite-workers/utils/index.js.map +1 -1
- package/dist/cjs/workers/WorkerProxyProjection.js +4 -4
- package/dist/cjs/workers/WorkerProxyProjection.js.map +1 -1
- package/dist/cjs/workers/utils/createWorker.js +8 -77
- package/dist/cjs/workers/utils/createWorker.js.map +1 -1
- package/dist/cjs/workers/utils/createWorkerInstance.js +1 -1
- package/dist/cjs/workers/utils/createWorkerInstance.js.map +1 -1
- package/dist/cjs/workers/utils/index.js +0 -2
- package/dist/cjs/workers/utils/index.js.map +1 -1
- package/dist/esm/shared/worker-utils/createWorker.js +49 -0
- package/dist/esm/shared/worker-utils/createWorker.js.map +1 -0
- package/dist/esm/shared/worker-utils/index.js +3 -0
- package/dist/esm/shared/worker-utils/index.js.map +1 -0
- package/dist/esm/shared/worker-utils/nodeEndpoint.js.map +1 -0
- package/dist/esm/sqlite-workers/SqliteWorkerProxy.js +8 -2
- package/dist/esm/sqlite-workers/SqliteWorkerProxy.js.map +1 -1
- package/dist/esm/sqlite-workers/SqliteWorkerRunner.js +2 -1
- package/dist/esm/sqlite-workers/SqliteWorkerRunner.js.map +1 -1
- package/dist/esm/sqlite-workers/protocol.js +0 -6
- package/dist/esm/sqlite-workers/protocol.js.map +1 -1
- package/dist/esm/sqlite-workers/utils/index.js +0 -2
- package/dist/esm/sqlite-workers/utils/index.js.map +1 -1
- package/dist/esm/workers/WorkerProxyProjection.js +4 -4
- package/dist/esm/workers/WorkerProxyProjection.js.map +1 -1
- package/dist/esm/workers/utils/createWorker.js +8 -44
- package/dist/esm/workers/utils/createWorker.js.map +1 -1
- package/dist/esm/workers/utils/createWorkerInstance.js +1 -1
- package/dist/esm/workers/utils/createWorkerInstance.js.map +1 -1
- package/dist/esm/workers/utils/index.js +0 -2
- package/dist/esm/workers/utils/index.js.map +1 -1
- package/dist/types/shared/worker-utils/createWorker.d.ts +14 -0
- package/dist/types/shared/worker-utils/index.d.ts +2 -0
- package/dist/types/{sqlite-workers/utils → shared/worker-utils}/nodeEndpoint.d.ts +1 -1
- package/dist/types/sqlite-workers/protocol.d.ts +0 -1
- package/dist/types/sqlite-workers/utils/index.d.ts +0 -2
- package/dist/types/workers/utils/createWorker.d.ts +6 -6
- package/dist/types/workers/utils/index.d.ts +0 -2
- package/package.json +1 -1
- package/dist/cjs/sqlite-workers/utils/createSqliteWorker.js +0 -39
- package/dist/cjs/sqlite-workers/utils/createSqliteWorker.js.map +0 -1
- package/dist/cjs/sqlite-workers/utils/nodeEndpoint.js.map +0 -1
- package/dist/cjs/workers/utils/nodeEndpoint.js +0 -8
- package/dist/cjs/workers/utils/nodeEndpoint.js.map +0 -1
- package/dist/esm/sqlite-workers/utils/createSqliteWorker.js +0 -36
- package/dist/esm/sqlite-workers/utils/createSqliteWorker.js.map +0 -1
- package/dist/esm/sqlite-workers/utils/nodeEndpoint.js.map +0 -1
- package/dist/esm/workers/utils/nodeEndpoint.js +0 -5
- package/dist/esm/workers/utils/nodeEndpoint.js.map +0 -1
- package/dist/types/sqlite-workers/utils/createSqliteWorker.d.ts +0 -3
- package/dist/types/workers/utils/nodeEndpoint.d.ts +0 -2
- /package/dist/cjs/{sqlite-workers/utils → shared/worker-utils}/nodeEndpoint.js +0 -0
- /package/dist/esm/{sqlite-workers/utils → shared/worker-utils}/nodeEndpoint.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
# [1.2.0-alpha.
|
|
1
|
+
# [1.2.0-alpha.3](https://github.com/snatalenko/node-cqrs/compare/v1.1.0...v1.2.0-alpha.3) (2026-05-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Internal Fixes
|
|
5
|
+
|
|
6
|
+
* Move duplicate worker utils into src/shared/worker-utils/ ([8b3c383](https://github.com/snatalenko/node-cqrs/commit/8b3c383be41edd40fcedfbb663104e4f5d530bcc))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# [1.2.0-alpha.2](https://github.com/snatalenko/node-cqrs/compare/v1.2.0-alpha.1...v1.2.0-alpha.2) (2026-05-04)
|
|
2
10
|
|
|
3
11
|
|
|
4
12
|
|
|
@@ -10,7 +18,7 @@
|
|
|
10
18
|
* Allow SQLite worker connections to be created with a custom factory ([fb39cf1](https://github.com/snatalenko/node-cqrs/commit/fb39cf1e3be51c279de6571262c360bf057dea28))
|
|
11
19
|
|
|
12
20
|
|
|
13
|
-
# [1.2.0-alpha.0](https://github.com/snatalenko/node-cqrs/compare/v1.
|
|
21
|
+
# [1.2.0-alpha.0](https://github.com/snatalenko/node-cqrs/compare/v1.0.2...v1.2.0-alpha.0) (2026-04-27)
|
|
14
22
|
|
|
15
23
|
|
|
16
24
|
### Features
|
|
@@ -18,15 +26,15 @@
|
|
|
18
26
|
* Add sqlite-workers submodule for async SQLite reads ([1987a40](https://github.com/snatalenko/node-cqrs/commit/1987a403fdfd38a57cf4b2c82bc79e88568bc32e))
|
|
19
27
|
|
|
20
28
|
|
|
21
|
-
# [1.1.0
|
|
29
|
+
# [1.1.0](https://github.com/snatalenko/node-cqrs/compare/v1.2.0-alpha.2...v1.1.0) (2026-05-26)
|
|
22
30
|
|
|
23
31
|
|
|
24
|
-
###
|
|
32
|
+
### Documentation
|
|
25
33
|
|
|
26
|
-
*
|
|
34
|
+
* Fix homepage styles cdn ([6ab1ff2](https://github.com/snatalenko/node-cqrs/commit/6ab1ff28246b4496a7fc0b2911c01c8960f9959e))
|
|
27
35
|
|
|
28
36
|
|
|
29
|
-
# [1.
|
|
37
|
+
# [1.2.0-alpha.2](https://github.com/snatalenko/node-cqrs/compare/v1.2.0-alpha.1...v1.2.0-alpha.2) (2026-05-04)
|
|
30
38
|
|
|
31
39
|
|
|
32
40
|
### Changes
|
|
@@ -37,48 +45,20 @@
|
|
|
37
45
|
|
|
38
46
|
* Add index.html for publishing with gh pages ([cac88ed](https://github.com/snatalenko/node-cqrs/commit/cac88edaaef1c9457af48fd7477daf8ae624eb43))
|
|
39
47
|
|
|
40
|
-
|
|
41
|
-
# [1.2.0-alpha.1](https://github.com/snatalenko/node-cqrs/compare/v1.2.0-alpha.0...v1.2.0-alpha.1) (2026-04-28)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
### Features
|
|
45
|
-
|
|
46
|
-
* Allow SQLite worker connections to be created with a custom factory ([fb39cf1](https://github.com/snatalenko/node-cqrs/commit/fb39cf1e3be51c279de6571262c360bf057dea28))
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
# [1.2.0-alpha.0](https://github.com/snatalenko/node-cqrs/compare/v1.1.0-beta.2...v1.2.0-alpha.0) (2026-04-27)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
### Features
|
|
53
|
-
|
|
54
|
-
* Add sqlite-workers submodule for async SQLite reads ([1987a40](https://github.com/snatalenko/node-cqrs/commit/1987a403fdfd38a57cf4b2c82bc79e88568bc32e))
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
# [1.1.0-beta.2](https://github.com/snatalenko/node-cqrs/compare/v1.1.0-beta.1...v1.1.0-beta.2) (2026-04-25)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
### Changes
|
|
61
|
-
|
|
62
|
-
* Allow extra command parameters to be passed to AbstractAggregate handler as 3rd argument ([ae11b7e](https://github.com/snatalenko/node-cqrs/commit/ae11b7eb709e658fbc910aadb1376bc8a3fade1b))
|
|
63
|
-
|
|
64
|
-
### Build System
|
|
65
|
-
|
|
66
|
-
* Add "rebuild" npm script ([2e5e977](https://github.com/snatalenko/node-cqrs/commit/2e5e9771f760d15cc1cbbc2f68bc680cd6b97de3))
|
|
67
|
-
|
|
68
48
|
### Internal Fixes
|
|
69
49
|
|
|
70
|
-
*
|
|
50
|
+
* Allow disposing worker projection proxy more than once ([768f73a](https://github.com/snatalenko/node-cqrs/commit/768f73a28a8a1a572449122f5046c102435dd5bd))
|
|
71
51
|
|
|
72
52
|
|
|
73
|
-
# [1.
|
|
53
|
+
# [1.2.0-alpha.1](https://github.com/snatalenko/node-cqrs/compare/v1.2.0-alpha.0...v1.2.0-alpha.1) (2026-04-28)
|
|
74
54
|
|
|
75
55
|
|
|
76
|
-
###
|
|
56
|
+
### Features
|
|
77
57
|
|
|
78
|
-
*
|
|
58
|
+
* Allow SQLite worker connections to be created with a custom factory ([fb39cf1](https://github.com/snatalenko/node-cqrs/commit/fb39cf1e3be51c279de6571262c360bf057dea28))
|
|
79
59
|
|
|
80
60
|
|
|
81
|
-
# [1.
|
|
61
|
+
# [1.2.0-alpha.0](https://github.com/snatalenko/node-cqrs/compare/v1.0.2...v1.2.0-alpha.0) (2026-04-27)
|
|
82
62
|
|
|
83
63
|
|
|
84
64
|
### Features
|
|
@@ -90,6 +70,7 @@
|
|
|
90
70
|
* MongoDB-backed event storage ([53fb5e1](https://github.com/snatalenko/node-cqrs/commit/53fb5e1c0d7a027f9afebf88f8d3d516d06c3c48))
|
|
91
71
|
* MongoDb-backed view model (`MongoObjectView`, `AbstractMongoObjectProjection`) ([4995bfe](https://github.com/snatalenko/node-cqrs/commit/4995bfe2daf53372d3e7e36d59ee103219ad6a35))
|
|
92
72
|
* Option for rabbitmq queue-level message TTL ([d4461e6](https://github.com/snatalenko/node-cqrs/commit/d4461e68b0e69696340bfdb80c7f947146bca08b))
|
|
73
|
+
* Add sqlite-workers submodule for async SQLite reads ([1987a40](https://github.com/snatalenko/node-cqrs/commit/1987a403fdfd38a57cf4b2c82bc79e88568bc32e))
|
|
93
74
|
|
|
94
75
|
### Changes
|
|
95
76
|
|
|
@@ -98,6 +79,7 @@
|
|
|
98
79
|
* Use `Identifier` as id type in redis and sqlite views ([dfbe964](https://github.com/snatalenko/node-cqrs/commit/dfbe9648a8ea8e7e5550aa40e0094ca8af1758ef))
|
|
99
80
|
* Add default queueName for RabbitMqCommandBus ([ee4b5a1](https://github.com/snatalenko/node-cqrs/commit/ee4b5a170e44db6227e76d2ffb1695b6dfaef6e4))
|
|
100
81
|
* Add error handling and drain functionality to event publishing process ([d23ea62](https://github.com/snatalenko/node-cqrs/commit/d23ea621c8a71e2cda4baaf091166534c4f5af2e))
|
|
82
|
+
* Allow extra command parameters to be passed to AbstractAggregate handler as 3rd argument ([ae11b7e](https://github.com/snatalenko/node-cqrs/commit/ae11b7eb709e658fbc910aadb1376bc8a3fade1b))
|
|
101
83
|
|
|
102
84
|
### Fixes
|
|
103
85
|
|
|
@@ -111,11 +93,17 @@
|
|
|
111
93
|
* Detailed sqlite and rabbitmq instructions ([dd242fd](https://github.com/snatalenko/node-cqrs/commit/dd242fd73018bcfa0583ab1ddd12518c4f3a4777))
|
|
112
94
|
* Minor spec update ([6a2883a](https://github.com/snatalenko/node-cqrs/commit/6a2883adc7b6a7a48bb5f62562c2242826860e89))
|
|
113
95
|
|
|
96
|
+
### Build System
|
|
97
|
+
|
|
98
|
+
* Add "rebuild" npm script ([2e5e977](https://github.com/snatalenko/node-cqrs/commit/2e5e9771f760d15cc1cbbc2f68bc680cd6b97de3))
|
|
99
|
+
|
|
114
100
|
### Internal Fixes
|
|
115
101
|
|
|
116
102
|
* Rename telemetry metadata span field to `otelSpan`, enhance typings ([2ca2494](https://github.com/snatalenko/node-cqrs/commit/2ca2494625ea8dde11f86fdf078d85c1d848d10a))
|
|
117
103
|
* Compiled AbstractWorkerProjection type compatibility ([bf8ca08](https://github.com/snatalenko/node-cqrs/commit/bf8ca08a09faacb4cbf0da141dd4f09d4647e86e))
|
|
118
104
|
* Enhance message payload typing ([7911acc](https://github.com/snatalenko/node-cqrs/commit/7911accce07cba7c30ae4f5825a6e26e0934b8dc))
|
|
105
|
+
* Expose `viewLocker` on WorkerProxyProjection ([628fbe3](https://github.com/snatalenko/node-cqrs/commit/628fbe3c7af141443092cdf1fb6c0824c19a6324))
|
|
106
|
+
* Make `getHandler` to throw error if handler is not defined ([ecbd73e](https://github.com/snatalenko/node-cqrs/commit/ecbd73e0604c74eb85a946b15a4b872b688da01e))
|
|
119
107
|
|
|
120
108
|
|
|
121
109
|
## [1.0.2](https://github.com/snatalenko/node-cqrs/compare/v1.0.1...v1.0.2) (2026-04-03)
|
package/README.md
CHANGED
|
@@ -415,6 +415,17 @@ interface ISaga {
|
|
|
415
415
|
Swap implementations by registering different classes in the DI container.
|
|
416
416
|
All modules below implement the same interfaces - pick what fits your deployment.
|
|
417
417
|
|
|
418
|
+
### Capability Matrix
|
|
419
|
+
|
|
420
|
+
| Module | Event storage | Object view storage | Projection wiring / execution | Message buses |
|
|
421
|
+
| ------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------- |
|
|
422
|
+
| `node-cqrs` | `InMemoryEventStorage`, `InMemorySnapshotStorage` | `InMemoryView`, `InMemoryLock` | `AbstractProjection` | `InMemoryMessageBus` |
|
|
423
|
+
| `node-cqrs/sqlite` | `SqliteEventStorage` | `SqliteObjectView`, `SqliteObjectStorage`, `SqliteViewLocker`, `SqliteEventLocker` | `AbstractSqliteObjectProjection`, `AbstractSqliteView` | - |
|
|
424
|
+
| `node-cqrs/mongodb` | `MongoEventStorage` | `MongoObjectView`, `MongoObjectStorage`, `MongoViewLocker`, `MongoEventLocker` | `AbstractMongoObjectProjection`, `AbstractMongoView` | - |
|
|
425
|
+
| `node-cqrs/redis` | - | `RedisView`, `RedisObjectStorage`, `RedisViewLocker`, `RedisEventLocker` | `AbstractRedisProjection` | - |
|
|
426
|
+
| `node-cqrs/rabbitmq` | - | - | - | `RabbitMqGateway`, `RabbitMqCommandBus`, `RabbitMqEventBus` |
|
|
427
|
+
| `node-cqrs/workers` | - | - | `AbstractWorkerProjection`, `WorkerProxyProjection` | - |
|
|
428
|
+
|
|
418
429
|
### Event Storage
|
|
419
430
|
|
|
420
431
|
Where aggregate events are persisted and replayed from.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.createWorker = createWorker;
|
|
37
|
+
const node_worker_threads_1 = require("node:worker_threads");
|
|
38
|
+
const path = __importStar(require("node:path"));
|
|
39
|
+
/**
|
|
40
|
+
* Create a worker instance and await a first message (or a specific ready message) or a failure.
|
|
41
|
+
*
|
|
42
|
+
* @param workerEntrypoint - Absolute path or URL to the worker module
|
|
43
|
+
* @param workerData - Structured-cloneable data passed to the worker via workerData
|
|
44
|
+
* @param options.transferList - Transferable objects to move (not copy) into the worker
|
|
45
|
+
* @param options.isReadyMessage - Predicate to identify the ready message; if omitted, any first message resolves
|
|
46
|
+
* @returns Resolved Worker instance after the ready handshake
|
|
47
|
+
*/
|
|
48
|
+
async function createWorker(workerEntrypoint, workerData, options) {
|
|
49
|
+
const resolvedEntrypoint = workerEntrypoint instanceof URL ?
|
|
50
|
+
workerEntrypoint :
|
|
51
|
+
path.resolve(workerEntrypoint);
|
|
52
|
+
const worker = new node_worker_threads_1.Worker(resolvedEntrypoint, {
|
|
53
|
+
workerData,
|
|
54
|
+
transferList: options?.transferList
|
|
55
|
+
});
|
|
56
|
+
await new Promise((resolve, reject) => {
|
|
57
|
+
const cleanup = () => {
|
|
58
|
+
// eslint-disable-next-line no-use-before-define
|
|
59
|
+
worker.off('error', onError);
|
|
60
|
+
// eslint-disable-next-line no-use-before-define
|
|
61
|
+
worker.off('message', onMessage);
|
|
62
|
+
// eslint-disable-next-line no-use-before-define
|
|
63
|
+
worker.off('exit', onExit);
|
|
64
|
+
};
|
|
65
|
+
const onMessage = (msg) => {
|
|
66
|
+
if (options?.isReadyMessage && !options.isReadyMessage(msg))
|
|
67
|
+
return;
|
|
68
|
+
cleanup();
|
|
69
|
+
resolve();
|
|
70
|
+
};
|
|
71
|
+
const onError = (err) => {
|
|
72
|
+
cleanup();
|
|
73
|
+
reject(err);
|
|
74
|
+
};
|
|
75
|
+
const onExit = (exitCode) => {
|
|
76
|
+
cleanup();
|
|
77
|
+
reject(new Error(`Worker exited prematurely with exit code ${exitCode}`));
|
|
78
|
+
};
|
|
79
|
+
worker.on('message', onMessage);
|
|
80
|
+
worker.once('error', onError);
|
|
81
|
+
worker.once('exit', onExit);
|
|
82
|
+
});
|
|
83
|
+
return worker;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=createWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createWorker.js","sourceRoot":"","sources":["../../../../src/shared/worker-utils/createWorker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,oCAqDC;AAjED,6DAAgE;AAChE,gDAAkC;AAElC;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CACjC,gBAA8B,EAC9B,UAAmB,EACnB,OAGC;IAGD,MAAM,kBAAkB,GAAG,gBAAgB,YAAY,GAAG,CAAC,CAAC;QAC3D,gBAAgB,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,IAAI,4BAAM,CAAC,kBAAkB,EAAE;QAC7C,UAAU;QACV,YAAY,EAAE,OAAO,EAAE,YAAY;KACnC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAE3C,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,gDAAgD;YAChD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,gDAAgD;YAChD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,gDAAgD;YAChD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE,EAAE;YAClC,IAAI,OAAO,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC;gBAC1D,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAChC,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YACnC,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./createWorker.js"), exports);
|
|
18
|
+
__exportStar(require("./nodeEndpoint.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/worker-utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/shared/worker-utils/nodeEndpoint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA4C;AAC5C,gDAAkC;AAKlC,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,eAAe,GAAG,IAAA,2BAAa,EAAC,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACxG,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjC,UAAU,CAAC,CAAC;AACb,MAAM,kBAAkB,GAAG,eAAe,CAAC,+BAA+B,CAAC,CAAC;AAC/D,QAAA,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
@@ -35,7 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.SqliteWorkerProxy = void 0;
|
|
37
37
|
const Comlink = __importStar(require("comlink"));
|
|
38
|
-
const index_ts_1 = require("
|
|
38
|
+
const index_ts_1 = require("../shared/worker-utils/index.js");
|
|
39
|
+
const SqliteWorkerRunner_ts_1 = require("./SqliteWorkerRunner.js");
|
|
39
40
|
const AsyncSqliteStatement_ts_1 = require("./AsyncSqliteStatement.js");
|
|
40
41
|
class SqliteWorkerProxy {
|
|
41
42
|
#config;
|
|
@@ -75,7 +76,12 @@ class SqliteWorkerProxy {
|
|
|
75
76
|
async assertWorker() {
|
|
76
77
|
if (this.#worker)
|
|
77
78
|
return this.#worker;
|
|
78
|
-
this.#workerPromise ??= (
|
|
79
|
+
this.#workerPromise ??= (() => {
|
|
80
|
+
const { sqliteWorkerRunnerLocation = SqliteWorkerRunner_ts_1.SqliteWorkerRunner.location, ...workerData } = this.#config;
|
|
81
|
+
return (0, index_ts_1.createWorker)(sqliteWorkerRunnerLocation, workerData, {
|
|
82
|
+
isReadyMessage: m => m?.type === 'ready'
|
|
83
|
+
});
|
|
84
|
+
})()
|
|
79
85
|
.then(worker => {
|
|
80
86
|
this.#worker = worker;
|
|
81
87
|
worker.once('error', this.handleWorkerError);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteWorkerProxy.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerProxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAmC;AAOnC
|
|
1
|
+
{"version":3,"file":"SqliteWorkerProxy.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ const path = __importStar(require("node:path"));
|
|
|
39
39
|
const Comlink = __importStar(require("comlink"));
|
|
40
40
|
const protocol_ts_1 = require("./protocol.js");
|
|
41
41
|
const index_ts_1 = require("./utils/index.js");
|
|
42
|
+
const index_ts_2 = require("../shared/worker-utils/index.js");
|
|
42
43
|
function all(statement, params) {
|
|
43
44
|
return params === undefined ? statement.all() : statement.all(params);
|
|
44
45
|
}
|
|
@@ -109,7 +110,7 @@ if (node_worker_threads_1.parentPort) {
|
|
|
109
110
|
void SqliteWorkerRunner.create(node_worker_threads_1.workerData.dbConfig)
|
|
110
111
|
.then(runner => {
|
|
111
112
|
port.postMessage({ type: 'ready' });
|
|
112
|
-
Comlink.expose(runner, (0,
|
|
113
|
+
Comlink.expose(runner, (0, index_ts_2.nodeEndpoint)(port));
|
|
113
114
|
});
|
|
114
115
|
}
|
|
115
116
|
//# sourceMappingURL=SqliteWorkerRunner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteWorkerRunner.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerRunner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA6D;AAC7D,gDAAkC;AAClC,iDAAmC;AAEnC,+CAOuB;AACvB,+
|
|
1
|
+
{"version":3,"file":"SqliteWorkerRunner.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isSqliteWorkerData = isSqliteWorkerData;
|
|
4
|
-
exports.isSqliteWorkerReadyMessage = isSqliteWorkerReadyMessage;
|
|
5
4
|
const isObject = (obj) => typeof obj === 'object'
|
|
6
5
|
&& obj !== null
|
|
7
6
|
&& !Array.isArray(obj)
|
|
@@ -11,10 +10,4 @@ function isSqliteWorkerData(value) {
|
|
|
11
10
|
&& 'dbConfig' in value
|
|
12
11
|
&& isObject(value.dbConfig);
|
|
13
12
|
}
|
|
14
|
-
function isSqliteWorkerReadyMessage(value) {
|
|
15
|
-
return typeof value === 'object' &&
|
|
16
|
-
value !== null &&
|
|
17
|
-
'type' in value &&
|
|
18
|
-
value.type === 'ready';
|
|
19
|
-
}
|
|
20
13
|
//# sourceMappingURL=protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sqlite-workers/protocol.ts"],"names":[],"mappings":";;AAiEA,gDAIC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sqlite-workers/protocol.ts"],"names":[],"mappings":";;AAiEA,gDAIC;AAVD,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAa,EAAE,CAC5C,OAAO,GAAG,KAAK,QAAQ;OACpB,GAAG,KAAK,IAAI;OACZ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;OACnB,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;AAE3B,SAAgB,kBAAkB,CAAC,KAAc;IAChD,OAAO,QAAQ,CAAC,KAAK,CAAC;WAClB,UAAU,IAAI,KAAK;WACnB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -14,8 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./createSqliteWorker.js"), exports);
|
|
18
17
|
__exportStar(require("./createWorkerDb.js"), exports);
|
|
19
|
-
__exportStar(require("./nodeEndpoint.js"), exports);
|
|
20
18
|
__exportStar(require("./resolveCurrentFileLocationFromStack.js"), exports);
|
|
21
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,2EAAyD"}
|
|
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.WorkerProxyProjection = void 0;
|
|
37
37
|
const node_worker_threads_1 = require("node:worker_threads");
|
|
38
38
|
const Comlink = __importStar(require("comlink"));
|
|
39
|
-
const index_ts_1 = require("
|
|
39
|
+
const index_ts_1 = require("../shared/worker-utils/index.js");
|
|
40
40
|
const index_ts_2 = require("../utils/index.js");
|
|
41
41
|
const Event_ts_1 = require("../Event.js");
|
|
42
42
|
const InMemoryLock_ts_1 = require("../in-memory/InMemoryLock.js");
|
|
@@ -67,9 +67,9 @@ class WorkerProxyProjection {
|
|
|
67
67
|
this.#logger = logger && 'child' in logger ? logger.child({ service: new.target.name }) : logger;
|
|
68
68
|
const { port1: projectionPortMain, port2: projectionPort } = new node_worker_threads_1.MessageChannel();
|
|
69
69
|
const { port1: viewPortMain, port2: viewPort } = new node_worker_threads_1.MessageChannel();
|
|
70
|
-
this.#workerInit = (0, index_ts_1.createWorker)(workerModulePath, {
|
|
71
|
-
projectionPort,
|
|
72
|
-
|
|
70
|
+
this.#workerInit = (0, index_ts_1.createWorker)(workerModulePath, { projectionPort, viewPort }, {
|
|
71
|
+
transferList: [projectionPort, viewPort],
|
|
72
|
+
isReadyMessage: m => m?.type === 'ready'
|
|
73
73
|
}).then(worker => {
|
|
74
74
|
this.#worker = worker;
|
|
75
75
|
worker.once('error', this._onWorkerError);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA6D;AAW7D,iDAAmC;AACnC
|
|
1
|
+
{"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,87 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.createWorker = createWorker;
|
|
37
|
-
const
|
|
38
|
-
const path = __importStar(require("node:path"));
|
|
39
|
-
const protocol_ts_1 = require("../protocol.js");
|
|
4
|
+
const index_ts_1 = require("../../shared/worker-utils/index.js");
|
|
40
5
|
/**
|
|
41
|
-
* Create a worker instance, await a handshake or a failure
|
|
6
|
+
* Create a worker instance for a projection worker module, await a handshake or a failure.
|
|
42
7
|
*
|
|
43
|
-
* @param workerModulePath -
|
|
44
|
-
* @param ports -
|
|
45
|
-
* @returns Worker instance
|
|
8
|
+
* @param workerModulePath - Absolute or relative path to the worker module
|
|
9
|
+
* @param ports - MessagePorts for projection and view communication (transferred into the worker)
|
|
10
|
+
* @returns Resolved Worker instance after the ready handshake
|
|
46
11
|
*/
|
|
47
12
|
async function createWorker(workerModulePath, ports) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const worker = new node_worker_threads_1.Worker(workerEntrypoint, {
|
|
52
|
-
workerData: ports,
|
|
53
|
-
transferList: [
|
|
54
|
-
ports.projectionPort,
|
|
55
|
-
ports.viewPort
|
|
56
|
-
]
|
|
13
|
+
return (0, index_ts_1.createWorker)(workerModulePath, ports, {
|
|
14
|
+
transferList: [ports.projectionPort, ports.viewPort],
|
|
15
|
+
isReadyMessage: m => m?.type === 'ready'
|
|
57
16
|
});
|
|
58
|
-
await new Promise((resolve, reject) => {
|
|
59
|
-
const cleanup = () => {
|
|
60
|
-
// eslint-disable-next-line no-use-before-define
|
|
61
|
-
worker.off('error', onError);
|
|
62
|
-
// eslint-disable-next-line no-use-before-define
|
|
63
|
-
worker.off('message', onMessage);
|
|
64
|
-
// eslint-disable-next-line no-use-before-define
|
|
65
|
-
worker.off('exit', onExit);
|
|
66
|
-
};
|
|
67
|
-
const onMessage = (msg) => {
|
|
68
|
-
if (!(0, protocol_ts_1.isWorkerInitMessage)(msg))
|
|
69
|
-
return;
|
|
70
|
-
cleanup();
|
|
71
|
-
resolve(undefined);
|
|
72
|
-
};
|
|
73
|
-
const onError = (err) => {
|
|
74
|
-
cleanup();
|
|
75
|
-
reject(err);
|
|
76
|
-
};
|
|
77
|
-
const onExit = (exitCode) => {
|
|
78
|
-
cleanup();
|
|
79
|
-
reject(new Error(`Worker exited prematurely with exit code ${exitCode}`));
|
|
80
|
-
};
|
|
81
|
-
worker.on('message', onMessage);
|
|
82
|
-
worker.once('error', onError);
|
|
83
|
-
worker.once('exit', onExit);
|
|
84
|
-
});
|
|
85
|
-
return worker;
|
|
86
17
|
}
|
|
87
18
|
//# sourceMappingURL=createWorker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWorker.js","sourceRoot":"","sources":["../../../../src/workers/utils/createWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createWorker.js","sourceRoot":"","sources":["../../../../src/workers/utils/createWorker.ts"],"names":[],"mappings":";;AAWA,oCAKC;AAfD,iEAAyF;AAGzF;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAAC,gBAAwB,EAAE,KAAkB;IAC9E,OAAO,IAAA,uBAAmB,EAAC,gBAAgB,EAAE,KAAK,EAAE;QACnD,YAAY,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC;QACpD,cAAc,EAAE,CAAC,CAAC,EAAE,CAAE,CAAS,EAAE,IAAI,KAAK,OAAO;KACjD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -38,7 +38,7 @@ const node_worker_threads_1 = require("node:worker_threads");
|
|
|
38
38
|
const Comlink = __importStar(require("comlink"));
|
|
39
39
|
const index_ts_1 = require("../../utils/index.js");
|
|
40
40
|
const protocol_ts_1 = require("../protocol.js");
|
|
41
|
-
const index_ts_2 = require("
|
|
41
|
+
const index_ts_2 = require("../../shared/worker-utils/index.js");
|
|
42
42
|
function createWorkerInstance(ProjectionFactoryOrType, projectionMethodsToWire) {
|
|
43
43
|
if (!node_worker_threads_1.parentPort)
|
|
44
44
|
throw new Error('createWorkerInstance can only be called from a Worker thread');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWorkerInstance.js","sourceRoot":"","sources":["../../../../src/workers/utils/createWorkerInstance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,oDA0BC;AAnDD,6DAA6D;AAC7D,iDAAmC;AAEnC,mDAAuF;AACvF,gDAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"createWorkerInstance.js","sourceRoot":"","sources":["../../../../src/workers/utils/createWorkerInstance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,oDA0BC;AAnDD,6DAA6D;AAC7D,iDAAmC;AAEnC,mDAAuF;AACvF,gDAAsE;AACtE,iEAAkE;AAoBlE,SAAgB,oBAAoB,CACnC,uBAAsE,EACtE,uBAAuE;IAEvE,IAAI,CAAC,gCAAU;QACd,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACjF,IAAI,CAAC,IAAA,0BAAY,EAAC,gCAAU,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAE5E,MAAM,UAAU,GAAG,IAAA,kBAAO,EAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC;IAChH,MAAM,aAAa,GAAG,uBAAuB,IAAI,IAAA,iCAAsB,EAAC,UAAU,CAAC,CAAC;IACpF,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CACvC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,IAAA,yBAAc,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEnC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,IAAA,uBAAY,EAAC,gCAAU,CAAC,cAAc,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAA,uBAAY,EAAC,gCAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnE,gCAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAA8B,CAAC,CAAC;IAEtE,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -14,8 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./createWorker.js"), exports);
|
|
18
17
|
__exportStar(require("./createWorkerInstance.js"), exports);
|
|
19
|
-
__exportStar(require("./nodeEndpoint.js"), exports);
|
|
20
18
|
__exportStar(require("./workerProxyFactory.js"), exports);
|
|
21
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/workers/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/workers/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,0DAAwC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Worker } from 'node:worker_threads';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Create a worker instance and await a first message (or a specific ready message) or a failure.
|
|
5
|
+
*
|
|
6
|
+
* @param workerEntrypoint - Absolute path or URL to the worker module
|
|
7
|
+
* @param workerData - Structured-cloneable data passed to the worker via workerData
|
|
8
|
+
* @param options.transferList - Transferable objects to move (not copy) into the worker
|
|
9
|
+
* @param options.isReadyMessage - Predicate to identify the ready message; if omitted, any first message resolves
|
|
10
|
+
* @returns Resolved Worker instance after the ready handshake
|
|
11
|
+
*/
|
|
12
|
+
export async function createWorker(workerEntrypoint, workerData, options) {
|
|
13
|
+
const resolvedEntrypoint = workerEntrypoint instanceof URL ?
|
|
14
|
+
workerEntrypoint :
|
|
15
|
+
path.resolve(workerEntrypoint);
|
|
16
|
+
const worker = new Worker(resolvedEntrypoint, {
|
|
17
|
+
workerData,
|
|
18
|
+
transferList: options?.transferList
|
|
19
|
+
});
|
|
20
|
+
await new Promise((resolve, reject) => {
|
|
21
|
+
const cleanup = () => {
|
|
22
|
+
// eslint-disable-next-line no-use-before-define
|
|
23
|
+
worker.off('error', onError);
|
|
24
|
+
// eslint-disable-next-line no-use-before-define
|
|
25
|
+
worker.off('message', onMessage);
|
|
26
|
+
// eslint-disable-next-line no-use-before-define
|
|
27
|
+
worker.off('exit', onExit);
|
|
28
|
+
};
|
|
29
|
+
const onMessage = (msg) => {
|
|
30
|
+
if (options?.isReadyMessage && !options.isReadyMessage(msg))
|
|
31
|
+
return;
|
|
32
|
+
cleanup();
|
|
33
|
+
resolve();
|
|
34
|
+
};
|
|
35
|
+
const onError = (err) => {
|
|
36
|
+
cleanup();
|
|
37
|
+
reject(err);
|
|
38
|
+
};
|
|
39
|
+
const onExit = (exitCode) => {
|
|
40
|
+
cleanup();
|
|
41
|
+
reject(new Error(`Worker exited prematurely with exit code ${exitCode}`));
|
|
42
|
+
};
|
|
43
|
+
worker.on('message', onMessage);
|
|
44
|
+
worker.once('error', onError);
|
|
45
|
+
worker.once('exit', onExit);
|
|
46
|
+
});
|
|
47
|
+
return worker;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=createWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createWorker.js","sourceRoot":"","sources":["../../../../src/shared/worker-utils/createWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,gBAA8B,EAC9B,UAAmB,EACnB,OAGC;IAGD,MAAM,kBAAkB,GAAG,gBAAgB,YAAY,GAAG,CAAC,CAAC;QAC3D,gBAAgB,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,kBAAkB,EAAE;QAC7C,UAAU;QACV,YAAY,EAAE,OAAO,EAAE,YAAY;KACnC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAE3C,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,gDAAgD;YAChD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,gDAAgD;YAChD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,gDAAgD;YAChD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE,EAAE;YAClC,IAAI,OAAO,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC;gBAC1D,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAChC,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YACnC,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/worker-utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/shared/worker-utils/nodeEndpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACxG,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjC,UAAU,CAAC,CAAC;AACb,MAAM,kBAAkB,GAAG,eAAe,CAAC,+BAA+B,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Comlink from 'comlink';
|
|
2
|
-
import {
|
|
2
|
+
import { nodeEndpoint, createWorker } from "../shared/worker-utils/index.js";
|
|
3
|
+
import { SqliteWorkerRunner } from "./SqliteWorkerRunner.js";
|
|
3
4
|
import { AsyncSqliteStatement } from "./AsyncSqliteStatement.js";
|
|
4
5
|
export class SqliteWorkerProxy {
|
|
5
6
|
#config;
|
|
@@ -39,7 +40,12 @@ export class SqliteWorkerProxy {
|
|
|
39
40
|
async assertWorker() {
|
|
40
41
|
if (this.#worker)
|
|
41
42
|
return this.#worker;
|
|
42
|
-
this.#workerPromise ??=
|
|
43
|
+
this.#workerPromise ??= (() => {
|
|
44
|
+
const { sqliteWorkerRunnerLocation = SqliteWorkerRunner.location, ...workerData } = this.#config;
|
|
45
|
+
return createWorker(sqliteWorkerRunnerLocation, workerData, {
|
|
46
|
+
isReadyMessage: m => m?.type === 'ready'
|
|
47
|
+
});
|
|
48
|
+
})()
|
|
43
49
|
.then(worker => {
|
|
44
50
|
this.#worker = worker;
|
|
45
51
|
worker.once('error', this.handleWorkerError);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteWorkerProxy.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerProxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAOnC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SqliteWorkerProxy.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerProxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAOnC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,OAAO,iBAAiB;IAEpB,OAAO,CAA0B;IAC1C,OAAO,CAAqB;IAC5B,cAAc,CAA8B;IAC5C,UAAU,CAA+C;IACzD,iBAAiB,CAAwD;IACzE,eAAe,CAA4B;IAE3C,YAAY,MAA+B;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAO,GAAW,EAAE,MAAgC;QAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAoB,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAO,GAAW,EAAE,MAAgC;QAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAA8B,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,MAAgC;QACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CACZ,GAAW;QAKX,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5C,OAAO,IAAI,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAEF,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,cAAc,EAAE;aAC5C,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAClC,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,YAAY;QACjB,IAAI,IAAI,CAAC,OAAO;YACf,OAAO,IAAI,CAAC,OAAO,CAAC;QAErB,IAAI,CAAC,cAAc,KAAK,CAAC,GAAG,EAAE;YAC7B,MAAM,EACL,0BAA0B,GAAG,kBAAkB,CAAC,QAAQ,EACxD,GAAG,UAAU,EACb,GAAG,IAAI,CAAC,OAAO,CAAC;YAEjB,OAAO,YAAY,CAAC,0BAA0B,EAAE,UAAU,EAAE;gBAC3D,cAAc,EAAE,CAAC,CAAC,EAAE,CAAE,CAAS,EAAE,IAAI,KAAK,OAAO;aACjD,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE;aACF,IAAI,CAAC,MAAM,CAAC,EAAE;YACd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE3C,OAAO,MAAM,CAAC;QACf,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,IAAI,IAAI,CAAC,UAAU;YAClB,OAAO,IAAI,CAAC,UAAU,CAAC;QAExB,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,YAAY,EAAE;aAC5C,IAAI,CAAC,MAAM,CAAC,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAmB,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,OAAO;QAER,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAEjF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEnC,SAAS,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAEpC,IAAI,CAAC,MAAM;YACV,OAAO;QAER,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,iBAAiB,GAAG,CAAC,IAAW,EAAE,EAAE;QACnC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;QACxC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC;CACF"}
|
|
@@ -2,7 +2,8 @@ import { parentPort, workerData } from 'node:worker_threads';
|
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import * as Comlink from 'comlink';
|
|
4
4
|
import { isSqliteWorkerData } from "./protocol.js";
|
|
5
|
-
import { createWorkerDb,
|
|
5
|
+
import { createWorkerDb, resolveCurrentFileLocationFromStack } from "./utils/index.js";
|
|
6
|
+
import { nodeEndpoint } from "../shared/worker-utils/index.js";
|
|
6
7
|
function all(statement, params) {
|
|
7
8
|
return params === undefined ? statement.all() : statement.all(params);
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteWorkerRunner.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EACN,kBAAkB,EAMlB,MAAM,eAAe,CAAC;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"SqliteWorkerRunner.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,4 @@ export function isSqliteWorkerData(value) {
|
|
|
7
7
|
&& 'dbConfig' in value
|
|
8
8
|
&& isObject(value.dbConfig);
|
|
9
9
|
}
|
|
10
|
-
export function isSqliteWorkerReadyMessage(value) {
|
|
11
|
-
return typeof value === 'object' &&
|
|
12
|
-
value !== null &&
|
|
13
|
-
'type' in value &&
|
|
14
|
-
value.type === 'ready';
|
|
15
|
-
}
|
|
16
10
|
//# sourceMappingURL=protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sqlite-workers/protocol.ts"],"names":[],"mappings":"AA2DA,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAa,EAAE,CAC5C,OAAO,GAAG,KAAK,QAAQ;OACpB,GAAG,KAAK,IAAI;OACZ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;OACnB,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;AAE3B,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAChD,OAAO,QAAQ,CAAC,KAAK,CAAC;WAClB,UAAU,IAAI,KAAK;WACnB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sqlite-workers/protocol.ts"],"names":[],"mappings":"AA2DA,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAa,EAAE,CAC5C,OAAO,GAAG,KAAK,QAAQ;OACpB,GAAG,KAAK,IAAI;OACZ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;OACnB,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;AAE3B,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAChD,OAAO,QAAQ,CAAC,KAAK,CAAC;WAClB,UAAU,IAAI,KAAK;WACnB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,0CAA0C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MessageChannel } from 'node:worker_threads';
|
|
2
2
|
import * as Comlink from 'comlink';
|
|
3
|
-
import { nodeEndpoint, createWorker } from "
|
|
3
|
+
import { nodeEndpoint, createWorker } from "../shared/worker-utils/index.js";
|
|
4
4
|
import { assertStringArray, assertString, extractErrorDetails, subscribe } from "../utils/index.js";
|
|
5
5
|
import { describe } from "../Event.js";
|
|
6
6
|
import { InMemoryLock } from "../in-memory/InMemoryLock.js";
|
|
@@ -31,9 +31,9 @@ export class WorkerProxyProjection {
|
|
|
31
31
|
this.#logger = logger && 'child' in logger ? logger.child({ service: new.target.name }) : logger;
|
|
32
32
|
const { port1: projectionPortMain, port2: projectionPort } = new MessageChannel();
|
|
33
33
|
const { port1: viewPortMain, port2: viewPort } = new MessageChannel();
|
|
34
|
-
this.#workerInit = createWorker(workerModulePath, {
|
|
35
|
-
projectionPort,
|
|
36
|
-
|
|
34
|
+
this.#workerInit = createWorker(workerModulePath, { projectionPort, viewPort }, {
|
|
35
|
+
transferList: [projectionPort, viewPort],
|
|
36
|
+
isReadyMessage: m => m?.type === 'ready'
|
|
37
37
|
}).then(worker => {
|
|
38
38
|
this.#worker = worker;
|
|
39
39
|
worker.once('error', this._onWorkerError);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAW7D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as path from 'node:path';
|
|
3
|
-
import { isWorkerInitMessage } from "../protocol.js";
|
|
1
|
+
import { createWorker as createWorkerGeneric } from "../../shared/worker-utils/index.js";
|
|
4
2
|
/**
|
|
5
|
-
* Create a worker instance, await a handshake or a failure
|
|
3
|
+
* Create a worker instance for a projection worker module, await a handshake or a failure.
|
|
6
4
|
*
|
|
7
|
-
* @param workerModulePath -
|
|
8
|
-
* @param ports -
|
|
9
|
-
* @returns Worker instance
|
|
5
|
+
* @param workerModulePath - Absolute or relative path to the worker module
|
|
6
|
+
* @param ports - MessagePorts for projection and view communication (transferred into the worker)
|
|
7
|
+
* @returns Resolved Worker instance after the ready handshake
|
|
10
8
|
*/
|
|
11
9
|
export async function createWorker(workerModulePath, ports) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const worker = new Worker(workerEntrypoint, {
|
|
16
|
-
workerData: ports,
|
|
17
|
-
transferList: [
|
|
18
|
-
ports.projectionPort,
|
|
19
|
-
ports.viewPort
|
|
20
|
-
]
|
|
10
|
+
return createWorkerGeneric(workerModulePath, ports, {
|
|
11
|
+
transferList: [ports.projectionPort, ports.viewPort],
|
|
12
|
+
isReadyMessage: m => m?.type === 'ready'
|
|
21
13
|
});
|
|
22
|
-
await new Promise((resolve, reject) => {
|
|
23
|
-
const cleanup = () => {
|
|
24
|
-
// eslint-disable-next-line no-use-before-define
|
|
25
|
-
worker.off('error', onError);
|
|
26
|
-
// eslint-disable-next-line no-use-before-define
|
|
27
|
-
worker.off('message', onMessage);
|
|
28
|
-
// eslint-disable-next-line no-use-before-define
|
|
29
|
-
worker.off('exit', onExit);
|
|
30
|
-
};
|
|
31
|
-
const onMessage = (msg) => {
|
|
32
|
-
if (!isWorkerInitMessage(msg))
|
|
33
|
-
return;
|
|
34
|
-
cleanup();
|
|
35
|
-
resolve(undefined);
|
|
36
|
-
};
|
|
37
|
-
const onError = (err) => {
|
|
38
|
-
cleanup();
|
|
39
|
-
reject(err);
|
|
40
|
-
};
|
|
41
|
-
const onExit = (exitCode) => {
|
|
42
|
-
cleanup();
|
|
43
|
-
reject(new Error(`Worker exited prematurely with exit code ${exitCode}`));
|
|
44
|
-
};
|
|
45
|
-
worker.on('message', onMessage);
|
|
46
|
-
worker.once('error', onError);
|
|
47
|
-
worker.once('exit', onExit);
|
|
48
|
-
});
|
|
49
|
-
return worker;
|
|
50
14
|
}
|
|
51
15
|
//# sourceMappingURL=createWorker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWorker.js","sourceRoot":"","sources":["../../../../src/workers/utils/createWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createWorker.js","sourceRoot":"","sources":["../../../../src/workers/utils/createWorker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,gBAAwB,EAAE,KAAkB;IAC9E,OAAO,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,EAAE;QACnD,YAAY,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC;QACpD,cAAc,EAAE,CAAC,CAAC,EAAE,CAAE,CAAS,EAAE,IAAI,KAAK,OAAO;KACjD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { parentPort, workerData } from 'node:worker_threads';
|
|
|
2
2
|
import * as Comlink from 'comlink';
|
|
3
3
|
import { assertFunction, getMessageHandlerNames, isClass } from "../../utils/index.js";
|
|
4
4
|
import { isWorkerData } from "../protocol.js";
|
|
5
|
-
import { nodeEndpoint } from "
|
|
5
|
+
import { nodeEndpoint } from "../../shared/worker-utils/index.js";
|
|
6
6
|
export function createWorkerInstance(ProjectionFactoryOrType, projectionMethodsToWire) {
|
|
7
7
|
if (!parentPort)
|
|
8
8
|
throw new Error('createWorkerInstance can only be called from a Worker thread');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWorkerInstance.js","sourceRoot":"","sources":["../../../../src/workers/utils/createWorkerInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAA0B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"createWorkerInstance.js","sourceRoot":"","sources":["../../../../src/workers/utils/createWorkerInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAA0B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAoBlE,MAAM,UAAU,oBAAoB,CACnC,uBAAsE,EACtE,uBAAuE;IAEvE,IAAI,CAAC,UAAU;QACd,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACjF,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAE5E,MAAM,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC;IAChH,MAAM,aAAa,GAAG,uBAAuB,IAAI,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACpF,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CACvC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEnC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnE,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAA8B,CAAC,CAAC;IAEtE,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/workers/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/workers/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Worker, type Transferable } from 'node:worker_threads';
|
|
2
|
+
/**
|
|
3
|
+
* Create a worker instance and await a first message (or a specific ready message) or a failure.
|
|
4
|
+
*
|
|
5
|
+
* @param workerEntrypoint - Absolute path or URL to the worker module
|
|
6
|
+
* @param workerData - Structured-cloneable data passed to the worker via workerData
|
|
7
|
+
* @param options.transferList - Transferable objects to move (not copy) into the worker
|
|
8
|
+
* @param options.isReadyMessage - Predicate to identify the ready message; if omitted, any first message resolves
|
|
9
|
+
* @returns Resolved Worker instance after the ready handshake
|
|
10
|
+
*/
|
|
11
|
+
export declare function createWorker(workerEntrypoint: string | URL, workerData: unknown, options?: {
|
|
12
|
+
readonly transferList?: Transferable[];
|
|
13
|
+
readonly isReadyMessage?: (msg: unknown) => boolean;
|
|
14
|
+
}): Promise<Worker>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import * as Comlink from 'comlink';
|
|
1
|
+
import type * as Comlink from 'comlink';
|
|
2
2
|
export declare const nodeEndpoint: (arg: any) => Comlink.Endpoint;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Worker } from 'node:worker_threads';
|
|
2
|
-
import {
|
|
1
|
+
import type { Worker } from 'node:worker_threads';
|
|
2
|
+
import type { IWorkerData } from '../protocol.ts';
|
|
3
3
|
/**
|
|
4
|
-
* Create a worker instance, await a handshake or a failure
|
|
4
|
+
* Create a worker instance for a projection worker module, await a handshake or a failure.
|
|
5
5
|
*
|
|
6
|
-
* @param workerModulePath -
|
|
7
|
-
* @param ports -
|
|
8
|
-
* @returns Worker instance
|
|
6
|
+
* @param workerModulePath - Absolute or relative path to the worker module
|
|
7
|
+
* @param ports - MessagePorts for projection and view communication (transferred into the worker)
|
|
8
|
+
* @returns Resolved Worker instance after the ready handshake
|
|
9
9
|
*/
|
|
10
10
|
export declare function createWorker(workerModulePath: string, ports: IWorkerData): Promise<Worker>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-cqrs",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.3",
|
|
4
4
|
"description": "TypeScript CQRS/Event Sourcing toolkit for Node.js with DI, sagas, projections, and optional Worker, RabbitMQ, and SQLite adapters",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createSqliteWorker = createSqliteWorker;
|
|
4
|
-
const node_worker_threads_1 = require("node:worker_threads");
|
|
5
|
-
const protocol_ts_1 = require("../protocol.js");
|
|
6
|
-
const SqliteWorkerRunner_ts_1 = require("../SqliteWorkerRunner.js");
|
|
7
|
-
async function createSqliteWorker(params) {
|
|
8
|
-
const { sqliteWorkerRunnerLocation = SqliteWorkerRunner_ts_1.SqliteWorkerRunner.location, ...workerData } = params;
|
|
9
|
-
const worker = new node_worker_threads_1.Worker(sqliteWorkerRunnerLocation, { workerData });
|
|
10
|
-
await new Promise((resolve, reject) => {
|
|
11
|
-
let onError;
|
|
12
|
-
let onMessage;
|
|
13
|
-
let onExit;
|
|
14
|
-
const cleanup = () => {
|
|
15
|
-
worker.off('error', onError);
|
|
16
|
-
worker.off('message', onMessage);
|
|
17
|
-
worker.off('exit', onExit);
|
|
18
|
-
};
|
|
19
|
-
onMessage = (message) => {
|
|
20
|
-
if (!(0, protocol_ts_1.isSqliteWorkerReadyMessage)(message))
|
|
21
|
-
return;
|
|
22
|
-
cleanup();
|
|
23
|
-
resolve();
|
|
24
|
-
};
|
|
25
|
-
onError = (err) => {
|
|
26
|
-
cleanup();
|
|
27
|
-
reject(err);
|
|
28
|
-
};
|
|
29
|
-
onExit = (exitCode) => {
|
|
30
|
-
cleanup();
|
|
31
|
-
reject(new Error(`SQLite worker exited prematurely with exit code ${exitCode}`));
|
|
32
|
-
};
|
|
33
|
-
worker.on('message', onMessage);
|
|
34
|
-
worker.once('error', onError);
|
|
35
|
-
worker.once('exit', onExit);
|
|
36
|
-
});
|
|
37
|
-
return worker;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=createSqliteWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSqliteWorker.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createSqliteWorker.ts"],"names":[],"mappings":";;AAIA,gDA2CC;AA/CD,6DAA6C;AAC7C,gDAA0F;AAC1F,oEAA8D;AAEvD,KAAK,UAAU,kBAAkB,CAAC,MAA+B;IACvE,MAAM,EACL,0BAA0B,GAAG,0CAAkB,CAAC,QAAQ,EACxD,GAAG,UAAU,EACb,GAAG,MAAM,CAAC;IAEX,MAAM,MAAM,GAAG,IAAI,4BAAM,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,OAA+B,CAAC;QACpC,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QAEvC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;YAChC,IAAI,CAAC,IAAA,wCAA0B,EAAC,OAAO,CAAC;gBACvC,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/nodeEndpoint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA4C;AAC5C,gDAAkC;AAKlC,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,eAAe,GAAG,IAAA,2BAAa,EAAC,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACxG,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjC,UAAU,CAAC,CAAC;AACb,MAAM,kBAAkB,GAAG,eAAe,CAAC,+BAA+B,CAAC,CAAC;AAC/D,QAAA,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nodeEndpoint = void 0;
|
|
4
|
-
// Jest (CJS) cannot import the ESM adapter;
|
|
5
|
-
// the UMD build is CJS/UMD but the default export shape varies by loader
|
|
6
|
-
const nodeEndpointModule = require('comlink/dist/umd/node-adapter');
|
|
7
|
-
exports.nodeEndpoint = (nodeEndpointModule?.default ?? nodeEndpointModule);
|
|
8
|
-
//# sourceMappingURL=nodeEndpoint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/workers/utils/nodeEndpoint.ts"],"names":[],"mappings":";;;AAEA,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AACvD,QAAA,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Worker } from 'node:worker_threads';
|
|
2
|
-
import { isSqliteWorkerReadyMessage } from "../protocol.js";
|
|
3
|
-
import { SqliteWorkerRunner } from "../SqliteWorkerRunner.js";
|
|
4
|
-
export async function createSqliteWorker(params) {
|
|
5
|
-
const { sqliteWorkerRunnerLocation = SqliteWorkerRunner.location, ...workerData } = params;
|
|
6
|
-
const worker = new Worker(sqliteWorkerRunnerLocation, { workerData });
|
|
7
|
-
await new Promise((resolve, reject) => {
|
|
8
|
-
let onError;
|
|
9
|
-
let onMessage;
|
|
10
|
-
let onExit;
|
|
11
|
-
const cleanup = () => {
|
|
12
|
-
worker.off('error', onError);
|
|
13
|
-
worker.off('message', onMessage);
|
|
14
|
-
worker.off('exit', onExit);
|
|
15
|
-
};
|
|
16
|
-
onMessage = (message) => {
|
|
17
|
-
if (!isSqliteWorkerReadyMessage(message))
|
|
18
|
-
return;
|
|
19
|
-
cleanup();
|
|
20
|
-
resolve();
|
|
21
|
-
};
|
|
22
|
-
onError = (err) => {
|
|
23
|
-
cleanup();
|
|
24
|
-
reject(err);
|
|
25
|
-
};
|
|
26
|
-
onExit = (exitCode) => {
|
|
27
|
-
cleanup();
|
|
28
|
-
reject(new Error(`SQLite worker exited prematurely with exit code ${exitCode}`));
|
|
29
|
-
};
|
|
30
|
-
worker.on('message', onMessage);
|
|
31
|
-
worker.once('error', onError);
|
|
32
|
-
worker.once('exit', onExit);
|
|
33
|
-
});
|
|
34
|
-
return worker;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=createSqliteWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSqliteWorker.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createSqliteWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAgC,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA+B;IACvE,MAAM,EACL,0BAA0B,GAAG,kBAAkB,CAAC,QAAQ,EACxD,GAAG,UAAU,EACb,GAAG,MAAM,CAAC;IAEX,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,OAA+B,CAAC;QACpC,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QAEvC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;YAChC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;gBACvC,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/nodeEndpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACxG,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjC,UAAU,CAAC,CAAC;AACb,MAAM,kBAAkB,GAAG,eAAe,CAAC,+BAA+B,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// Jest (CJS) cannot import the ESM adapter;
|
|
2
|
-
// the UMD build is CJS/UMD but the default export shape varies by loader
|
|
3
|
-
const nodeEndpointModule = require('comlink/dist/umd/node-adapter');
|
|
4
|
-
export const nodeEndpoint = (nodeEndpointModule?.default ?? nodeEndpointModule);
|
|
5
|
-
//# sourceMappingURL=nodeEndpoint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/workers/utils/nodeEndpoint.ts"],"names":[],"mappings":"AAEA,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
File without changes
|
|
File without changes
|