node-cqrs 1.0.0-rc.1 → 1.0.0-rc.2
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 +4 -0
- package/dist/AbstractAggregate.js +3 -1
- package/dist/AbstractAggregate.js.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/package.json +1 -1
- package/src/AbstractAggregate.ts +6 -4
- package/src/interfaces.ts +6 -5
- package/.github/workflows/audit.yml +0 -21
- package/.github/workflows/coveralls.yml +0 -25
- package/.github/workflows/publish.yml +0 -35
- package/.github/workflows/tests.yml +0 -25
package/CHANGELOG.md
CHANGED
|
@@ -95,7 +95,9 @@ class AbstractAggregate {
|
|
|
95
95
|
this.restoreSnapshot(event);
|
|
96
96
|
}
|
|
97
97
|
else if (this.state) {
|
|
98
|
-
const handler =
|
|
98
|
+
const handler = 'mutate' in this.state ?
|
|
99
|
+
this.state.mutate :
|
|
100
|
+
(0, utils_1.getHandler)(this.state, event.type);
|
|
99
101
|
if (handler)
|
|
100
102
|
handler.call(this.state, event);
|
|
101
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAggregate.js","sourceRoot":"","sources":["../src/AbstractAggregate.ts"],"names":[],"mappings":";;;AAUA,mCAAqE;AAErE;;GAEG;AACH,SAAS,KAAK,CAAI,GAAM;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAEvC;;GAEG;AACH,MAAsB,iBAAiB;IAEtC;;;;;;;;OAQG;IACH,MAAM,KAAK,OAAO;QACjB,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,GAAG,CAAa;IAChB,QAAQ,GAAa,EAAE,CAAC;IACxB,QAAQ,GAAW,CAAC,CAAC;IACrB,gBAAgB,CAAqB;IAErC,+BAA+B;IACrB,KAAK,
|
|
1
|
+
{"version":3,"file":"AbstractAggregate.js","sourceRoot":"","sources":["../src/AbstractAggregate.ts"],"names":[],"mappings":"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"}
|
package/dist/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;AAqHC,CAAC"}
|
package/package.json
CHANGED
package/src/AbstractAggregate.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IAggregate,
|
|
3
|
-
|
|
3
|
+
IMutableAggregateState,
|
|
4
4
|
ICommand,
|
|
5
5
|
Identifier,
|
|
6
6
|
IEvent,
|
|
@@ -22,7 +22,7 @@ const SNAPSHOT_EVENT_TYPE = 'snapshot';
|
|
|
22
22
|
/**
|
|
23
23
|
* Base class for Aggregate definition
|
|
24
24
|
*/
|
|
25
|
-
export abstract class AbstractAggregate<TState extends
|
|
25
|
+
export abstract class AbstractAggregate<TState extends IMutableAggregateState | object | void> implements IAggregate {
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Optional list of commands handled by Aggregate.
|
|
@@ -43,7 +43,7 @@ export abstract class AbstractAggregate<TState extends IAggregateState|void> imp
|
|
|
43
43
|
#snapshotVersion: number | undefined;
|
|
44
44
|
|
|
45
45
|
/** Internal aggregate state */
|
|
46
|
-
protected state
|
|
46
|
+
protected state: TState;
|
|
47
47
|
|
|
48
48
|
/** Command being handled by aggregate */
|
|
49
49
|
protected command?: ICommand;
|
|
@@ -125,7 +125,9 @@ export abstract class AbstractAggregate<TState extends IAggregateState|void> imp
|
|
|
125
125
|
this.restoreSnapshot(event);
|
|
126
126
|
}
|
|
127
127
|
else if (this.state) {
|
|
128
|
-
const handler =
|
|
128
|
+
const handler = 'mutate' in this.state ?
|
|
129
|
+
this.state.mutate :
|
|
130
|
+
getHandler(this.state, event.type);
|
|
129
131
|
if (handler)
|
|
130
132
|
handler.call(this.state, event);
|
|
131
133
|
}
|
package/src/interfaces.ts
CHANGED
|
@@ -50,10 +50,10 @@ export interface IAggregate {
|
|
|
50
50
|
takeSnapshot(): void;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
export interface
|
|
53
|
+
export interface IMutableAggregateState {
|
|
54
54
|
// schemaVersion?: number;
|
|
55
55
|
// constructor: IAggregateStateConstructor;
|
|
56
|
-
mutate
|
|
56
|
+
mutate(event: IEvent): void;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
// export interface IAggregateStateConstructor extends Function {
|
|
@@ -61,7 +61,7 @@ export interface IAggregateState {
|
|
|
61
61
|
// new(): IAggregateState;
|
|
62
62
|
// }
|
|
63
63
|
|
|
64
|
-
export type IAggregateConstructorParams<TState extends
|
|
64
|
+
export type IAggregateConstructorParams<TState extends IMutableAggregateState | object | void> = {
|
|
65
65
|
/** Unique aggregate identifier */
|
|
66
66
|
id: Identifier,
|
|
67
67
|
|
|
@@ -72,12 +72,13 @@ export type IAggregateConstructorParams<TState extends IAggregateState | void> =
|
|
|
72
72
|
state?: TState
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
export interface IAggregateConstructor<TState extends
|
|
75
|
+
export interface IAggregateConstructor<TState extends IMutableAggregateState | object | void> {
|
|
76
76
|
readonly handles?: string[];
|
|
77
77
|
new(options: IAggregateConstructorParams<TState>): IAggregate;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
export type IAggregateFactory<TState extends
|
|
80
|
+
export type IAggregateFactory<TState extends IMutableAggregateState | object | void> =
|
|
81
|
+
(options: IAggregateConstructorParams<TState>) => IAggregate;
|
|
81
82
|
|
|
82
83
|
export interface ISaga {
|
|
83
84
|
/** Unique Saga ID */
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
name: Audit
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- master
|
|
7
|
-
pull_request:
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
audit:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
strategy:
|
|
13
|
-
matrix:
|
|
14
|
-
node-version: [20.x]
|
|
15
|
-
steps:
|
|
16
|
-
- uses: actions/checkout@v3
|
|
17
|
-
- name: Use Node.js ${{ matrix.node-version }}
|
|
18
|
-
uses: actions/setup-node@v3
|
|
19
|
-
with:
|
|
20
|
-
node-version: ${{ matrix.node-version }}
|
|
21
|
-
- run: npm audit --parseable --production --audit-level=moderate
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
name: Coveralls
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- master
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
test:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
strategy:
|
|
12
|
-
matrix:
|
|
13
|
-
node-version: [20.x]
|
|
14
|
-
steps:
|
|
15
|
-
- uses: actions/checkout@v3
|
|
16
|
-
- name: Use Node.js ${{ matrix.node-version }}
|
|
17
|
-
uses: actions/setup-node@v3
|
|
18
|
-
with:
|
|
19
|
-
node-version: ${{ matrix.node-version }}
|
|
20
|
-
- run: npm ci --no-optional
|
|
21
|
-
env:
|
|
22
|
-
CI: true
|
|
23
|
-
- run: npm run test:coverage
|
|
24
|
-
- name: Coveralls
|
|
25
|
-
uses: coverallsapp/github-action@v2
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
name: Publish to NPM
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- 'v*.*.*'
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
publish:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
|
|
12
|
-
steps:
|
|
13
|
-
- name: Checkout code
|
|
14
|
-
uses: actions/checkout@v3
|
|
15
|
-
|
|
16
|
-
- name: Set up Node.js
|
|
17
|
-
uses: actions/setup-node@v3
|
|
18
|
-
with:
|
|
19
|
-
node-version: '20'
|
|
20
|
-
registry-url: 'https://registry.npmjs.org'
|
|
21
|
-
|
|
22
|
-
- name: Install dependencies
|
|
23
|
-
run: npm ci --no-optional
|
|
24
|
-
|
|
25
|
-
- name: Publish pre-release to NPM
|
|
26
|
-
if: contains(github.ref_name, '-')
|
|
27
|
-
env:
|
|
28
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
29
|
-
run: npm publish --tag next
|
|
30
|
-
|
|
31
|
-
- name: Publish release to NPM
|
|
32
|
-
if: "!contains(github.ref_name, '-')"
|
|
33
|
-
env:
|
|
34
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
35
|
-
run: npm publish
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
name: Tests
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- master
|
|
7
|
-
pull_request:
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
test:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
strategy:
|
|
13
|
-
matrix:
|
|
14
|
-
node-version: [18.x, 20.x, 22.x]
|
|
15
|
-
steps:
|
|
16
|
-
- uses: actions/checkout@v3
|
|
17
|
-
- name: Use Node.js ${{ matrix.node-version }}
|
|
18
|
-
uses: actions/setup-node@v3
|
|
19
|
-
with:
|
|
20
|
-
node-version: ${{ matrix.node-version }}
|
|
21
|
-
- run: npm ci --no-optional
|
|
22
|
-
env:
|
|
23
|
-
CI: true
|
|
24
|
-
- run: npm run test
|
|
25
|
-
- run: npm run test:integration
|