node-cqrs 1.2.0-alpha.1 → 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.
Files changed (71) hide show
  1. package/CHANGELOG.md +38 -10
  2. package/README.md +20 -3
  3. package/dist/cjs/shared/worker-utils/createWorker.js +85 -0
  4. package/dist/cjs/shared/worker-utils/createWorker.js.map +1 -0
  5. package/dist/cjs/shared/worker-utils/index.js +19 -0
  6. package/dist/cjs/shared/worker-utils/index.js.map +1 -0
  7. package/dist/cjs/shared/worker-utils/nodeEndpoint.js.map +1 -0
  8. package/dist/cjs/sqlite-workers/SqliteWorkerProxy.js +8 -2
  9. package/dist/cjs/sqlite-workers/SqliteWorkerProxy.js.map +1 -1
  10. package/dist/cjs/sqlite-workers/SqliteWorkerRunner.js +2 -1
  11. package/dist/cjs/sqlite-workers/SqliteWorkerRunner.js.map +1 -1
  12. package/dist/cjs/sqlite-workers/protocol.js +0 -7
  13. package/dist/cjs/sqlite-workers/protocol.js.map +1 -1
  14. package/dist/cjs/sqlite-workers/utils/index.js +0 -2
  15. package/dist/cjs/sqlite-workers/utils/index.js.map +1 -1
  16. package/dist/cjs/workers/AbstractWorkerProjection.js +5 -4
  17. package/dist/cjs/workers/AbstractWorkerProjection.js.map +1 -1
  18. package/dist/cjs/workers/WorkerProxyProjection.js +25 -8
  19. package/dist/cjs/workers/WorkerProxyProjection.js.map +1 -1
  20. package/dist/cjs/workers/utils/createWorker.js +8 -77
  21. package/dist/cjs/workers/utils/createWorker.js.map +1 -1
  22. package/dist/cjs/workers/utils/createWorkerInstance.js +1 -1
  23. package/dist/cjs/workers/utils/createWorkerInstance.js.map +1 -1
  24. package/dist/cjs/workers/utils/index.js +0 -2
  25. package/dist/cjs/workers/utils/index.js.map +1 -1
  26. package/dist/esm/shared/worker-utils/createWorker.js +49 -0
  27. package/dist/esm/shared/worker-utils/createWorker.js.map +1 -0
  28. package/dist/esm/shared/worker-utils/index.js +3 -0
  29. package/dist/esm/shared/worker-utils/index.js.map +1 -0
  30. package/dist/esm/shared/worker-utils/nodeEndpoint.js.map +1 -0
  31. package/dist/esm/sqlite-workers/SqliteWorkerProxy.js +8 -2
  32. package/dist/esm/sqlite-workers/SqliteWorkerProxy.js.map +1 -1
  33. package/dist/esm/sqlite-workers/SqliteWorkerRunner.js +2 -1
  34. package/dist/esm/sqlite-workers/SqliteWorkerRunner.js.map +1 -1
  35. package/dist/esm/sqlite-workers/protocol.js +0 -6
  36. package/dist/esm/sqlite-workers/protocol.js.map +1 -1
  37. package/dist/esm/sqlite-workers/utils/index.js +0 -2
  38. package/dist/esm/sqlite-workers/utils/index.js.map +1 -1
  39. package/dist/esm/workers/AbstractWorkerProjection.js +5 -4
  40. package/dist/esm/workers/AbstractWorkerProjection.js.map +1 -1
  41. package/dist/esm/workers/WorkerProxyProjection.js +25 -8
  42. package/dist/esm/workers/WorkerProxyProjection.js.map +1 -1
  43. package/dist/esm/workers/utils/createWorker.js +8 -44
  44. package/dist/esm/workers/utils/createWorker.js.map +1 -1
  45. package/dist/esm/workers/utils/createWorkerInstance.js +1 -1
  46. package/dist/esm/workers/utils/createWorkerInstance.js.map +1 -1
  47. package/dist/esm/workers/utils/index.js +0 -2
  48. package/dist/esm/workers/utils/index.js.map +1 -1
  49. package/dist/types/shared/worker-utils/createWorker.d.ts +14 -0
  50. package/dist/types/shared/worker-utils/index.d.ts +2 -0
  51. package/dist/types/{sqlite-workers/utils → shared/worker-utils}/nodeEndpoint.d.ts +1 -1
  52. package/dist/types/sqlite-workers/protocol.d.ts +0 -1
  53. package/dist/types/sqlite-workers/utils/index.d.ts +0 -2
  54. package/dist/types/workers/WorkerProxyProjection.d.ts +9 -3
  55. package/dist/types/workers/utils/createWorker.d.ts +6 -6
  56. package/dist/types/workers/utils/index.d.ts +0 -2
  57. package/package.json +1 -1
  58. package/dist/cjs/sqlite-workers/utils/createSqliteWorker.js +0 -39
  59. package/dist/cjs/sqlite-workers/utils/createSqliteWorker.js.map +0 -1
  60. package/dist/cjs/sqlite-workers/utils/nodeEndpoint.js.map +0 -1
  61. package/dist/cjs/workers/utils/nodeEndpoint.js +0 -8
  62. package/dist/cjs/workers/utils/nodeEndpoint.js.map +0 -1
  63. package/dist/esm/sqlite-workers/utils/createSqliteWorker.js +0 -36
  64. package/dist/esm/sqlite-workers/utils/createSqliteWorker.js.map +0 -1
  65. package/dist/esm/sqlite-workers/utils/nodeEndpoint.js.map +0 -1
  66. package/dist/esm/workers/utils/nodeEndpoint.js +0 -5
  67. package/dist/esm/workers/utils/nodeEndpoint.js.map +0 -1
  68. package/dist/types/sqlite-workers/utils/createSqliteWorker.d.ts +0 -3
  69. package/dist/types/workers/utils/nodeEndpoint.d.ts +0 -2
  70. /package/dist/cjs/{sqlite-workers/utils → shared/worker-utils}/nodeEndpoint.js +0 -0
  71. /package/dist/esm/{sqlite-workers/utils → shared/worker-utils}/nodeEndpoint.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
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)
10
+
11
+
12
+
1
13
  # [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)
2
14
 
3
15
 
@@ -6,7 +18,7 @@
6
18
  * Allow SQLite worker connections to be created with a custom factory ([fb39cf1](https://github.com/snatalenko/node-cqrs/commit/fb39cf1e3be51c279de6571262c360bf057dea28))
7
19
 
8
20
 
9
- # [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)
21
+ # [1.2.0-alpha.0](https://github.com/snatalenko/node-cqrs/compare/v1.0.2...v1.2.0-alpha.0) (2026-04-27)
10
22
 
11
23
 
12
24
  ### Features
@@ -14,31 +26,39 @@
14
26
  * Add sqlite-workers submodule for async SQLite reads ([1987a40](https://github.com/snatalenko/node-cqrs/commit/1987a403fdfd38a57cf4b2c82bc79e88568bc32e))
15
27
 
16
28
 
17
- # [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)
29
+ # [1.1.0](https://github.com/snatalenko/node-cqrs/compare/v1.2.0-alpha.2...v1.1.0) (2026-05-26)
30
+
31
+
32
+ ### Documentation
33
+
34
+ * Fix homepage styles cdn ([6ab1ff2](https://github.com/snatalenko/node-cqrs/commit/6ab1ff28246b4496a7fc0b2911c01c8960f9959e))
35
+
36
+
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)
18
38
 
19
39
 
20
40
  ### Changes
21
41
 
22
- * Allow extra command parameters to be passed to AbstractAggregate handler as 3rd argument ([ae11b7e](https://github.com/snatalenko/node-cqrs/commit/ae11b7eb709e658fbc910aadb1376bc8a3fade1b))
42
+ * Deliver events to worker in batches during restoring phase ([212e353](https://github.com/snatalenko/node-cqrs/commit/212e3535b22e6a763a7e0fd1f81036f9ef776ec0))
23
43
 
24
- ### Build System
44
+ ### Documentation
25
45
 
26
- * Add "rebuild" npm script ([2e5e977](https://github.com/snatalenko/node-cqrs/commit/2e5e9771f760d15cc1cbbc2f68bc680cd6b97de3))
46
+ * Add index.html for publishing with gh pages ([cac88ed](https://github.com/snatalenko/node-cqrs/commit/cac88edaaef1c9457af48fd7477daf8ae624eb43))
27
47
 
28
48
  ### Internal Fixes
29
49
 
30
- * Make `getHandler` to throw error if handler is not defined ([ecbd73e](https://github.com/snatalenko/node-cqrs/commit/ecbd73e0604c74eb85a946b15a4b872b688da01e))
50
+ * Allow disposing worker projection proxy more than once ([768f73a](https://github.com/snatalenko/node-cqrs/commit/768f73a28a8a1a572449122f5046c102435dd5bd))
31
51
 
32
52
 
33
- # [1.1.0-beta.1](https://github.com/snatalenko/node-cqrs/compare/v1.1.0-beta.0...v1.1.0-beta.1) (2026-04-23)
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)
34
54
 
35
55
 
36
- ### Internal Fixes
56
+ ### Features
37
57
 
38
- * Expose `viewLocker` on WorkerProxyProjection ([628fbe3](https://github.com/snatalenko/node-cqrs/commit/628fbe3c7af141443092cdf1fb6c0824c19a6324))
58
+ * Allow SQLite worker connections to be created with a custom factory ([fb39cf1](https://github.com/snatalenko/node-cqrs/commit/fb39cf1e3be51c279de6571262c360bf057dea28))
39
59
 
40
60
 
41
- # [1.1.0-beta.0](https://github.com/snatalenko/node-cqrs/compare/v1.0.2...v1.1.0-beta.0) (2026-04-21)
61
+ # [1.2.0-alpha.0](https://github.com/snatalenko/node-cqrs/compare/v1.0.2...v1.2.0-alpha.0) (2026-04-27)
42
62
 
43
63
 
44
64
  ### Features
@@ -50,6 +70,7 @@
50
70
  * MongoDB-backed event storage ([53fb5e1](https://github.com/snatalenko/node-cqrs/commit/53fb5e1c0d7a027f9afebf88f8d3d516d06c3c48))
51
71
  * MongoDb-backed view model (`MongoObjectView`, `AbstractMongoObjectProjection`) ([4995bfe](https://github.com/snatalenko/node-cqrs/commit/4995bfe2daf53372d3e7e36d59ee103219ad6a35))
52
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))
53
74
 
54
75
  ### Changes
55
76
 
@@ -58,6 +79,7 @@
58
79
  * Use `Identifier` as id type in redis and sqlite views ([dfbe964](https://github.com/snatalenko/node-cqrs/commit/dfbe9648a8ea8e7e5550aa40e0094ca8af1758ef))
59
80
  * Add default queueName for RabbitMqCommandBus ([ee4b5a1](https://github.com/snatalenko/node-cqrs/commit/ee4b5a170e44db6227e76d2ffb1695b6dfaef6e4))
60
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))
61
83
 
62
84
  ### Fixes
63
85
 
@@ -71,11 +93,17 @@
71
93
  * Detailed sqlite and rabbitmq instructions ([dd242fd](https://github.com/snatalenko/node-cqrs/commit/dd242fd73018bcfa0583ab1ddd12518c4f3a4777))
72
94
  * Minor spec update ([6a2883a](https://github.com/snatalenko/node-cqrs/commit/6a2883adc7b6a7a48bb5f62562c2242826860e89))
73
95
 
96
+ ### Build System
97
+
98
+ * Add "rebuild" npm script ([2e5e977](https://github.com/snatalenko/node-cqrs/commit/2e5e9771f760d15cc1cbbc2f68bc680cd6b97de3))
99
+
74
100
  ### Internal Fixes
75
101
 
76
102
  * Rename telemetry metadata span field to `otelSpan`, enhance typings ([2ca2494](https://github.com/snatalenko/node-cqrs/commit/2ca2494625ea8dde11f86fdf078d85c1d848d10a))
77
103
  * Compiled AbstractWorkerProjection type compatibility ([bf8ca08](https://github.com/snatalenko/node-cqrs/commit/bf8ca08a09faacb4cbf0da141dd4f09d4647e86e))
78
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))
79
107
 
80
108
 
81
109
  ## [1.0.2](https://github.com/snatalenko/node-cqrs/compare/v1.0.1...v1.0.2) (2026-04-03)
package/README.md CHANGED
@@ -9,11 +9,16 @@ node-cqrs
9
9
  [![License](https://img.shields.io/github/license/snatalenko/node-cqrs.svg)](https://github.com/snatalenko/node-cqrs)
10
10
  [![Tests/Audit](https://github.com/snatalenko/node-cqrs/actions/workflows/ci.yml/badge.svg)](https://github.com/snatalenko/node-cqrs/actions/workflows/ci.yml)
11
11
 
12
- Infrastructure-agnostic building blocks for CQRS/ES, inspired by Lokad.CQRS.
12
+ Building blocks for CQRS/ES, inspired by Lokad.CQRS.
13
+
14
+ <p align="center">
15
+ <img src="docs/images/logo.svg" width="250" />
16
+ </p>
13
17
 
14
18
  ## Features
15
19
 
16
20
  CQRS and Event Sourcing are simple in a single process ([example](examples/user-domain-framework-free/index.ts)), but a minefield in the cloud.
21
+
17
22
  node-cqrs handles the "boring but hard" distributed plumbing - concurrency, message delivery, projections, and rehydration - so you can focus on your domain logic.
18
23
 
19
24
  - **Reliable Consistency**: Per-aggregate FIFO handling and conflict-safe writes with optimistic concurrency.
@@ -21,9 +26,9 @@ node-cqrs handles the "boring but hard" distributed plumbing - concurrency, mess
21
26
  - **Fast Rehydration**: Automatic snapshotting and selective event restores.
22
27
  - **Distributed Sagas**: Built-in event correlation and origin propagation for complex workflows.
23
28
  - **Smart Pipelines**: Pluggable dispatching with back-pressure and concurrency limits.
24
- - **Pluggable by Design**: Thin interfaces on every component - swap any piece, from message buses to event storage, without touching your domain code.
29
+ - **Pluggable by Design**: Thin interfaces on every component - swap any piece, without patching the library or your domain code.
25
30
 
26
- The heavy lifting for common stacks is done, so you can mix and match sub-modules to fit your environment:
31
+ The core is infrastructure-agnostic, but the heavy lifting for common stacks is done, so you can mix and match sub-modules to fit your environment:
27
32
 
28
33
  - `node-cqrs/sqlite` – Embedded per-process event storage and/or views.
29
34
  - `node-cqrs/mongodb` – Distributed event storage and persistent projection views for multi-process deployments.
@@ -410,6 +415,17 @@ interface ISaga {
410
415
  Swap implementations by registering different classes in the DI container.
411
416
  All modules below implement the same interfaces - pick what fits your deployment.
412
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
+
413
429
  ### Event Storage
414
430
 
415
431
  Where aggregate events are persisted and replayed from.
@@ -522,6 +538,7 @@ See [examples/telemetry/index.ts](examples/telemetry/index.ts) for a full workin
522
538
  - [examples/redis](examples/redis/index.ts) - Redis-backed persistent projection
523
539
  - [examples/sagas-simple](examples/sagas-simple/index.ts) - simple saga
524
540
  - [examples/sagas-overlaps](examples/sagas-overlaps/index.ts) - overlapping sagas, multi-step flow
541
+ - [examples/sqlite](examples/sqlite/index.ts) - SQLite-backed object storage view
525
542
  - [examples/browser](examples/browser) - browser smoke test
526
543
  - [examples/workers-projection](examples/workers-projection) - worker thread projection
527
544
  - [examples/mongodb-eventstore](examples/mongodb-eventstore/index.ts) - MongoDB event storage with DI container and manual wiring
@@ -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("./utils/index.js");
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 ??= (0, index_ts_1.createSqliteWorker)(this.#config)
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":"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"}
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, index_ts_1.nodeEndpoint)(port));
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":"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"}
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;AAED,gEAKC;AAjBD,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;AAED,SAAgB,0BAA0B,CAAC,KAAc;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC/B,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AACzB,CAAC"}
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,0DAAwC;AACxC,sDAAoC;AACpC,oDAAkC;AAClC,2EAAyD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,2EAAyD"}
@@ -17,7 +17,7 @@ class AbstractWorkerProjection extends AbstractProjection_ts_1.AbstractProjectio
17
17
  return undefined;
18
18
  const projectionMethodsToWire = [
19
19
  'project',
20
- '_project',
20
+ '_projectBatch',
21
21
  'ping',
22
22
  'getLastProjectedEvent'
23
23
  ];
@@ -41,9 +41,10 @@ class AbstractWorkerProjection extends AbstractProjection_ts_1.AbstractProjectio
41
41
  ping() {
42
42
  return true;
43
43
  }
44
- /** @internal Expose protected projection path for worker RPC wiring */
45
- _project(event, meta) {
46
- return super._project(event, meta);
44
+ /** @internal Project restore events in batches to avoid one Comlink roundtrip per event */
45
+ async _projectBatch(events) {
46
+ for (const event of events)
47
+ await this._project(event);
47
48
  }
48
49
  /**
49
50
  * Returns the last projected event if the view implements IEventLocker, otherwise undefined.
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractWorkerProjection.js","sourceRoot":"","sources":["../../../src/workers/AbstractWorkerProjection.ts"],"names":[],"mappings":";;;AAAA,6DAAmD;AACnD,oEAA8D;AAC9D,+CAI0B;AAI1B;;;GAGG;AACH,MAAsB,wBACrB,SAAQ,0CAAyB;IAGjC;;OAEG;IACH,MAAM,CAAC,4BAA4B,CAElC,OAAiB;QAEjB,IAAI,kCAAY;YACf,OAAO,SAAS,CAAC;QAElB,MAAM,uBAAuB,GAAG;YAC/B,SAAS;YACT,UAAU;YACV,MAAM;YACN,uBAAuB;SACO,CAAC;QAEhC,IAAI,OAAO;YACV,OAAO,IAAA,+BAA8B,EAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAEzE,OAAO,IAAA,+BAA8B,EAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAI0B,SAAsB;QACxE,OAAO,IAAA,6BAAwB,EAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,KAAK,gBAAgB;QAC1B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAED,uFAAuF;IACvF,kDAAkD;IAC3C,IAAI;QACV,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uEAAuE;IACvD,QAAQ,CAAC,KAAa,EAAE,IAA0B;QACjE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB;QACjC,OAAO,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC;IAC1C,CAAC;CACD;AA7DD,4DA6DC"}
1
+ {"version":3,"file":"AbstractWorkerProjection.js","sourceRoot":"","sources":["../../../src/workers/AbstractWorkerProjection.ts"],"names":[],"mappings":";;;AAAA,6DAAmD;AACnD,oEAA8D;AAC9D,+CAI0B;AAI1B;;;GAGG;AACH,MAAsB,wBACrB,SAAQ,0CAAyB;IAGjC;;OAEG;IACH,MAAM,CAAC,4BAA4B,CAElC,OAAiB;QAEjB,IAAI,kCAAY;YACf,OAAO,SAAS,CAAC;QAElB,MAAM,uBAAuB,GAAG;YAC/B,SAAS;YACT,eAAe;YACf,MAAM;YACN,uBAAuB;SACO,CAAC;QAEhC,IAAI,OAAO;YACV,OAAO,IAAA,+BAA8B,EAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAEzE,OAAO,IAAA,+BAA8B,EAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAI0B,SAAsB;QACxE,OAAO,IAAA,6BAAwB,EAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,KAAK,gBAAgB;QAC1B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAED,uFAAuF;IACvF,kDAAkD;IAC3C,IAAI;QACV,OAAO,IAAI,CAAC;IACb,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,aAAa,CAAC,MAAgB;QACnC,KAAK,MAAM,KAAK,IAAI,MAAM;YACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB;QACjC,OAAO,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC;IAC1C,CAAC;CACD;AA9DD,4DA8DC"}
@@ -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("./utils/index.js");
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");
@@ -45,12 +45,14 @@ const InMemoryLock_ts_1 = require("../in-memory/InMemoryLock.js");
45
45
  * and view calls to AbstractWorkerThreadProjection instance
46
46
  */
47
47
  class WorkerProxyProjection {
48
+ static RESTORE_BATCH_SIZE = 5_000;
48
49
  #worker;
49
50
  #workerInit;
50
51
  #remoteProjection;
51
52
  #remoteView;
52
53
  #logger;
53
54
  #messageTypes;
55
+ #disposed = false;
54
56
  viewLocker = new InMemoryLock_ts_1.InMemoryLock();
55
57
  get remoteProjection() {
56
58
  return this.#remoteProjection;
@@ -65,9 +67,9 @@ class WorkerProxyProjection {
65
67
  this.#logger = logger && 'child' in logger ? logger.child({ service: new.target.name }) : logger;
66
68
  const { port1: projectionPortMain, port2: projectionPort } = new node_worker_threads_1.MessageChannel();
67
69
  const { port1: viewPortMain, port2: viewPort } = new node_worker_threads_1.MessageChannel();
68
- this.#workerInit = (0, index_ts_1.createWorker)(workerModulePath, {
69
- projectionPort,
70
- viewPort
70
+ this.#workerInit = (0, index_ts_1.createWorker)(workerModulePath, { projectionPort, viewPort }, {
71
+ transferList: [projectionPort, viewPort],
72
+ isReadyMessage: m => m?.type === 'ready'
71
73
  }).then(worker => {
72
74
  this.#worker = worker;
73
75
  worker.once('error', this._onWorkerError);
@@ -91,7 +93,12 @@ class WorkerProxyProjection {
91
93
  if (this.viewLocker)
92
94
  this.viewLocker.unlock();
93
95
  }
94
- /** Restore view state from not-yet-projected events */
96
+ /**
97
+ * Restore view state from not-yet-projected events.
98
+ *
99
+ * Events are projected in batches to reduce worker RPC overhead.
100
+ * The batch size can be configured through {@link WorkerProxyProjection.RESTORE_BATCH_SIZE}.
101
+ */
95
102
  async _restore(eventStore) {
96
103
  if (!this.#worker)
97
104
  await this.#workerInit;
@@ -101,10 +108,17 @@ class WorkerProxyProjection {
101
108
  const eventsIterable = eventStore.getEventsByTypes(this.#messageTypes, { afterEvent: lastEvent });
102
109
  let eventsCount = 0;
103
110
  const startTs = Date.now();
111
+ const batch = [];
104
112
  for await (const event of eventsIterable) {
105
- await this._project(event);
113
+ batch.push(event);
106
114
  eventsCount += 1;
115
+ if (batch.length >= WorkerProxyProjection.RESTORE_BATCH_SIZE) {
116
+ await this._projectBatch(batch);
117
+ batch.length = 0;
118
+ }
107
119
  }
120
+ if (batch.length)
121
+ await this._projectBatch(batch);
108
122
  this.#logger?.info(`view restored from ${eventsCount} event(s) in ${Date.now() - startTs} ms`);
109
123
  }
110
124
  _onWorkerError = (error) => {
@@ -129,10 +143,13 @@ class WorkerProxyProjection {
129
143
  await this.#workerInit;
130
144
  return this.#remoteProjection.project(event);
131
145
  }
132
- async _project(event) {
133
- await this.#remoteProjection._project(event);
146
+ _projectBatch(batch) {
147
+ return this.remoteProjection._projectBatch(batch);
134
148
  }
135
149
  dispose() {
150
+ if (this.#disposed)
151
+ return;
152
+ this.#disposed = true;
136
153
  this.#remoteProjection[Comlink.releaseProxy]();
137
154
  this.#remoteView[Comlink.releaseProxy]();
138
155
  this.#worker?.terminate();
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":"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"}