node-cqrs 1.1.0-beta.0 → 1.1.0-beta.1
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 +8 -0
- package/dist/cjs/CqrsContainerBuilder.js.map +1 -1
- package/dist/cjs/workers/WorkerProxyProjection.js +9 -9
- package/dist/cjs/workers/WorkerProxyProjection.js.map +1 -1
- package/dist/esm/CqrsContainerBuilder.js.map +1 -1
- package/dist/esm/workers/WorkerProxyProjection.js +9 -9
- package/dist/esm/workers/WorkerProxyProjection.js.map +1 -1
- package/dist/types/CqrsContainerBuilder.d.ts +1 -4
- package/dist/types/workers/WorkerProxyProjection.d.ts +2 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
# [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)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Internal Fixes
|
|
5
|
+
|
|
6
|
+
* Expose `viewLocker` on WorkerProxyProjection ([628fbe3](https://github.com/snatalenko/node-cqrs/commit/628fbe3c7af141443092cdf1fb6c0824c19a6324))
|
|
7
|
+
|
|
8
|
+
|
|
1
9
|
# [1.1.0-beta.0](https://github.com/snatalenko/node-cqrs/compare/v1.0.2...v1.1.0-beta.0) (2026-04-21)
|
|
2
10
|
|
|
3
11
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../../src/CqrsContainerBuilder.ts"],"names":[],"mappings":";;;AAAA,6BAA6E;AAC7E,6EAAuE;AACvE,mDAA6C;AAC7C,+DAAyD;AACzD,6DAAuD;AACvD,mDAA0D;AAC1D,oDAY+B;AAC/B,iDAAgE;AAEhE,MAAa,oBACZ,SAAQ,sBAAqC;IAE7C,YAAY,
|
|
1
|
+
{"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../../src/CqrsContainerBuilder.ts"],"names":[],"mappings":";;;AAAA,6BAA6E;AAC7E,6EAAuE;AACvE,mDAA6C;AAC7C,+DAAyD;AACzD,6DAAuD;AACvD,mDAA0D;AAC1D,oDAY+B;AAC/B,iDAAgE;AAEhE,MAAa,oBACZ,SAAQ,sBAAqC;IAE7C,YAAY,OAA2D;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,KAAK,CAAC,WAAW,CAAC,+BAAoB,EAAE,oBAAoB,CAAC,CAAC;QAE9D,kDAAkD;QAClD,KAAK,CAAC,WAAW,CAAC,+BAAoB,EAAE,oBAAoB,CAAC,CAAC;QAE9D,gEAAgE;QAChE,KAAK,CAAC,WAAW,CAAC,+BAAoB,EAAE,cAAc,CAAC,CAAC;QACxD,KAAK,CAAC,WAAW,CAAC,qCAA0B,EAAE,iBAAiB,CAAC,CAAC;QACjE,KAAK,CAAC,WAAW,CAAC,4BAAiB,EAAE,iBAAiB,CAAC,CAAC;QAExD,KAAK,CAAC,QAAQ,CAAC,6BAAkB,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QACpD,KAAK,CAAC,QAAQ,CAAC,6BAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAClD,KAAK,CAAC,QAAQ,CAAC,0BAAU,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAC5C,KAAK,CAAC,QAAQ,CAAC,oCAAe,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAEtD,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,sFAAsF;YACtF,qFAAqF;YACrF,GAAG,IAAA,sCAA2B,EAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9E,GAAG,IAAA,sCAA2B,EAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;YACtE,GAAG,IAAA,sCAA2B,EAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;SAC5E,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC;QAE/B,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAqB,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED,8FAA8F;IAC9F,sBAAsB,CAAC,aAAmE;QACzF,OAAO,KAAK,CAAC,QAAQ,CACpB,CAAC,SAA8B,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACxD,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,OAAO,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6FAA6F;IAC7F,qBAAqB,CAAC,aAAkE;QACvF,OAAO,KAAK,CAAC,QAAQ,CACpB,CAAC,SAA8B,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACzD,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACzC,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,kBAAkB,CACjB,aAAoE,EACpE,gBAA4C;QAE5C,IAAA,0BAAc,EAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAE/C,MAAM,iBAAiB,GAAG,CAAC,SAA8B,EAAoB,EAAE;YAC9E,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC3D,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAE3C,mCAAmC;YACnC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,aAAa,EAAE,CAAC;gBACnB,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,4CAA4C;gBAC3E,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,gBAAgB;gBACnB,OAAO,UAAU,CAAC,IAAI,CAAC;YAExB,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAE/D,IAAI,gBAAgB;YACnB,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAExB,OAAO,CAAC,CAAC;IACV,CAAC;IAED,+CAA+C;IAC/C,iBAAiB,CAAC,aAA8C;QAC/D,IAAA,uBAAW,EAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAE5C,MAAM,qBAAqB,GAAG,CAAC,SAA8B,EAAmB,EAAE,CACjF,SAAS,CAAC,cAAc,CAAC,oDAAuB,EAAE;YACjD,gBAAgB,EAAE,CAAC,OAAY,EAAE,EAAE,CAClC,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC;YACjD,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,GAAG,aAAa,CAAC,uBAAuB,KAAK,SAAS,IAAI;gBACzD,uBAAuB,EAAE,aAAa,CAAC,uBAAuB;aAC9D;SACD,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;IAC3D,CAAC;IAGD,0CAA0C;IAC1C,YAAY,CAAC,QAA0B;QACtC,IAAA,uBAAW,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAElC,MAAM,oBAAoB,GAAG,CAAC,SAA8B,EAAkB,EAAE,CAC/E,SAAS,CAAC,cAAc,CAAC,sCAAgB,EAAE;YAC1C,WAAW,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC1E,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI;YACxD,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,QAAQ,CAAC,IAAI;SACxB,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IACzD,CAAC;CACD;AAzHD,oDAyHC"}
|
|
@@ -51,7 +51,7 @@ class WorkerProxyProjection {
|
|
|
51
51
|
#remoteView;
|
|
52
52
|
#logger;
|
|
53
53
|
#messageTypes;
|
|
54
|
-
|
|
54
|
+
viewLocker = new InMemoryLock_ts_1.InMemoryLock();
|
|
55
55
|
get remoteProjection() {
|
|
56
56
|
return this.#remoteProjection;
|
|
57
57
|
}
|
|
@@ -85,11 +85,11 @@ class WorkerProxyProjection {
|
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
async restore(eventStore) {
|
|
88
|
-
if (this
|
|
89
|
-
await this
|
|
88
|
+
if (this.viewLocker)
|
|
89
|
+
await this.viewLocker.lock();
|
|
90
90
|
await this._restore(eventStore);
|
|
91
|
-
if (this
|
|
92
|
-
this
|
|
91
|
+
if (this.viewLocker)
|
|
92
|
+
this.viewLocker.unlock();
|
|
93
93
|
}
|
|
94
94
|
/** Restore view state from not-yet-projected events */
|
|
95
95
|
async _restore(eventStore) {
|
|
@@ -120,13 +120,13 @@ class WorkerProxyProjection {
|
|
|
120
120
|
await this.#workerInit;
|
|
121
121
|
}
|
|
122
122
|
async project(event) {
|
|
123
|
-
if (!this
|
|
124
|
-
await this.#workerInit;
|
|
125
|
-
if (!this.#viewLocker.ready) {
|
|
123
|
+
if (this.viewLocker && !this.viewLocker.ready) {
|
|
126
124
|
this.#logger?.debug(`view is locked, awaiting until it is ready to process ${(0, Event_ts_1.describe)(event)}`);
|
|
127
|
-
await this
|
|
125
|
+
await this.viewLocker.once('ready');
|
|
128
126
|
this.#logger?.debug(`view is ready, processing ${(0, Event_ts_1.describe)(event)}`);
|
|
129
127
|
}
|
|
128
|
+
if (!this.#worker)
|
|
129
|
+
await this.#workerInit;
|
|
130
130
|
return this.#remoteProjection.project(event);
|
|
131
131
|
}
|
|
132
132
|
async _project(event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA6D;AAK7D,iDAAmC;AACnC,+CAA8D;AAC9D,gDAAoG;AACpG,0CAAuC;AACvC,kEAA4D;AAE5D;;;GAGG;AACH,MAAa,qBAAqB;IAKjC,OAAO,CAAU;IACR,WAAW,CAAkB;IAC7B,iBAAiB,CAA8B;IAC/C,WAAW,CAAwB;IACnC,OAAO,CAAW;IAClB,aAAa,CAAW;
|
|
1
|
+
{"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../../src/CqrsContainerBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAwC,MAAM,KAAK,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAON,2BAA2B,EAC3B,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,OAAO,oBACZ,SAAQ,gBAAqC;IAE7C,YAAY,
|
|
1
|
+
{"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../../src/CqrsContainerBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAwC,MAAM,KAAK,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAON,2BAA2B,EAC3B,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,OAAO,oBACZ,SAAQ,gBAAqC;IAE7C,YAAY,OAA2D;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;QAE9D,kDAAkD;QAClD,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;QAE9D,gEAAgE;QAChE,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;QACxD,KAAK,CAAC,WAAW,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAC;QACjE,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAExD,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QACpD,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAClD,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAC5C,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAEtD,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,sFAAsF;YACtF,qFAAqF;YACrF,GAAG,2BAA2B,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9E,GAAG,2BAA2B,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;YACtE,GAAG,2BAA2B,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;SAC5E,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC;QAE/B,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAqB,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED,8FAA8F;IAC9F,sBAAsB,CAAC,aAAmE;QACzF,OAAO,KAAK,CAAC,QAAQ,CACpB,CAAC,SAA8B,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACxD,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,OAAO,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6FAA6F;IAC7F,qBAAqB,CAAC,aAAkE;QACvF,OAAO,KAAK,CAAC,QAAQ,CACpB,CAAC,SAA8B,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACzD,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACzC,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,kBAAkB,CACjB,aAAoE,EACpE,gBAA4C;QAE5C,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAE/C,MAAM,iBAAiB,GAAG,CAAC,SAA8B,EAAoB,EAAE;YAC9E,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC3D,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAE3C,mCAAmC;YACnC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,aAAa,EAAE,CAAC;gBACnB,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,4CAA4C;gBAC3E,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,gBAAgB;gBACnB,OAAO,UAAU,CAAC,IAAI,CAAC;YAExB,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAE/D,IAAI,gBAAgB;YACnB,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAExB,OAAO,CAAC,CAAC;IACV,CAAC;IAED,+CAA+C;IAC/C,iBAAiB,CAAC,aAA8C;QAC/D,WAAW,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAE5C,MAAM,qBAAqB,GAAG,CAAC,SAA8B,EAAmB,EAAE,CACjF,SAAS,CAAC,cAAc,CAAC,uBAAuB,EAAE;YACjD,gBAAgB,EAAE,CAAC,OAAY,EAAE,EAAE,CAClC,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC;YACjD,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,GAAG,aAAa,CAAC,uBAAuB,KAAK,SAAS,IAAI;gBACzD,uBAAuB,EAAE,aAAa,CAAC,uBAAuB;aAC9D;SACD,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;IAC3D,CAAC;IAGD,0CAA0C;IAC1C,YAAY,CAAC,QAA0B;QACtC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAElC,MAAM,oBAAoB,GAAG,CAAC,SAA8B,EAAkB,EAAE,CAC/E,SAAS,CAAC,cAAc,CAAC,gBAAgB,EAAE;YAC1C,WAAW,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC1E,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI;YACxD,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,QAAQ,CAAC,IAAI;SACxB,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IACzD,CAAC;CACD"}
|
|
@@ -15,7 +15,7 @@ export class WorkerProxyProjection {
|
|
|
15
15
|
#remoteView;
|
|
16
16
|
#logger;
|
|
17
17
|
#messageTypes;
|
|
18
|
-
|
|
18
|
+
viewLocker = new InMemoryLock();
|
|
19
19
|
get remoteProjection() {
|
|
20
20
|
return this.#remoteProjection;
|
|
21
21
|
}
|
|
@@ -49,11 +49,11 @@ export class WorkerProxyProjection {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
async restore(eventStore) {
|
|
52
|
-
if (this
|
|
53
|
-
await this
|
|
52
|
+
if (this.viewLocker)
|
|
53
|
+
await this.viewLocker.lock();
|
|
54
54
|
await this._restore(eventStore);
|
|
55
|
-
if (this
|
|
56
|
-
this
|
|
55
|
+
if (this.viewLocker)
|
|
56
|
+
this.viewLocker.unlock();
|
|
57
57
|
}
|
|
58
58
|
/** Restore view state from not-yet-projected events */
|
|
59
59
|
async _restore(eventStore) {
|
|
@@ -84,13 +84,13 @@ export class WorkerProxyProjection {
|
|
|
84
84
|
await this.#workerInit;
|
|
85
85
|
}
|
|
86
86
|
async project(event) {
|
|
87
|
-
if (!this
|
|
88
|
-
await this.#workerInit;
|
|
89
|
-
if (!this.#viewLocker.ready) {
|
|
87
|
+
if (this.viewLocker && !this.viewLocker.ready) {
|
|
90
88
|
this.#logger?.debug(`view is locked, awaiting until it is ready to process ${describe(event)}`);
|
|
91
|
-
await this
|
|
89
|
+
await this.viewLocker.once('ready');
|
|
92
90
|
this.#logger?.debug(`view is ready, processing ${describe(event)}`);
|
|
93
91
|
}
|
|
92
|
+
if (!this.#worker)
|
|
93
|
+
await this.#workerInit;
|
|
94
94
|
return this.#remoteProjection.project(event);
|
|
95
95
|
}
|
|
96
96
|
async _project(event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK7D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IAKjC,OAAO,CAAU;IACR,WAAW,CAAkB;IAC7B,iBAAiB,CAA8B;IAC/C,WAAW,CAAwB;IACnC,OAAO,CAAW;IAClB,aAAa,CAAW;
|
|
1
|
+
{"version":3,"file":"WorkerProxyProjection.js","sourceRoot":"","sources":["../../../src/workers/WorkerProxyProjection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK7D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IAKjC,OAAO,CAAU;IACR,WAAW,CAAkB;IAC7B,iBAAiB,CAA8B;IAC/C,WAAW,CAAwB;IACnC,OAAO,CAAW;IAClB,aAAa,CAAW;IACjC,UAAU,GAAiB,IAAI,YAAY,EAAE,CAAC;IAE9C,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,YAAY,EACX,gBAAgB,EAChB,YAAY,EACZ,MAAM,EAGN;QACA,YAAY,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACnD,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAEhD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAEjG,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,cAAc,EAAE,CAAC;QAClF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,cAAc,EAAE,CAAC;QAEtE,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,gBAAgB,EAAE;YACjD,cAAc;YACd,QAAQ;SACR,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,OAAO,MAAM,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAElC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAc,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAQ,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,SAAS,CAAC,UAAuB;QAChC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;YAC3B,aAAa,EAAE,IAAI,CAAC,OAAO;YAC3B,YAAY,EAAE,IAAI,CAAC,aAAa;SAChC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA+B;QAC5C,IAAI,IAAI,CAAC,UAAU;YAClB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAE9B,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,UAAU;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,uDAAuD;IAC7C,KAAK,CAAC,QAAQ,CAAC,UAA+B;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO;YAChB,MAAM,IAAI,CAAC,WAAW,CAAC;QAExB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;QAEvE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,gBAAgB,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC;QAEzG,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAElG,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,WAAW,IAAI,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,WAAW,gBAAgB,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC;IAChG,CAAC;IAES,cAAc,GAAG,CAAC,KAAc,EAAE,EAAE;QAC7C,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE;YACnC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;SACjC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEQ,aAAa,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC9C,IAAI,QAAQ,KAAK,CAAC;YACjB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,KAAK,CAAC,iBAAiB;QACtB,MAAM,IAAI,CAAC,WAAW,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa;QAC1B,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,yDAAyD,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,6BAA6B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO;YAChB,MAAM,IAAI,CAAC,WAAW,CAAC;QAExB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAES,KAAK,CAAC,QAAQ,CAAC,KAAa;QACrC,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACN,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;IAC3B,CAAC;CACD"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { ContainerBuilder, type TypeConfig, type ClassOrFactory } from 'di0';
|
|
2
2
|
import { type IAggregateConstructor, type ICommandHandler, type IContainer, type IEventReceptor, type IProjection, type ISagaConstructor } from './interfaces/index.ts';
|
|
3
3
|
export declare class CqrsContainerBuilder<TContainerInterface extends IContainer = IContainer> extends ContainerBuilder<TContainerInterface> {
|
|
4
|
-
constructor(options?:
|
|
5
|
-
types: Readonly<TypeConfig<any>[]>;
|
|
6
|
-
singletones: object;
|
|
7
|
-
});
|
|
4
|
+
constructor(options?: ConstructorParameters<typeof ContainerBuilder>[0]);
|
|
8
5
|
/** Register command handler, which will be subscribed to commandBus upon instance creation */
|
|
9
6
|
registerCommandHandler(typeOrFactory: ClassOrFactory<ICommandHandler, TContainerInterface>): TypeConfig<ICommandHandler, TContainerInterface>;
|
|
10
7
|
/** Register event receptor, which will be subscribed to eventStore upon instance creation */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IEvent, IEventStorageReader, IEventStore, IExtendableLogger, ILogger } from '../interfaces/index.ts';
|
|
1
|
+
import type { IEvent, IEventStorageReader, IEventStore, IExtendableLogger, ILogger, IViewLocker } from '../interfaces/index.ts';
|
|
2
2
|
import type { IProxyProjection, IWorkerProjection, ProxyProjectionParams } from './interfaces/index.ts';
|
|
3
3
|
import * as Comlink from 'comlink';
|
|
4
4
|
/**
|
|
@@ -7,6 +7,7 @@ import * as Comlink from 'comlink';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare class WorkerProxyProjection<TView, TProjection extends IWorkerProjection<TView> = IWorkerProjection<TView>> implements IProxyProjection<TView> {
|
|
9
9
|
#private;
|
|
10
|
+
viewLocker?: IViewLocker;
|
|
10
11
|
get remoteProjection(): Comlink.Remote<TProjection>;
|
|
11
12
|
get view(): Comlink.Remote<TView>;
|
|
12
13
|
constructor({ workerModulePath, messageTypes, logger }: ProxyProjectionParams & {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-cqrs",
|
|
3
|
-
"version": "1.1.0-beta.
|
|
3
|
+
"version": "1.1.0-beta.1",
|
|
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": [
|