@cratis/chronicle 6.12.0 → 6.14.0
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/EventStore.ts +4 -0
- package/IEventStore.ts +7 -0
- package/dist/EventStore.d.ts +2 -0
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +3 -0
- package/dist/EventStore.js.map +1 -1
- package/dist/IEventStore.d.ts +6 -0
- package/dist/IEventStore.d.ts.map +1 -1
- package/dist/observation/IObservers.d.ts +28 -0
- package/dist/observation/IObservers.d.ts.map +1 -0
- package/dist/observation/IObservers.js +4 -0
- package/dist/observation/IObservers.js.map +1 -0
- package/dist/observation/ObserverInformation.d.ts +24 -0
- package/dist/observation/ObserverInformation.d.ts.map +1 -0
- package/dist/observation/ObserverInformation.js +4 -0
- package/dist/observation/ObserverInformation.js.map +1 -0
- package/dist/observation/ObserverRemovalOutcome.d.ts +14 -0
- package/dist/observation/ObserverRemovalOutcome.d.ts.map +1 -0
- package/dist/observation/ObserverRemovalOutcome.js +17 -0
- package/dist/observation/ObserverRemovalOutcome.js.map +1 -0
- package/dist/observation/ObserverRemovalResult.d.ts +17 -0
- package/dist/observation/ObserverRemovalResult.d.ts.map +1 -0
- package/dist/observation/ObserverRemovalResult.js +4 -0
- package/dist/observation/ObserverRemovalResult.js.map +1 -0
- package/dist/observation/ObserverType.d.ts +16 -0
- package/dist/observation/ObserverType.d.ts.map +1 -0
- package/dist/observation/ObserverType.js +19 -0
- package/dist/observation/ObserverType.js.map +1 -0
- package/dist/observation/Observers.d.ts +24 -0
- package/dist/observation/Observers.d.ts.map +1 -0
- package/dist/observation/Observers.js +43 -0
- package/dist/observation/Observers.js.map +1 -0
- package/dist/observation/index.d.ts +8 -0
- package/dist/observation/index.d.ts.map +1 -1
- package/dist/observation/index.js +5 -0
- package/dist/observation/index.js.map +1 -1
- package/dist/observation/toObserverInformation.d.ts +16 -0
- package/dist/observation/toObserverInformation.d.ts.map +1 -0
- package/dist/observation/toObserverInformation.js +43 -0
- package/dist/observation/toObserverInformation.js.map +1 -0
- package/dist/observation/toObserverRemovalResult.d.ts +16 -0
- package/dist/observation/toObserverRemovalResult.d.ts.map +1 -0
- package/dist/observation/toObserverRemovalResult.js +37 -0
- package/dist/observation/toObserverRemovalResult.js.map +1 -0
- package/dist/reducers/ReducerEventDispatcher.d.ts +14 -0
- package/dist/reducers/ReducerEventDispatcher.d.ts.map +1 -0
- package/dist/reducers/ReducerEventDispatcher.js +35 -0
- package/dist/reducers/ReducerEventDispatcher.js.map +1 -0
- package/dist/reducers/ReducerEventHandler.d.ts +7 -0
- package/dist/reducers/ReducerEventHandler.d.ts.map +1 -0
- package/dist/reducers/ReducerEventHandler.js +4 -0
- package/dist/reducers/ReducerEventHandler.js.map +1 -0
- package/dist/reducers/Reducers.d.ts +0 -1
- package/dist/reducers/Reducers.d.ts.map +1 -1
- package/dist/reducers/Reducers.js +11 -30
- package/dist/reducers/Reducers.js.map +1 -1
- package/dist/testing/ReadModelScenario.d.ts +33 -0
- package/dist/testing/ReadModelScenario.d.ts.map +1 -0
- package/dist/testing/ReadModelScenario.js +137 -0
- package/dist/testing/ReadModelScenario.js.map +1 -0
- package/dist/testing/ReadModelScenarioGiven.d.ts +11 -0
- package/dist/testing/ReadModelScenarioGiven.d.ts.map +1 -0
- package/dist/testing/ReadModelScenarioGiven.js +18 -0
- package/dist/testing/ReadModelScenarioGiven.js.map +1 -0
- package/dist/testing/ReadModelScenarioGivenBuilder.d.ts +10 -0
- package/dist/testing/ReadModelScenarioGivenBuilder.d.ts.map +1 -0
- package/dist/testing/ReadModelScenarioGivenBuilder.js +15 -0
- package/dist/testing/ReadModelScenarioGivenBuilder.js.map +1 -0
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +6 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/observation/IObservers.ts +32 -0
- package/observation/ObserverInformation.ts +33 -0
- package/observation/ObserverRemovalOutcome.ts +19 -0
- package/observation/ObserverRemovalResult.ts +22 -0
- package/observation/ObserverType.ts +22 -0
- package/observation/Observers.spec.ts +115 -0
- package/observation/Observers.ts +49 -0
- package/observation/index.ts +8 -0
- package/observation/toObserverInformation.ts +46 -0
- package/observation/toObserverRemovalResult.ts +40 -0
- package/package.json +7 -2
- package/reducers/ReducerEventDispatcher.ts +47 -0
- package/reducers/ReducerEventHandler.ts +9 -0
- package/reducers/Reducers.ts +13 -42
- package/testing/ReadModelScenario.example.ts +29 -0
- package/testing/ReadModelScenario.spec.ts +191 -0
- package/testing/ReadModelScenario.ts +151 -0
- package/testing/ReadModelScenarioGiven.ts +16 -0
- package/testing/ReadModelScenarioGivenBuilder.ts +15 -0
- package/testing/index.ts +6 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
import { ObserverRemovalOutcome as ContractObserverRemovalOutcome } from '@cratis/chronicle.contracts';
|
|
4
|
+
import { ObserverRemovalOutcome } from './ObserverRemovalOutcome.js';
|
|
5
|
+
/**
|
|
6
|
+
* Converts a wire {@link ContractObserverRemovalOutcome} into the client {@link ObserverRemovalOutcome}.
|
|
7
|
+
* @param outcome - The wire outcome to convert.
|
|
8
|
+
* @returns The converted client outcome.
|
|
9
|
+
*/
|
|
10
|
+
export function toObserverRemovalOutcome(outcome) {
|
|
11
|
+
switch (outcome) {
|
|
12
|
+
case ContractObserverRemovalOutcome.Removed:
|
|
13
|
+
return ObserverRemovalOutcome.Removed;
|
|
14
|
+
case ContractObserverRemovalOutcome.ObserverNotFound:
|
|
15
|
+
return ObserverRemovalOutcome.ObserverNotFound;
|
|
16
|
+
case ContractObserverRemovalOutcome.ObserverActive:
|
|
17
|
+
return ObserverRemovalOutcome.ObserverActive;
|
|
18
|
+
case ContractObserverRemovalOutcome.ObserverSubscribed:
|
|
19
|
+
return ObserverRemovalOutcome.ObserverSubscribed;
|
|
20
|
+
default:
|
|
21
|
+
throw new Error(`Unknown observer removal outcome: ${outcome}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Converts a wire {@link RemoveObserverResponse} into the client {@link ObserverRemovalResult}.
|
|
26
|
+
* @param response - The wire response to convert.
|
|
27
|
+
* @returns The converted client removal result.
|
|
28
|
+
*/
|
|
29
|
+
export function toObserverRemovalResult(response) {
|
|
30
|
+
const outcome = toObserverRemovalOutcome(response.Outcome);
|
|
31
|
+
return {
|
|
32
|
+
outcome,
|
|
33
|
+
blockingNamespace: response.BlockingNamespace ?? '',
|
|
34
|
+
isRemoved: outcome === ObserverRemovalOutcome.Removed
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=toObserverRemovalResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toObserverRemovalResult.js","sourceRoot":"","sources":["../../observation/toObserverRemovalResult.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,sBAAsB,IAAI,8BAA8B,EAA0B,MAAM,6BAA6B,CAAC;AAC/H,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAuC;IAC5E,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,8BAA8B,CAAC,OAAO;YACvC,OAAO,sBAAsB,CAAC,OAAO,CAAC;QAC1C,KAAK,8BAA8B,CAAC,gBAAgB;YAChD,OAAO,sBAAsB,CAAC,gBAAgB,CAAC;QACnD,KAAK,8BAA8B,CAAC,cAAc;YAC9C,OAAO,sBAAsB,CAAC,cAAc,CAAC;QACjD,KAAK,8BAA8B,CAAC,kBAAkB;YAClD,OAAO,sBAAsB,CAAC,kBAAkB,CAAC;QACrD;YACI,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgC;IACpE,MAAM,OAAO,GAAG,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3D,OAAO;QACH,OAAO;QACP,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,EAAE;QACnD,SAAS,EAAE,OAAO,KAAK,sBAAsB,CAAC,OAAO;KACxD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Constructor } from '@cratis/fundamentals';
|
|
2
|
+
import type { EventContext } from '../events/EventContext.js';
|
|
3
|
+
import type { ReducerEventHandler } from './ReducerEventHandler.js';
|
|
4
|
+
/** Selects and invokes the same reducer handlers for kernel deliveries and in-process scenarios. */
|
|
5
|
+
export declare class ReducerEventDispatcher {
|
|
6
|
+
readonly handlers: ReducerEventHandler[];
|
|
7
|
+
/** Discovers event methods from the artifact event types. */
|
|
8
|
+
constructor(reducerType: Constructor, eventTypes: readonly Constructor[]);
|
|
9
|
+
/** Resolves a registered event type, or returns undefined for an unsubscribed event. */
|
|
10
|
+
handlerFor(eventTypeId: string): ReducerEventHandler | undefined;
|
|
11
|
+
/** Calls the selected handler with the event, current state, and context. */
|
|
12
|
+
invoke(instance: Record<string, Function>, handler: ReducerEventHandler, event: unknown, currentState: unknown, context: EventContext): Promise<unknown>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ReducerEventDispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReducerEventDispatcher.d.ts","sourceRoot":"","sources":["../../reducers/ReducerEventDispatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,oGAAoG;AACpG,qBAAa,sBAAsB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAEzC,6DAA6D;IAC7D,YAAY,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,WAAW,EAAE,EAgBvE;IAED,wFAAwF;IACxF,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE/D;IAED,6EAA6E;IACvE,MAAM,CACR,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,OAAO,CAAC,CAElB;CACJ"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
import { getEventTypeMetadata } from '../events/eventTypeDecorator.js';
|
|
4
|
+
/** Selects and invokes the same reducer handlers for kernel deliveries and in-process scenarios. */
|
|
5
|
+
export class ReducerEventDispatcher {
|
|
6
|
+
handlers;
|
|
7
|
+
/** Discovers event methods from the artifact event types. */
|
|
8
|
+
constructor(reducerType, eventTypes) {
|
|
9
|
+
const proto = reducerType.prototype;
|
|
10
|
+
this.handlers = [];
|
|
11
|
+
for (const eventTypeClass of eventTypes) {
|
|
12
|
+
const metadata = getEventTypeMetadata(eventTypeClass);
|
|
13
|
+
if (!metadata)
|
|
14
|
+
continue;
|
|
15
|
+
const className = eventTypeClass.name;
|
|
16
|
+
const methodName = className.charAt(0).toLowerCase() + className.slice(1);
|
|
17
|
+
if (typeof proto[methodName] === 'function') {
|
|
18
|
+
this.handlers.push({
|
|
19
|
+
id: metadata.eventType.id.value,
|
|
20
|
+
generation: metadata.eventType.generation.value,
|
|
21
|
+
methodName
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** Resolves a registered event type, or returns undefined for an unsubscribed event. */
|
|
27
|
+
handlerFor(eventTypeId) {
|
|
28
|
+
return this.handlers.find(handler => handler.id === eventTypeId);
|
|
29
|
+
}
|
|
30
|
+
/** Calls the selected handler with the event, current state, and context. */
|
|
31
|
+
async invoke(instance, handler, event, currentState, context) {
|
|
32
|
+
return await instance[handler.methodName](event, currentState, context);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ReducerEventDispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReducerEventDispatcher.js","sourceRoot":"","sources":["../../reducers/ReducerEventDispatcher.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAIvE,oGAAoG;AACpG,MAAM,OAAO,sBAAsB;IACtB,QAAQ,CAAwB;IAEzC,6DAA6D;IAC7D,YAAY,WAAwB,EAAE,UAAkC;QACpE,MAAM,KAAK,GAAG,WAAW,CAAC,SAAoC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,cAAc,IAAI,UAAU,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,SAAS,GAAI,cAA2B,CAAC,IAAI,CAAC;YACpD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1E,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE,CAAC;gBAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACf,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK;oBAC/B,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK;oBAC/C,UAAU;iBACb,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED,wFAAwF;IACxF,UAAU,CAAC,WAAmB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,MAAM,CACR,QAAkC,EAClC,OAA4B,EAC5B,KAAc,EACd,YAAqB,EACrB,OAAqB;QAErB,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAY,CAAC;IACvF,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReducerEventHandler.d.ts","sourceRoot":"","sources":["../../reducers/ReducerEventHandler.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReducerEventHandler.js","sourceRoot":"","sources":["../../reducers/ReducerEventHandler.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reducers.d.ts","sourceRoot":"","sources":["../../reducers/Reducers.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAI1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"Reducers.d.ts","sourceRoot":"","sources":["../../reducers/Reducers.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAI1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAM3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAyE3C;;;GAGG;AACH,qBAAa,QAAS,YAAW,SAAS;IAsBlC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IA1BvC,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAEjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2E;IACnG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiD;IACzE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;IACpE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;;OAQG;IACH,YACqB,gBAAgB,EAAE,wBAAwB,EAC1C,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EACnC,SAAS,EAAE,mBAAmB,EACb,kBAAkB,EAAE,MAAM,EAQ9C;IAED,yEAAyE;IACzE,OAAO,IAAI,IAAI,CAId;IAED,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAS9B;IAED,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAmB9B;YAEa,kBAAkB;IAgChC,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,gBAAgB;YAkBV,cAAc;IAgB5B;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,6BAA6B;YASvB,cAAc;IAiJ5B,OAAO,CAAC,aAAa;CAMxB"}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
import 'reflect-metadata';
|
|
4
4
|
import { diag } from '@opentelemetry/api';
|
|
5
5
|
import { ObservationState, ReadModelObserverType } from '@cratis/chronicle.contracts';
|
|
6
|
-
import { getEventTypeMetadata } from '../events/eventTypeDecorator.js';
|
|
7
6
|
import { toClientEventContext } from '../events/toClientEventContext.js';
|
|
8
7
|
import { getTagsFor } from '../events/tagDecorator.js';
|
|
9
8
|
import { getFilterTagsFor } from '../events/filterEventsByTagDecorator.js';
|
|
10
9
|
import { EventSequenceId } from '../eventSequences/EventSequenceId.js';
|
|
11
10
|
import { notifyReplayLifecycle } from '../observation/notifyReplayLifecycle.js';
|
|
12
11
|
import { getReducerMetadata } from './reducer.js';
|
|
12
|
+
import { ReducerEventDispatcher } from './ReducerEventDispatcher.js';
|
|
13
13
|
import { getReadModelMetadata } from '../readModels/index.js';
|
|
14
14
|
import { getReadModelId } from '../readModels/readModel.js';
|
|
15
15
|
import { buildReadModelDefinition } from '../readModels/buildReadModelDefinition.js';
|
|
@@ -203,20 +203,20 @@ export class Reducers {
|
|
|
203
203
|
return;
|
|
204
204
|
const metadata = getReducerMetadata(reducerType);
|
|
205
205
|
const eventSequenceId = metadata.eventSequenceId ?? EventSequenceId.eventLog.value;
|
|
206
|
-
const
|
|
206
|
+
const dispatcher = new ReducerEventDispatcher(reducerType, this._clientArtifacts.eventTypes);
|
|
207
207
|
const readModelName = this.getReducerReadModelIdentifier(reducerType);
|
|
208
208
|
this._logger.info('Starting reducer observation', {
|
|
209
209
|
reducerId: id,
|
|
210
210
|
eventSequenceId,
|
|
211
211
|
readModel: readModelName,
|
|
212
|
-
handlerCount:
|
|
213
|
-
handlers:
|
|
212
|
+
handlerCount: dispatcher.handlers.length,
|
|
213
|
+
handlers: dispatcher.handlers.map(e => e.methodName)
|
|
214
214
|
});
|
|
215
|
-
void this.runObservation(id, reducerType, eventSequenceId,
|
|
215
|
+
void this.runObservation(id, reducerType, eventSequenceId, readModelName, dispatcher);
|
|
216
216
|
}
|
|
217
|
-
async runObservation(id, reducerType, eventSequenceId,
|
|
217
|
+
async runObservation(id, reducerType, eventSequenceId, readModelName, dispatcher) {
|
|
218
218
|
try {
|
|
219
|
-
await this.observeReducer(id, reducerType, eventSequenceId,
|
|
219
|
+
await this.observeReducer(id, reducerType, eventSequenceId, readModelName, dispatcher);
|
|
220
220
|
}
|
|
221
221
|
catch (error) {
|
|
222
222
|
this._logger.error('Reducer observation loop exited with error', { reducerId: id, error: String(error) });
|
|
@@ -255,7 +255,7 @@ export class Reducers {
|
|
|
255
255
|
}
|
|
256
256
|
return reducerType.name;
|
|
257
257
|
}
|
|
258
|
-
async observeReducer(id, reducerType, eventSequenceId,
|
|
258
|
+
async observeReducer(id, reducerType, eventSequenceId, readModelName, dispatcher) {
|
|
259
259
|
const queue = new AsyncQueue();
|
|
260
260
|
const controller = new AbortController();
|
|
261
261
|
this._queues.set(id, queue);
|
|
@@ -270,7 +270,7 @@ export class Reducers {
|
|
|
270
270
|
Reducer: {
|
|
271
271
|
ReducerId: id,
|
|
272
272
|
EventSequenceId: eventSequenceId,
|
|
273
|
-
EventTypes:
|
|
273
|
+
EventTypes: dispatcher.handlers.map(et => ({
|
|
274
274
|
EventType: { Id: et.id, Generation: et.generation, Tombstone: false },
|
|
275
275
|
Key: EVENT_SOURCE_ID_KEY
|
|
276
276
|
})),
|
|
@@ -322,7 +322,7 @@ export class Reducers {
|
|
|
322
322
|
this._logger.warn('Event missing event type context', { reducerId: id });
|
|
323
323
|
continue;
|
|
324
324
|
}
|
|
325
|
-
const entry =
|
|
325
|
+
const entry = dispatcher.handlerFor(eventTypeId);
|
|
326
326
|
if (!entry) {
|
|
327
327
|
this._logger.debug('No handler registered for event type — skipping', { reducerId: id, eventTypeId });
|
|
328
328
|
lastSuccessfullyObservedEvent = event.Context.SequenceNumber;
|
|
@@ -337,7 +337,7 @@ export class Reducers {
|
|
|
337
337
|
eventTypeId,
|
|
338
338
|
hasState: currentState !== undefined
|
|
339
339
|
});
|
|
340
|
-
currentState = await reducerInstance
|
|
340
|
+
currentState = await dispatcher.invoke(reducerInstance, entry, content, currentState, context);
|
|
341
341
|
lastSuccessfullyObservedEvent = event.Context.SequenceNumber;
|
|
342
342
|
}
|
|
343
343
|
catch (err) {
|
|
@@ -385,25 +385,6 @@ export class Reducers {
|
|
|
385
385
|
queue.complete();
|
|
386
386
|
}
|
|
387
387
|
}
|
|
388
|
-
getEventTypesFor(reducerType) {
|
|
389
|
-
const proto = reducerType.prototype;
|
|
390
|
-
const entries = [];
|
|
391
|
-
for (const eventTypeClass of this._clientArtifacts.eventTypes) {
|
|
392
|
-
const eventTypeMeta = getEventTypeMetadata(eventTypeClass);
|
|
393
|
-
if (!eventTypeMeta)
|
|
394
|
-
continue;
|
|
395
|
-
const className = eventTypeClass.name;
|
|
396
|
-
const methodName = className.charAt(0).toLowerCase() + className.slice(1);
|
|
397
|
-
if (typeof proto[methodName] === 'function') {
|
|
398
|
-
entries.push({
|
|
399
|
-
id: eventTypeMeta.eventType.id.value,
|
|
400
|
-
generation: eventTypeMeta.eventType.generation.value,
|
|
401
|
-
methodName
|
|
402
|
-
});
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
return entries;
|
|
406
|
-
}
|
|
407
388
|
disconnectAll() {
|
|
408
389
|
for (const controller of this._observations.values())
|
|
409
390
|
controller.abort();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reducers.js","sourceRoot":"","sources":["../../reducers/Reducers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Reducers.js","sourceRoot":"","sources":["../../reducers/Reducers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { Constructor } from '@cratis/fundamentals';
|
|
3
|
+
import type { IClientArtifactsProvider } from '../artifacts/IClientArtifactsProvider.js';
|
|
4
|
+
import { ReadModelScenarioGivenBuilder } from './ReadModelScenarioGivenBuilder.js';
|
|
5
|
+
type ScenarioArtifacts = Pick<IClientArtifactsProvider, 'reducers' | 'eventTypes' | 'projections'>;
|
|
6
|
+
/**
|
|
7
|
+
* Folds seeded events through a reducer in-process, without a Chronicle kernel.
|
|
8
|
+
* Projections, observer scheduling, storage, migrations, and compliance are not simulated.
|
|
9
|
+
* Supply an artifact catalog to isolate a scenario from process-wide decorator discovery.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ReadModelScenario<TReadModel extends object> {
|
|
12
|
+
private readonly _readModelType;
|
|
13
|
+
private readonly _reducerType;
|
|
14
|
+
private readonly _dispatcher;
|
|
15
|
+
private readonly _events;
|
|
16
|
+
private _results;
|
|
17
|
+
/** Selects the reducer associated with the read model type. */
|
|
18
|
+
constructor(readModelType: Constructor<TReadModel>, artifacts?: ScenarioArtifacts);
|
|
19
|
+
/** Fluent entry point for event history. */
|
|
20
|
+
get given(): ReadModelScenarioGivenBuilder<TReadModel>;
|
|
21
|
+
/** Returns the sole materialized model, or null when no model exists. */
|
|
22
|
+
get instance(): Promise<TReadModel | null>;
|
|
23
|
+
/** Returns the model for one source, or null if no handler created it or it was deleted. */
|
|
24
|
+
instanceForEventSourceId(id: string): Promise<TReadModel | null>;
|
|
25
|
+
/** Distinguishes a model removed by a reducer from one never created. */
|
|
26
|
+
wasDeletedForEventSourceId(id: string): Promise<boolean>;
|
|
27
|
+
/** Collects events for a source; subsequent reads replay the complete seeded history. */
|
|
28
|
+
collectEventsFor(id: string, events: readonly object[]): void;
|
|
29
|
+
private process;
|
|
30
|
+
private reduce;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=ReadModelScenario.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadModelScenario.d.ts","sourceRoot":"","sources":["../../testing/ReadModelScenario.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAczF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,KAAK,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;AAKnG;;;;GAIG;AACH,qBAAa,iBAAiB,CAAC,UAAU,SAAS,MAAM;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAA6D;IAE7E,+DAA+D;IAC/D,YAAY,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,iBAAiB,EAwBhF;IAED,4CAA4C;IAC5C,IAAI,KAAK,IAAI,6BAA6B,CAAC,UAAU,CAAC,CAErD;IAED,yEAAyE;IACzE,IAAI,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAQzC;IAED,4FAA4F;IACtF,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAErE;IAED,yEAAyE;IACnE,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7D;IAED,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CA0B5D;IAED,OAAO,CAAC,OAAO;YAQD,MAAM;CAqBvB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
import 'reflect-metadata';
|
|
4
|
+
import { JsonSerializer } from '@cratis/fundamentals';
|
|
5
|
+
import { getEventTypeMetadata } from '../events/eventTypeDecorator.js';
|
|
6
|
+
import { getFromEventMetadata } from '../projections/modelBound/fromEvent.js';
|
|
7
|
+
import { getRemovedWithClassMetadata } from '../projections/modelBound/removedWith.js';
|
|
8
|
+
import { getRemovedWithJoinClassMetadata } from '../projections/modelBound/removedWithJoin.js';
|
|
9
|
+
import { getClearWithClassMetadata } from '../projections/modelBound/clearWith.js';
|
|
10
|
+
import { getVariantOfMetadata } from '../projections/modelBound/variantOf.js';
|
|
11
|
+
import { getEntersOnMetadata } from '../projections/modelBound/entersOn.js';
|
|
12
|
+
import { getProjectionMetadata } from '../projections/declarative/projection.js';
|
|
13
|
+
import { getReducerMetadata } from '../reducers/reducer.js';
|
|
14
|
+
import { ReducerEventDispatcher } from '../reducers/ReducerEventDispatcher.js';
|
|
15
|
+
import { DecoratorType } from '../types/DecoratorType.js';
|
|
16
|
+
import { hasModelBoundProperties, TypeDiscoverer } from '../types/TypeDiscoverer.js';
|
|
17
|
+
import { ReadModelScenarioGivenBuilder } from './ReadModelScenarioGivenBuilder.js';
|
|
18
|
+
/**
|
|
19
|
+
* Folds seeded events through a reducer in-process, without a Chronicle kernel.
|
|
20
|
+
* Projections, observer scheduling, storage, migrations, and compliance are not simulated.
|
|
21
|
+
* Supply an artifact catalog to isolate a scenario from process-wide decorator discovery.
|
|
22
|
+
*/
|
|
23
|
+
export class ReadModelScenario {
|
|
24
|
+
_readModelType;
|
|
25
|
+
_reducerType;
|
|
26
|
+
_dispatcher;
|
|
27
|
+
_events = [];
|
|
28
|
+
_results;
|
|
29
|
+
/** Selects the reducer associated with the read model type. */
|
|
30
|
+
constructor(readModelType, artifacts) {
|
|
31
|
+
this._readModelType = readModelType;
|
|
32
|
+
const registered = artifacts ?? {
|
|
33
|
+
reducers: TypeDiscoverer.default.getTypesByDecoratorType(DecoratorType.Reducer),
|
|
34
|
+
eventTypes: TypeDiscoverer.default.getTypesByDecoratorType(DecoratorType.EventType),
|
|
35
|
+
projections: TypeDiscoverer.default.getTypesByDecoratorType(DecoratorType.Projection)
|
|
36
|
+
};
|
|
37
|
+
const reducerTypes = registered.reducers.filter(type => getReducerMetadata(type)?.readModel === readModelType);
|
|
38
|
+
if (reducerTypes.length > 1) {
|
|
39
|
+
throw new Error(`Multiple reducers found for read model '${readModelType.name}'.`);
|
|
40
|
+
}
|
|
41
|
+
if (reducerTypes.length === 0) {
|
|
42
|
+
const projected = getFromEventMetadata(readModelType).length > 0 || hasModelBoundProperties(readModelType) ||
|
|
43
|
+
getRemovedWithClassMetadata(readModelType).length > 0 || getRemovedWithJoinClassMetadata(readModelType).length > 0 ||
|
|
44
|
+
getClearWithClassMetadata(readModelType).length > 0 || getVariantOfMetadata(readModelType) !== undefined ||
|
|
45
|
+
getEntersOnMetadata(readModelType).length > 0 ||
|
|
46
|
+
registered.projections.some(type => getProjectionMetadata(type)?.readModelType === readModelType);
|
|
47
|
+
if (projected) {
|
|
48
|
+
throw new Error(`Projection-backed read model '${readModelType.name}' is not supported yet; use a kernel-backed test.`);
|
|
49
|
+
}
|
|
50
|
+
throw new Error(`No reducer found for read model '${readModelType.name}'. Pass the read model type to @reducer; projections are not supported yet (use a kernel-backed test).`);
|
|
51
|
+
}
|
|
52
|
+
this._reducerType = reducerTypes[0];
|
|
53
|
+
this._dispatcher = new ReducerEventDispatcher(this._reducerType, registered.eventTypes);
|
|
54
|
+
}
|
|
55
|
+
/** Fluent entry point for event history. */
|
|
56
|
+
get given() {
|
|
57
|
+
return new ReadModelScenarioGivenBuilder(this);
|
|
58
|
+
}
|
|
59
|
+
/** Returns the sole materialized model, or null when no model exists. */
|
|
60
|
+
get instance() {
|
|
61
|
+
return this.process().then(results => {
|
|
62
|
+
const materialized = [...results.values()].filter(result => result.instance !== null);
|
|
63
|
+
if (materialized.length > 1) {
|
|
64
|
+
throw new Error('Multiple read model instances materialized; use instanceForEventSourceId(id).');
|
|
65
|
+
}
|
|
66
|
+
return materialized[0]?.instance ?? null;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/** Returns the model for one source, or null if no handler created it or it was deleted. */
|
|
70
|
+
async instanceForEventSourceId(id) {
|
|
71
|
+
return (await this.process()).get(id)?.instance ?? null;
|
|
72
|
+
}
|
|
73
|
+
/** Distinguishes a model removed by a reducer from one never created. */
|
|
74
|
+
async wasDeletedForEventSourceId(id) {
|
|
75
|
+
return (await this.process()).get(id)?.deleted ?? false;
|
|
76
|
+
}
|
|
77
|
+
/** Collects events for a source; subsequent reads replay the complete seeded history. */
|
|
78
|
+
collectEventsFor(id, events) {
|
|
79
|
+
for (const event of events) {
|
|
80
|
+
const metadata = getEventTypeMetadata(event.constructor);
|
|
81
|
+
if (!metadata)
|
|
82
|
+
throw new Error(`Event '${event.constructor.name}' has no @eventType metadata.`);
|
|
83
|
+
// The kernel delivers JSON objects, not instances of decorated event classes.
|
|
84
|
+
const content = JSON.parse(JsonSerializer.serialize(event));
|
|
85
|
+
this._events.push({
|
|
86
|
+
sourceId: id,
|
|
87
|
+
content,
|
|
88
|
+
context: {
|
|
89
|
+
eventSourceId: id,
|
|
90
|
+
eventSourceType: 'Default',
|
|
91
|
+
eventStreamType: 'All',
|
|
92
|
+
eventStreamId: 'Default',
|
|
93
|
+
eventStore: '[NotSet]',
|
|
94
|
+
namespace: '[NotSet]',
|
|
95
|
+
sequenceNumber: BigInt(this._events.length),
|
|
96
|
+
eventType: metadata.eventType,
|
|
97
|
+
occurred: new Date(),
|
|
98
|
+
correlationId: '00000000-0000-0000-0000-000000000000',
|
|
99
|
+
causation: [],
|
|
100
|
+
tags: []
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
this._results = undefined;
|
|
105
|
+
}
|
|
106
|
+
process() {
|
|
107
|
+
if (!this._results) {
|
|
108
|
+
const events = [...this._events];
|
|
109
|
+
this._results = this.reduce(events);
|
|
110
|
+
}
|
|
111
|
+
return this._results;
|
|
112
|
+
}
|
|
113
|
+
async reduce(events) {
|
|
114
|
+
const results = new Map();
|
|
115
|
+
const reducer = new this._reducerType();
|
|
116
|
+
for (const event of events) {
|
|
117
|
+
const handler = this._dispatcher.handlerFor(event.context.eventType.id.value);
|
|
118
|
+
if (!handler)
|
|
119
|
+
continue;
|
|
120
|
+
const prior = results.get(event.sourceId);
|
|
121
|
+
const previous = prior?.deleted ? undefined : prior?.instance;
|
|
122
|
+
let next;
|
|
123
|
+
try {
|
|
124
|
+
next = await this._dispatcher.invoke(reducer, handler, event.content, previous, event.context);
|
|
125
|
+
}
|
|
126
|
+
catch (cause) {
|
|
127
|
+
throw new Error(`Reducer '${this._reducerType.name}' for read model '${this._readModelType.name}' failed`, { cause });
|
|
128
|
+
}
|
|
129
|
+
results.set(event.sourceId, {
|
|
130
|
+
instance: next === undefined ? null : next,
|
|
131
|
+
deleted: next === undefined
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return results;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=ReadModelScenario.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadModelScenario.js","sourceRoot":"","sources":["../../testing/ReadModelScenario.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ReadModelScenario } from './ReadModelScenario.js';
|
|
2
|
+
/** Seeds events belonging to one event source, in the order provided. */
|
|
3
|
+
export declare class ReadModelScenarioGiven<TReadModel extends object> {
|
|
4
|
+
private readonly _scenario;
|
|
5
|
+
private readonly _eventSourceId;
|
|
6
|
+
/** Creates a builder for the selected event source. */
|
|
7
|
+
constructor(_scenario: ReadModelScenario<TReadModel>, _eventSourceId: string);
|
|
8
|
+
/** Adds events to the scenario without connecting to a Chronicle kernel. */
|
|
9
|
+
events(...events: object[]): ReadModelScenario<TReadModel>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=ReadModelScenarioGiven.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadModelScenarioGiven.d.ts","sourceRoot":"","sources":["../../testing/ReadModelScenarioGiven.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,yEAAyE;AACzE,qBAAa,sBAAsB,CAAC,UAAU,SAAS,MAAM;IAE7C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAiC,OAAO,CAAC,QAAQ,CAAC,cAAc;IADtG,uDAAuD;IACvD,YAA6B,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAmB,cAAc,EAAE,MAAM,EAAI;IAElH,4EAA4E;IAC5E,MAAM,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAGzD;CACJ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
/** Seeds events belonging to one event source, in the order provided. */
|
|
4
|
+
export class ReadModelScenarioGiven {
|
|
5
|
+
_scenario;
|
|
6
|
+
_eventSourceId;
|
|
7
|
+
/** Creates a builder for the selected event source. */
|
|
8
|
+
constructor(_scenario, _eventSourceId) {
|
|
9
|
+
this._scenario = _scenario;
|
|
10
|
+
this._eventSourceId = _eventSourceId;
|
|
11
|
+
}
|
|
12
|
+
/** Adds events to the scenario without connecting to a Chronicle kernel. */
|
|
13
|
+
events(...events) {
|
|
14
|
+
this._scenario.collectEventsFor(this._eventSourceId, events);
|
|
15
|
+
return this._scenario;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ReadModelScenarioGiven.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadModelScenarioGiven.js","sourceRoot":"","sources":["../../testing/ReadModelScenarioGiven.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAIrG,yEAAyE;AACzE,MAAM,OAAO,sBAAsB;IAEF,SAAS;IAAkD,cAAc;IADtG,uDAAuD;IACvD,YAA6B,SAAwC,EAAmB,cAAsB;yBAAjF,SAAS;8BAAkD,cAAc;IAAW,CAAC;IAElH,4EAA4E;IAC5E,MAAM,CAAC,GAAG,MAAgB;QACtB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReadModelScenario } from './ReadModelScenario.js';
|
|
2
|
+
import { ReadModelScenarioGiven } from './ReadModelScenarioGiven.js';
|
|
3
|
+
/** Selects the event source for events seeded into a read model scenario. */
|
|
4
|
+
export declare class ReadModelScenarioGivenBuilder<TReadModel extends object> {
|
|
5
|
+
private readonly _scenario;
|
|
6
|
+
constructor(_scenario: ReadModelScenario<TReadModel>);
|
|
7
|
+
/** Creates a builder for the selected event source. */
|
|
8
|
+
forEventSource(id: string): ReadModelScenarioGiven<TReadModel>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ReadModelScenarioGivenBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadModelScenarioGivenBuilder.d.ts","sourceRoot":"","sources":["../../testing/ReadModelScenarioGivenBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,6EAA6E;AAC7E,qBAAa,6BAA6B,CAAC,UAAU,SAAS,MAAM;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAtC,YAA6B,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAI;IAEzE,uDAAuD;IACvD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAE7D;CACJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
import { ReadModelScenarioGiven } from './ReadModelScenarioGiven.js';
|
|
4
|
+
/** Selects the event source for events seeded into a read model scenario. */
|
|
5
|
+
export class ReadModelScenarioGivenBuilder {
|
|
6
|
+
_scenario;
|
|
7
|
+
constructor(_scenario) {
|
|
8
|
+
this._scenario = _scenario;
|
|
9
|
+
}
|
|
10
|
+
/** Creates a builder for the selected event source. */
|
|
11
|
+
forEventSource(id) {
|
|
12
|
+
return new ReadModelScenarioGiven(this._scenario, id);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ReadModelScenarioGivenBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadModelScenarioGivenBuilder.js","sourceRoot":"","sources":["../../testing/ReadModelScenarioGivenBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,6EAA6E;AAC7E,MAAM,OAAO,6BAA6B;IACT,SAAS;IAAtC,YAA6B,SAAwC;yBAAxC,SAAS;IAAkC,CAAC;IAEzE,uDAAuD;IACvD,cAAc,CAAC,EAAU;QACrB,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../testing/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
export { ReadModelScenario } from './ReadModelScenario.js';
|
|
4
|
+
export { ReadModelScenarioGiven } from './ReadModelScenarioGiven.js';
|
|
5
|
+
export { ReadModelScenarioGivenBuilder } from './ReadModelScenarioGivenBuilder.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../testing/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC"}
|