@cratis/chronicle 3.0.0 → 3.1.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/ChronicleClient.ts +4 -3
- package/EventStore.ts +20 -3
- package/IEventStore.ts +16 -0
- package/README.md +40 -28
- package/auditing/CausationType.ts +10 -0
- package/compliance/ComplianceContracts.ts +84 -0
- package/compliance/IPIIManager.ts +17 -0
- package/compliance/PIIManager.ts +31 -0
- package/compliance/index.ts +2 -0
- package/connection/ChronicleConnection.ts +7 -1
- package/connection/ChronicleServices.ts +2 -0
- package/connection/Guid.ts +18 -0
- package/connection/callResults.spec.ts +90 -0
- package/connection/callResults.ts +112 -0
- package/dist/ChronicleClient.d.ts.map +1 -1
- package/dist/ChronicleClient.js +4 -3
- package/dist/ChronicleClient.js.map +1 -1
- package/dist/EventStore.d.ts +8 -0
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +16 -3
- package/dist/EventStore.js.map +1 -1
- package/dist/IEventStore.d.ts +12 -0
- package/dist/IEventStore.d.ts.map +1 -1
- package/dist/auditing/CausationType.d.ts +8 -0
- package/dist/auditing/CausationType.d.ts.map +1 -1
- package/dist/auditing/CausationType.js +8 -0
- package/dist/auditing/CausationType.js.map +1 -1
- package/dist/compliance/ComplianceContracts.d.ts +40 -0
- package/dist/compliance/ComplianceContracts.d.ts.map +1 -1
- package/dist/compliance/ComplianceContracts.js +71 -0
- package/dist/compliance/ComplianceContracts.js.map +1 -1
- package/dist/compliance/IPIIManager.d.ts +15 -0
- package/dist/compliance/IPIIManager.d.ts.map +1 -0
- package/dist/compliance/IPIIManager.js +4 -0
- package/dist/compliance/IPIIManager.js.map +1 -0
- package/dist/compliance/PIIManager.d.ts +20 -0
- package/dist/compliance/PIIManager.d.ts.map +1 -0
- package/dist/compliance/PIIManager.js +30 -0
- package/dist/compliance/PIIManager.js.map +1 -0
- package/dist/compliance/index.d.ts +2 -0
- package/dist/compliance/index.d.ts.map +1 -1
- package/dist/compliance/index.js +1 -0
- package/dist/compliance/index.js.map +1 -1
- package/dist/connection/ChronicleConnection.d.ts +1 -0
- package/dist/connection/ChronicleConnection.d.ts.map +1 -1
- package/dist/connection/ChronicleConnection.js +6 -1
- package/dist/connection/ChronicleConnection.js.map +1 -1
- package/dist/connection/ChronicleServices.d.ts +2 -0
- package/dist/connection/ChronicleServices.d.ts.map +1 -1
- package/dist/connection/Guid.d.ts +5 -0
- package/dist/connection/Guid.d.ts.map +1 -1
- package/dist/connection/Guid.js +15 -0
- package/dist/connection/Guid.js.map +1 -1
- package/dist/connection/callResults.d.ts +69 -0
- package/dist/connection/callResults.d.ts.map +1 -0
- package/dist/connection/callResults.js +74 -0
- package/dist/connection/callResults.js.map +1 -0
- package/dist/eventSequences/AppendOperationsBroadcaster.d.ts +16 -0
- package/dist/eventSequences/AppendOperationsBroadcaster.d.ts.map +1 -0
- package/dist/eventSequences/AppendOperationsBroadcaster.js +77 -0
- package/dist/eventSequences/AppendOperationsBroadcaster.js.map +1 -0
- package/dist/eventSequences/AppendOptions.d.ts +7 -0
- package/dist/eventSequences/AppendOptions.d.ts.map +1 -1
- package/dist/eventSequences/AppendResult.d.ts +14 -0
- package/dist/eventSequences/AppendResult.d.ts.map +1 -1
- package/dist/eventSequences/AppendedEventWithResult.d.ts +13 -0
- package/dist/eventSequences/AppendedEventWithResult.d.ts.map +1 -0
- package/dist/eventSequences/AppendedEventWithResult.js +4 -0
- package/dist/eventSequences/AppendedEventWithResult.js.map +1 -0
- package/dist/eventSequences/CompleteStreamError.d.ts +17 -0
- package/dist/eventSequences/CompleteStreamError.d.ts.map +1 -0
- package/dist/eventSequences/CompleteStreamError.js +20 -0
- package/dist/eventSequences/CompleteStreamError.js.map +1 -0
- package/dist/eventSequences/CompleteStreamResult.d.ts +14 -0
- package/dist/eventSequences/CompleteStreamResult.d.ts.map +1 -0
- package/dist/eventSequences/CompleteStreamResult.js +4 -0
- package/dist/eventSequences/CompleteStreamResult.js.map +1 -0
- package/dist/eventSequences/ConcurrencyViolation.d.ts +13 -0
- package/dist/eventSequences/ConcurrencyViolation.d.ts.map +1 -0
- package/dist/eventSequences/ConcurrencyViolation.js +4 -0
- package/dist/eventSequences/ConcurrencyViolation.js.map +1 -0
- package/dist/eventSequences/EventForEventSourceId.d.ts +8 -0
- package/dist/eventSequences/EventForEventSourceId.d.ts.map +1 -1
- package/dist/eventSequences/EventSequence.d.ts +35 -1
- package/dist/eventSequences/EventSequence.d.ts.map +1 -1
- package/dist/eventSequences/EventSequence.js +350 -19
- package/dist/eventSequences/EventSequence.js.map +1 -1
- package/dist/eventSequences/IEventSequence.d.ts +85 -1
- package/dist/eventSequences/IEventSequence.d.ts.map +1 -1
- package/dist/eventSequences/WaitForCompletionResult.d.ts +11 -0
- package/dist/eventSequences/WaitForCompletionResult.d.ts.map +1 -0
- package/dist/eventSequences/WaitForCompletionResult.js +4 -0
- package/dist/eventSequences/WaitForCompletionResult.js.map +1 -0
- package/dist/eventSequences/index.d.ts +5 -0
- package/dist/eventSequences/index.d.ts.map +1 -1
- package/dist/eventSequences/index.js +1 -0
- package/dist/eventSequences/index.js.map +1 -1
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts +3 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts.map +1 -1
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js +9 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js.map +1 -1
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.d.ts +6 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.d.ts.map +1 -1
- package/dist/eventStoreSubscriptions/contracts.d.ts +18 -0
- package/dist/eventStoreSubscriptions/contracts.d.ts.map +1 -1
- package/dist/eventStoreSubscriptions/contracts.js +106 -0
- package/dist/eventStoreSubscriptions/contracts.js.map +1 -1
- package/dist/events/constraints/Constraints.js +4 -4
- package/dist/events/constraints/Constraints.js.map +1 -1
- package/dist/externalServices/ExternalServiceBuilder.d.ts +42 -0
- package/dist/externalServices/ExternalServiceBuilder.d.ts.map +1 -0
- package/dist/externalServices/ExternalServiceBuilder.js +110 -0
- package/dist/externalServices/ExternalServiceBuilder.js.map +1 -0
- package/dist/externalServices/ExternalServices.d.ts +19 -0
- package/dist/externalServices/ExternalServices.d.ts.map +1 -0
- package/dist/externalServices/ExternalServices.js +30 -0
- package/dist/externalServices/ExternalServices.js.map +1 -0
- package/dist/externalServices/ExternalServicesContracts.d.ts +137 -0
- package/dist/externalServices/ExternalServicesContracts.d.ts.map +1 -0
- package/dist/externalServices/ExternalServicesContracts.js +654 -0
- package/dist/externalServices/ExternalServicesContracts.js.map +1 -0
- package/dist/externalServices/IExternalServiceBuilder.d.ts +67 -0
- package/dist/externalServices/IExternalServiceBuilder.d.ts.map +1 -0
- package/dist/externalServices/IExternalServiceBuilder.js +4 -0
- package/dist/externalServices/IExternalServiceBuilder.js.map +1 -0
- package/dist/externalServices/IExternalServices.d.ts +13 -0
- package/dist/externalServices/IExternalServices.d.ts.map +1 -0
- package/dist/externalServices/IExternalServices.js +4 -0
- package/dist/externalServices/IExternalServices.js.map +1 -0
- package/dist/externalServices/index.d.ts +5 -0
- package/dist/externalServices/index.d.ts.map +1 -0
- package/dist/externalServices/index.js +5 -0
- package/dist/externalServices/index.js.map +1 -0
- package/dist/identities/IIdentityManager.d.ts +17 -0
- package/dist/identities/IIdentityManager.d.ts.map +1 -0
- package/dist/identities/IIdentityManager.js +4 -0
- package/dist/identities/IIdentityManager.js.map +1 -0
- package/dist/identities/IdentityManager.d.ts +20 -0
- package/dist/identities/IdentityManager.d.ts.map +1 -0
- package/dist/identities/IdentityManager.js +31 -0
- package/dist/identities/IdentityManager.js.map +1 -0
- package/dist/identities/index.d.ts +3 -0
- package/dist/identities/index.d.ts.map +1 -0
- package/dist/identities/index.js +4 -0
- package/dist/identities/index.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/jobs/IJobs.d.ts +4 -4
- package/dist/jobs/IJobs.d.ts.map +1 -1
- package/dist/jobs/Jobs.d.ts +4 -4
- package/dist/jobs/Jobs.d.ts.map +1 -1
- package/dist/jobs/Jobs.js +12 -10
- package/dist/jobs/Jobs.js.map +1 -1
- package/dist/observation/FailedPartition.d.ts +15 -0
- package/dist/observation/FailedPartition.d.ts.map +1 -0
- package/dist/observation/FailedPartition.js +4 -0
- package/dist/observation/FailedPartition.js.map +1 -0
- package/dist/observation/FailedPartitionAttempt.d.ts +15 -0
- package/dist/observation/FailedPartitionAttempt.d.ts.map +1 -0
- package/dist/observation/FailedPartitionAttempt.js +4 -0
- package/dist/observation/FailedPartitionAttempt.js.map +1 -0
- package/dist/observation/FailedPartitions.d.ts +24 -0
- package/dist/observation/FailedPartitions.d.ts.map +1 -0
- package/dist/observation/FailedPartitions.js +39 -0
- package/dist/observation/FailedPartitions.js.map +1 -0
- package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.d.ts +19 -0
- package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.d.ts.map +1 -0
- package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.js +4 -0
- package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.js.map +1 -0
- package/dist/observation/ICanBeNotifiedWhenReplay.d.ts +17 -0
- package/dist/observation/ICanBeNotifiedWhenReplay.d.ts.map +1 -0
- package/dist/observation/ICanBeNotifiedWhenReplay.js +4 -0
- package/dist/observation/ICanBeNotifiedWhenReplay.js.map +1 -0
- package/dist/observation/IFailedPartitions.d.ts +18 -0
- package/dist/observation/IFailedPartitions.d.ts.map +1 -0
- package/dist/observation/IFailedPartitions.js +4 -0
- package/dist/observation/IFailedPartitions.js.map +1 -0
- package/dist/observation/index.d.ts +6 -0
- package/dist/observation/index.d.ts.map +1 -1
- package/dist/observation/index.js +1 -0
- package/dist/observation/index.js.map +1 -1
- package/dist/observation/notifyReplayLifecycle.d.ts +13 -0
- package/dist/observation/notifyReplayLifecycle.d.ts.map +1 -0
- package/dist/observation/notifyReplayLifecycle.js +54 -0
- package/dist/observation/notifyReplayLifecycle.js.map +1 -0
- package/dist/observation/toClientFailedPartition.d.ts +9 -0
- package/dist/observation/toClientFailedPartition.d.ts.map +1 -0
- package/dist/observation/toClientFailedPartition.js +23 -0
- package/dist/observation/toClientFailedPartition.js.map +1 -0
- package/dist/projections/Projections.d.ts +0 -4
- package/dist/projections/Projections.d.ts.map +1 -1
- package/dist/projections/Projections.js +25 -103
- package/dist/projections/Projections.js.map +1 -1
- package/dist/projections/declarative/AddBuilder.d.ts +17 -0
- package/dist/projections/declarative/AddBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/AddBuilder.js +28 -0
- package/dist/projections/declarative/AddBuilder.js.map +1 -0
- package/dist/projections/declarative/AddChildBuilder.d.ts +56 -0
- package/dist/projections/declarative/AddChildBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/AddChildBuilder.js +72 -0
- package/dist/projections/declarative/AddChildBuilder.js.map +1 -0
- package/dist/projections/declarative/ChildrenBuilder.d.ts +28 -0
- package/dist/projections/declarative/ChildrenBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/ChildrenBuilder.js +72 -0
- package/dist/projections/declarative/ChildrenBuilder.js.map +1 -0
- package/dist/projections/declarative/CompositeKeyBuilder.d.ts +16 -0
- package/dist/projections/declarative/CompositeKeyBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/CompositeKeyBuilder.js +29 -0
- package/dist/projections/declarative/CompositeKeyBuilder.js.map +1 -0
- package/dist/projections/declarative/FromBuilder.d.ts +8 -6
- package/dist/projections/declarative/FromBuilder.d.ts.map +1 -1
- package/dist/projections/declarative/FromBuilder.js +44 -14
- package/dist/projections/declarative/FromBuilder.js.map +1 -1
- package/dist/projections/declarative/ICompositeKeyBuilder.d.ts +5 -0
- package/dist/projections/declarative/ICompositeKeyBuilder.d.ts.map +1 -1
- package/dist/projections/declarative/JoinBuilder.d.ts +7 -5
- package/dist/projections/declarative/JoinBuilder.d.ts.map +1 -1
- package/dist/projections/declarative/JoinBuilder.js +50 -16
- package/dist/projections/declarative/JoinBuilder.js.map +1 -1
- package/dist/projections/declarative/NestedBuilder.d.ts +24 -0
- package/dist/projections/declarative/NestedBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/NestedBuilder.js +60 -0
- package/dist/projections/declarative/NestedBuilder.js.map +1 -0
- package/dist/projections/declarative/ProjectionBuilderCore.d.ts +127 -0
- package/dist/projections/declarative/ProjectionBuilderCore.d.ts.map +1 -0
- package/dist/projections/declarative/ProjectionBuilderCore.js +180 -0
- package/dist/projections/declarative/ProjectionBuilderCore.js.map +1 -0
- package/dist/projections/declarative/ProjectionBuilderFor.d.ts +6 -32
- package/dist/projections/declarative/ProjectionBuilderFor.d.ts.map +1 -1
- package/dist/projections/declarative/ProjectionBuilderFor.js +24 -118
- package/dist/projections/declarative/ProjectionBuilderFor.js.map +1 -1
- package/dist/projections/declarative/SubtractBuilder.d.ts +17 -0
- package/dist/projections/declarative/SubtractBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/SubtractBuilder.js +28 -0
- package/dist/projections/declarative/SubtractBuilder.js.map +1 -0
- package/dist/projections/declarative/index.d.ts +9 -0
- package/dist/projections/declarative/index.d.ts.map +1 -1
- package/dist/projections/declarative/index.js +8 -0
- package/dist/projections/declarative/index.js.map +1 -1
- package/dist/projections/modelBound/childrenAndNestedBuilder.d.ts +90 -0
- package/dist/projections/modelBound/childrenAndNestedBuilder.d.ts.map +1 -0
- package/dist/projections/modelBound/childrenAndNestedBuilder.js +290 -0
- package/dist/projections/modelBound/childrenAndNestedBuilder.js.map +1 -0
- package/dist/reactors/ReactorSideEffects.d.ts +29 -0
- package/dist/reactors/ReactorSideEffects.d.ts.map +1 -0
- package/dist/reactors/ReactorSideEffects.js +70 -0
- package/dist/reactors/ReactorSideEffects.js.map +1 -0
- package/dist/reactors/Reactors.d.ts +4 -1
- package/dist/reactors/Reactors.d.ts.map +1 -1
- package/dist/reactors/Reactors.js +23 -4
- package/dist/reactors/Reactors.js.map +1 -1
- package/dist/reducers/Reducers.d.ts.map +1 -1
- package/dist/reducers/Reducers.js +15 -3
- package/dist/reducers/Reducers.js.map +1 -1
- package/dist/reducers/reducer.d.ts +9 -1
- package/dist/reducers/reducer.d.ts.map +1 -1
- package/dist/reducers/reducer.js +4 -2
- package/dist/reducers/reducer.js.map +1 -1
- package/dist/transactions/IUnitOfWork.d.ts +18 -0
- package/dist/transactions/IUnitOfWork.d.ts.map +1 -1
- package/dist/transactions/UnitOfWork.d.ts +9 -0
- package/dist/transactions/UnitOfWork.d.ts.map +1 -1
- package/dist/transactions/UnitOfWork.js +14 -0
- package/dist/transactions/UnitOfWork.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eventSequences/AppendOperationsBroadcaster.ts +83 -0
- package/eventSequences/AppendOptions.ts +8 -0
- package/eventSequences/AppendResult.ts +16 -0
- package/eventSequences/AppendedEventWithResult.ts +17 -0
- package/eventSequences/CompleteStreamError.ts +20 -0
- package/eventSequences/CompleteStreamResult.ts +13 -0
- package/eventSequences/ConcurrencyViolation.ts +18 -0
- package/eventSequences/EventForEventSourceId.ts +12 -0
- package/eventSequences/EventSequence.spec.ts +588 -0
- package/eventSequences/EventSequence.ts +406 -20
- package/eventSequences/IEventSequence.ts +109 -1
- package/eventSequences/WaitForCompletionResult.ts +15 -0
- package/eventSequences/index.ts +5 -0
- package/eventStoreSubscriptions/EventStoreSubscriptions.spec.ts +52 -0
- package/eventStoreSubscriptions/EventStoreSubscriptions.ts +19 -1
- package/eventStoreSubscriptions/IEventStoreSubscriptions.ts +7 -0
- package/eventStoreSubscriptions/contracts.ts +126 -0
- package/events/constraints/Constraints.ts +4 -4
- package/externalServices/ExternalServiceBuilder.ts +128 -0
- package/externalServices/ExternalServices.ts +34 -0
- package/externalServices/ExternalServicesContracts.ts +709 -0
- package/externalServices/IExternalServiceBuilder.ts +76 -0
- package/externalServices/IExternalServices.ts +16 -0
- package/externalServices/index.ts +7 -0
- package/identities/IIdentityManager.ts +19 -0
- package/identities/IdentityManager.ts +32 -0
- package/identities/index.ts +5 -0
- package/index.ts +6 -0
- package/jobs/IJobs.ts +4 -4
- package/jobs/Jobs.ts +16 -14
- package/observation/FailedPartition.ts +21 -0
- package/observation/FailedPartitionAttempt.ts +21 -0
- package/observation/FailedPartitions.spec.ts +75 -0
- package/observation/FailedPartitions.ts +44 -0
- package/observation/ICanBeNotifiedWhenPartitionReplayed.ts +22 -0
- package/observation/ICanBeNotifiedWhenReplay.ts +20 -0
- package/observation/IFailedPartitions.ts +22 -0
- package/observation/index.ts +6 -0
- package/observation/notifyReplayLifecycle.spec.ts +98 -0
- package/observation/notifyReplayLifecycle.ts +61 -0
- package/observation/toClientFailedPartition.ts +26 -0
- package/package.json +28 -3
- package/projections/Projections.childrenAndNested.spec.ts +188 -0
- package/projections/Projections.spec.ts +131 -0
- package/projections/Projections.ts +37 -119
- package/projections/declarative/AddBuilder.ts +28 -0
- package/projections/declarative/AddChildBuilder.ts +97 -0
- package/projections/declarative/ChildrenBuilder.spec.ts +157 -0
- package/projections/declarative/ChildrenBuilder.ts +90 -0
- package/projections/declarative/CompositeKeyBuilder.spec.ts +117 -0
- package/projections/declarative/CompositeKeyBuilder.ts +38 -0
- package/projections/declarative/FromBuilder.ts +60 -15
- package/projections/declarative/ICompositeKeyBuilder.ts +6 -0
- package/projections/declarative/JoinBuilder.ts +66 -17
- package/projections/declarative/NestedBuilder.ts +76 -0
- package/projections/declarative/ProjectionBuilderCore.ts +257 -0
- package/projections/declarative/ProjectionBuilderFor.spec.ts +115 -0
- package/projections/declarative/ProjectionBuilderFor.ts +29 -168
- package/projections/declarative/SubtractBuilder.ts +28 -0
- package/projections/declarative/index.ts +9 -0
- package/projections/modelBound/childrenAndNestedBuilder.ts +354 -0
- package/reactors/ReactorSideEffects.spec.ts +182 -0
- package/reactors/ReactorSideEffects.ts +97 -0
- package/reactors/Reactors.ts +29 -4
- package/reducers/Reducers.spec.ts +87 -0
- package/reducers/Reducers.ts +15 -3
- package/reducers/reducer.spec.ts +40 -0
- package/reducers/reducer.ts +11 -2
- package/transactions/IUnitOfWork.ts +21 -0
- package/transactions/UnitOfWork.spec.ts +82 -0
- package/transactions/UnitOfWork.ts +20 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
2
|
+
import { IAddBuilder } from './IAddBuilder';
|
|
3
|
+
/**
|
|
4
|
+
* Concrete implementation of {@link IAddBuilder} that records an add expression
|
|
5
|
+
* into the owning from/join builder.
|
|
6
|
+
* @template TEvent - The event type.
|
|
7
|
+
* @template TParentBuilder - The parent builder type.
|
|
8
|
+
*/
|
|
9
|
+
export declare class AddBuilder<TEvent, TParentBuilder> implements IAddBuilder<TEvent, TParentBuilder> {
|
|
10
|
+
private readonly _readModelProperty;
|
|
11
|
+
private readonly _setProperty;
|
|
12
|
+
private readonly _parent;
|
|
13
|
+
constructor(_readModelProperty: string, _setProperty: (readModelProp: string, expression: string) => void, _parent: TParentBuilder);
|
|
14
|
+
/** @inheritdoc */
|
|
15
|
+
with(eventPropertyAccessor: PropertyAccessor<TEvent>): TParentBuilder;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=AddBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/AddBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,UAAU,CAAC,MAAM,EAAE,cAAc,CAAE,YAAW,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC;IAEtF,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,EACjE,OAAO,EAAE,cAAc;IAG5C,kBAAkB;IAClB,IAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,cAAc;CAOxE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 { PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
|
|
4
|
+
/**
|
|
5
|
+
* Concrete implementation of {@link IAddBuilder} that records an add expression
|
|
6
|
+
* into the owning from/join builder.
|
|
7
|
+
* @template TEvent - The event type.
|
|
8
|
+
* @template TParentBuilder - The parent builder type.
|
|
9
|
+
*/
|
|
10
|
+
export class AddBuilder {
|
|
11
|
+
_readModelProperty;
|
|
12
|
+
_setProperty;
|
|
13
|
+
_parent;
|
|
14
|
+
constructor(_readModelProperty, _setProperty, _parent) {
|
|
15
|
+
this._readModelProperty = _readModelProperty;
|
|
16
|
+
this._setProperty = _setProperty;
|
|
17
|
+
this._parent = _parent;
|
|
18
|
+
}
|
|
19
|
+
/** @inheritdoc */
|
|
20
|
+
with(eventPropertyAccessor) {
|
|
21
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
22
|
+
const proxy = new Proxy({}, handler);
|
|
23
|
+
eventPropertyAccessor(proxy);
|
|
24
|
+
this._setProperty(this._readModelProperty, `$add(${handler.property})`);
|
|
25
|
+
return this._parent;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=AddBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/AddBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAG1F;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IAEE;IACA;IACA;IAHrB,YACqB,kBAA0B,EAC1B,YAAiE,EACjE,OAAuB;QAFvB,uBAAkB,GAAlB,kBAAkB,CAAQ;QAC1B,iBAAY,GAAZ,YAAY,CAAqD;QACjE,YAAO,GAAP,OAAO,CAAgB;IACzC,CAAC;IAEJ,kBAAkB;IAClB,IAAI,CAAC,qBAA+C;QAChD,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,qBAAqB,CAAC,KAAe,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
2
|
+
import { IAddChildBuilder } from './IAddChildBuilder';
|
|
3
|
+
/**
|
|
4
|
+
* A single `.addChild()` accumulation captured on a from/join builder, later merged into the
|
|
5
|
+
* owning projection builder's `Children` definitions once the enclosing `.from()`/`.join()`
|
|
6
|
+
* call resolves the event type it belongs to.
|
|
7
|
+
*/
|
|
8
|
+
export interface ChildAdditionEntry {
|
|
9
|
+
/** The read model property the child is added to. */
|
|
10
|
+
targetProperty: string;
|
|
11
|
+
/** The child model property used to identify instances, when set via the builder callback overload. */
|
|
12
|
+
identifiedBy?: string;
|
|
13
|
+
/** The event property used as the key, when set via the builder callback overload. */
|
|
14
|
+
usingKey?: string;
|
|
15
|
+
/** The event property whose value becomes the child directly, when set via the plain accessor overload. */
|
|
16
|
+
fromEventProperty?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Implements {@link IAddChildBuilder} and doubles as a {@link ProxyHandler} so a single probe
|
|
20
|
+
* object can resolve `.addChild()`'s two call shapes at runtime: a plain event-property
|
|
21
|
+
* accessor (`e => e.someProperty`), or a builder callback (`b => b.usingKey(...)`). Known
|
|
22
|
+
* builder members are dispatched to the real implementation below; any other property access
|
|
23
|
+
* (the plain-accessor shape) falls through to the same path-capturing proxy used everywhere
|
|
24
|
+
* else in this file for `PropertyAccessor<T>` resolution.
|
|
25
|
+
* @template TChildModel - The child model type.
|
|
26
|
+
* @template TEvent - The event type.
|
|
27
|
+
*/
|
|
28
|
+
export declare class AddChildBuilder<TChildModel, TEvent> implements IAddChildBuilder<TChildModel, TEvent>, ProxyHandler<object> {
|
|
29
|
+
private readonly _pathHandler;
|
|
30
|
+
private readonly _pathProxy;
|
|
31
|
+
private _usedAsBuilder;
|
|
32
|
+
private _identifiedByProperty;
|
|
33
|
+
private _usingKeyProperty;
|
|
34
|
+
/** Whether any builder member (`identifiedBy`/`usingKey`) was invoked on the probe. */
|
|
35
|
+
get usedAsBuilder(): boolean;
|
|
36
|
+
/** The child model property captured via `identifiedBy()`, if any. */
|
|
37
|
+
get identifiedByProperty(): string | undefined;
|
|
38
|
+
/** The event property captured via `usingKey()`, if any. */
|
|
39
|
+
get usingKeyProperty(): string | undefined;
|
|
40
|
+
/** The event property path captured when the probe was used as a plain accessor. */
|
|
41
|
+
get capturedEventProperty(): string;
|
|
42
|
+
/** @inheritdoc */
|
|
43
|
+
identifiedBy(childPropertyAccessor: PropertyAccessor<TChildModel>): IAddChildBuilder<TChildModel, TEvent>;
|
|
44
|
+
/** @inheritdoc */
|
|
45
|
+
usingKey(eventPropertyAccessor: PropertyAccessor<TEvent>): IAddChildBuilder<TChildModel, TEvent>;
|
|
46
|
+
/**
|
|
47
|
+
* Proxy `get` trap: known builder members dispatch to the real implementation above;
|
|
48
|
+
* anything else (a plain event property accessed by the accessor overload) falls through
|
|
49
|
+
* to path-capturing so the accessor overload keeps working against the same probe.
|
|
50
|
+
* @param _target - The proxy's (unused) empty target object.
|
|
51
|
+
* @param prop - The accessed property name.
|
|
52
|
+
* @returns The resolved member.
|
|
53
|
+
*/
|
|
54
|
+
get(_target: object, prop: string | symbol): unknown;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=AddChildBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddChildBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/AddChildBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAC/B,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2GAA2G;IAC3G,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe,CAAC,WAAW,EAAE,MAAM,CAAE,YAAW,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC;IACpH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;IACvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,iBAAiB,CAAqB;IAE9C,uFAAuF;IACvF,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,sEAAsE;IACtE,IAAI,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAE7C;IAED,4DAA4D;IAC5D,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,oFAAoF;IACpF,IAAI,qBAAqB,IAAI,MAAM,CAElC;IAED,kBAAkB;IAClB,YAAY,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;IASzG,kBAAkB;IAClB,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;IAShG;;;;;;;OAOG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;CASvD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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 { PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
|
|
4
|
+
/**
|
|
5
|
+
* Implements {@link IAddChildBuilder} and doubles as a {@link ProxyHandler} so a single probe
|
|
6
|
+
* object can resolve `.addChild()`'s two call shapes at runtime: a plain event-property
|
|
7
|
+
* accessor (`e => e.someProperty`), or a builder callback (`b => b.usingKey(...)`). Known
|
|
8
|
+
* builder members are dispatched to the real implementation below; any other property access
|
|
9
|
+
* (the plain-accessor shape) falls through to the same path-capturing proxy used everywhere
|
|
10
|
+
* else in this file for `PropertyAccessor<T>` resolution.
|
|
11
|
+
* @template TChildModel - The child model type.
|
|
12
|
+
* @template TEvent - The event type.
|
|
13
|
+
*/
|
|
14
|
+
export class AddChildBuilder {
|
|
15
|
+
_pathHandler = new PropertyPathResolverProxyHandler();
|
|
16
|
+
_pathProxy = new Proxy({}, this._pathHandler);
|
|
17
|
+
_usedAsBuilder = false;
|
|
18
|
+
_identifiedByProperty;
|
|
19
|
+
_usingKeyProperty;
|
|
20
|
+
/** Whether any builder member (`identifiedBy`/`usingKey`) was invoked on the probe. */
|
|
21
|
+
get usedAsBuilder() {
|
|
22
|
+
return this._usedAsBuilder;
|
|
23
|
+
}
|
|
24
|
+
/** The child model property captured via `identifiedBy()`, if any. */
|
|
25
|
+
get identifiedByProperty() {
|
|
26
|
+
return this._identifiedByProperty;
|
|
27
|
+
}
|
|
28
|
+
/** The event property captured via `usingKey()`, if any. */
|
|
29
|
+
get usingKeyProperty() {
|
|
30
|
+
return this._usingKeyProperty;
|
|
31
|
+
}
|
|
32
|
+
/** The event property path captured when the probe was used as a plain accessor. */
|
|
33
|
+
get capturedEventProperty() {
|
|
34
|
+
return this._pathHandler.property;
|
|
35
|
+
}
|
|
36
|
+
/** @inheritdoc */
|
|
37
|
+
identifiedBy(childPropertyAccessor) {
|
|
38
|
+
this._usedAsBuilder = true;
|
|
39
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
40
|
+
const proxy = new Proxy({}, handler);
|
|
41
|
+
childPropertyAccessor(proxy);
|
|
42
|
+
this._identifiedByProperty = handler.property;
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
/** @inheritdoc */
|
|
46
|
+
usingKey(eventPropertyAccessor) {
|
|
47
|
+
this._usedAsBuilder = true;
|
|
48
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
49
|
+
const proxy = new Proxy({}, handler);
|
|
50
|
+
eventPropertyAccessor(proxy);
|
|
51
|
+
this._usingKeyProperty = handler.property;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Proxy `get` trap: known builder members dispatch to the real implementation above;
|
|
56
|
+
* anything else (a plain event property accessed by the accessor overload) falls through
|
|
57
|
+
* to path-capturing so the accessor overload keeps working against the same probe.
|
|
58
|
+
* @param _target - The proxy's (unused) empty target object.
|
|
59
|
+
* @param prop - The accessed property name.
|
|
60
|
+
* @returns The resolved member.
|
|
61
|
+
*/
|
|
62
|
+
get(_target, prop) {
|
|
63
|
+
if (prop === 'identifiedBy') {
|
|
64
|
+
return this.identifiedBy.bind(this);
|
|
65
|
+
}
|
|
66
|
+
if (prop === 'usingKey') {
|
|
67
|
+
return this.usingKey.bind(this);
|
|
68
|
+
}
|
|
69
|
+
return Reflect.get(this._pathProxy, prop);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=AddChildBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddChildBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/AddChildBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAmB1F;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAe;IACP,YAAY,GAAG,IAAI,gCAAgC,EAAE,CAAC;IACtD,UAAU,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,cAAc,GAAG,KAAK,CAAC;IACvB,qBAAqB,CAAqB;IAC1C,iBAAiB,CAAqB;IAE9C,uFAAuF;IACvF,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,sEAAsE;IACtE,IAAI,oBAAoB;QACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IAED,4DAA4D;IAC5D,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,oFAAoF;IACpF,IAAI,qBAAqB;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,kBAAkB;IAClB,YAAY,CAAC,qBAAoD;QAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,qBAAqB,CAAC,KAAoB,CAAC,CAAC;QAC5C,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,QAAQ,CAAC,qBAA+C;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,qBAAqB,CAAC,KAAe,CAAC,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,GAAG,CAAC,OAAe,EAAE,IAAqB;QACtC,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAoB,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;CACJ"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
2
|
+
import { ChildrenDefinitionLike, ProjectionBuilderCore } from './ProjectionBuilderCore';
|
|
3
|
+
import { IChildrenBuilder } from './IChildrenBuilder';
|
|
4
|
+
import { INestedBuilder } from './INestedBuilder';
|
|
5
|
+
/**
|
|
6
|
+
* Concrete implementation of {@link IChildrenBuilder}, building the `ChildrenDefinition` for a
|
|
7
|
+
* children collection sub-projection reached through `.children()`.
|
|
8
|
+
* @template TParentReadModel - The parent read model type.
|
|
9
|
+
* @template TChildReadModel - The child read model type.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ChildrenBuilder<TParentReadModel, TChildReadModel> extends ProjectionBuilderCore<TChildReadModel, IChildrenBuilder<TParentReadModel, TChildReadModel>> implements IChildrenBuilder<TParentReadModel, TChildReadModel> {
|
|
12
|
+
private _identifiedBy;
|
|
13
|
+
private _fromEventPropertyPath;
|
|
14
|
+
/** @inheritdoc */
|
|
15
|
+
identifiedBy(propertyAccessor: PropertyAccessor<TChildReadModel>): IChildrenBuilder<TParentReadModel, TChildReadModel>;
|
|
16
|
+
/** @inheritdoc */
|
|
17
|
+
fromEventProperty<TEvent>(propertyAccessor: PropertyAccessor<TEvent>): IChildrenBuilder<TParentReadModel, TChildReadModel>;
|
|
18
|
+
/** @inheritdoc */
|
|
19
|
+
children<TGrandchildModel>(targetPropertyAccessor: PropertyAccessor<TChildReadModel>, builderCallback: (builder: IChildrenBuilder<TChildReadModel, TGrandchildModel>) => void): IChildrenBuilder<TParentReadModel, TChildReadModel>;
|
|
20
|
+
/** @inheritdoc */
|
|
21
|
+
nested<TNestedModel>(targetPropertyAccessor: PropertyAccessor<TChildReadModel>, builderCallback: (builder: INestedBuilder<TChildReadModel, TNestedModel>) => void): IChildrenBuilder<TParentReadModel, TChildReadModel>;
|
|
22
|
+
/**
|
|
23
|
+
* Builds the {@link ChildrenDefinitionLike} representing this children collection.
|
|
24
|
+
* @returns The accumulated children definition.
|
|
25
|
+
*/
|
|
26
|
+
buildDefinition(): ChildrenDefinitionLike;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ChildrenBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChildrenBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/ChildrenBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;GAKG;AACH,qBAAa,eAAe,CAAC,gBAAgB,EAAE,eAAe,CAC1D,SAAQ,qBAAqB,CAAC,eAAe,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAClG,YAAW,gBAAgB,CAAC,gBAAgB,EAAE,eAAe,CAAC;IAC9D,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,sBAAsB,CAAqB;IAEnD,kBAAkB;IAClB,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,eAAe,CAAC,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,eAAe,CAAC;IAQtH,kBAAkB;IAClB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,eAAe,CAAC;IAQ1H,kBAAkB;IAClB,QAAQ,CAAC,gBAAgB,EACrB,sBAAsB,EAAE,gBAAgB,CAAC,eAAe,CAAC,EACzD,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,CAAC,KAAK,IAAI,GACxF,gBAAgB,CAAC,gBAAgB,EAAE,eAAe,CAAC;IAWtD,kBAAkB;IAClB,MAAM,CAAC,YAAY,EACf,sBAAsB,EAAE,gBAAgB,CAAC,eAAe,CAAC,EACzD,eAAe,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC,KAAK,IAAI,GAClF,gBAAgB,CAAC,gBAAgB,EAAE,eAAe,CAAC;IAWtD;;;OAGG;IACH,eAAe,IAAI,sBAAsB;CAgB5C"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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 { PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
|
|
4
|
+
import { ProjectionBuilderCore } from './ProjectionBuilderCore';
|
|
5
|
+
import { NestedBuilder } from './NestedBuilder';
|
|
6
|
+
/**
|
|
7
|
+
* Concrete implementation of {@link IChildrenBuilder}, building the `ChildrenDefinition` for a
|
|
8
|
+
* children collection sub-projection reached through `.children()`.
|
|
9
|
+
* @template TParentReadModel - The parent read model type.
|
|
10
|
+
* @template TChildReadModel - The child read model type.
|
|
11
|
+
*/
|
|
12
|
+
export class ChildrenBuilder extends ProjectionBuilderCore {
|
|
13
|
+
_identifiedBy;
|
|
14
|
+
_fromEventPropertyPath;
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
identifiedBy(propertyAccessor) {
|
|
17
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
18
|
+
const proxy = new Proxy({}, handler);
|
|
19
|
+
propertyAccessor(proxy);
|
|
20
|
+
this._identifiedBy = handler.property;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
/** @inheritdoc */
|
|
24
|
+
fromEventProperty(propertyAccessor) {
|
|
25
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
26
|
+
const proxy = new Proxy({}, handler);
|
|
27
|
+
propertyAccessor(proxy);
|
|
28
|
+
this._fromEventPropertyPath = handler.property;
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
/** @inheritdoc */
|
|
32
|
+
children(targetPropertyAccessor, builderCallback) {
|
|
33
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
34
|
+
const proxy = new Proxy({}, handler);
|
|
35
|
+
targetPropertyAccessor(proxy);
|
|
36
|
+
const builder = new ChildrenBuilder();
|
|
37
|
+
builderCallback(builder);
|
|
38
|
+
this._children[handler.property] = builder.buildDefinition();
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/** @inheritdoc */
|
|
42
|
+
nested(targetPropertyAccessor, builderCallback) {
|
|
43
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
44
|
+
const proxy = new Proxy({}, handler);
|
|
45
|
+
targetPropertyAccessor(proxy);
|
|
46
|
+
const builder = new NestedBuilder();
|
|
47
|
+
builderCallback(builder);
|
|
48
|
+
this._nested[handler.property] = builder.buildDefinition();
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Builds the {@link ChildrenDefinitionLike} representing this children collection.
|
|
53
|
+
* @returns The accumulated children definition.
|
|
54
|
+
*/
|
|
55
|
+
buildDefinition() {
|
|
56
|
+
return {
|
|
57
|
+
IdentifiedBy: this._identifiedBy ?? '$eventSourceId',
|
|
58
|
+
From: this._from,
|
|
59
|
+
Join: this._join,
|
|
60
|
+
Children: this._children,
|
|
61
|
+
All: this._all,
|
|
62
|
+
FromEventProperty: this._fromEventPropertyPath === undefined
|
|
63
|
+
? undefined
|
|
64
|
+
: { Event: undefined, PropertyExpression: this._fromEventPropertyPath },
|
|
65
|
+
RemovedWith: this._removedWith,
|
|
66
|
+
RemovedWithJoin: this._removedWithJoin,
|
|
67
|
+
AutoMap: this._autoMap,
|
|
68
|
+
Nested: this._nested
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=ChildrenBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChildrenBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/ChildrenBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAA0B,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGxF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,OAAO,eACT,SAAQ,qBAA2F;IAE3F,aAAa,CAAqB;IAClC,sBAAsB,CAAqB;IAEnD,kBAAkB;IAClB,YAAY,CAAC,gBAAmD;QAC5D,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,gBAAgB,CAAC,KAAwB,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,iBAAiB,CAAS,gBAA0C;QAChE,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,gBAAgB,CAAC,KAAe,CAAC,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC/C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,QAAQ,CACJ,sBAAyD,EACzD,eAAuF;QAEvF,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,sBAAsB,CAAC,KAAwB,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,IAAI,eAAe,EAAqC,CAAC;QACzE,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,MAAM,CACF,sBAAyD,EACzD,eAAiF;QAEjF,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,sBAAsB,CAAC,KAAwB,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,IAAI,aAAa,EAAiC,CAAC;QACnE,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,eAAe;QACX,OAAO;YACH,YAAY,EAAE,IAAI,CAAC,aAAa,IAAI,gBAAgB;YACpD,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,KAAK,SAAS;gBACxD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,EAAE;YAC3E,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,MAAM,EAAE,IAAI,CAAC,OAAO;SACvB,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
2
|
+
import { ICompositeKeyBuilder } from './ICompositeKeyBuilder';
|
|
3
|
+
/**
|
|
4
|
+
* Concrete implementation of {@link ICompositeKeyBuilder} that builds a `$composite(...)` key
|
|
5
|
+
* expression from multiple event properties mapped onto named parts of a key type.
|
|
6
|
+
* @template TKeyType - The composite key type.
|
|
7
|
+
* @template TEvent - The event type.
|
|
8
|
+
*/
|
|
9
|
+
export declare class CompositeKeyBuilder<TKeyType, TEvent> implements ICompositeKeyBuilder<TKeyType, TEvent> {
|
|
10
|
+
private readonly _parts;
|
|
11
|
+
/** @inheritdoc */
|
|
12
|
+
set(targetPropertyAccessor: PropertyAccessor<TKeyType>, sourcePropertyAccessor: PropertyAccessor<TEvent>): ICompositeKeyBuilder<TKeyType, TEvent>;
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
build(): string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=CompositeKeyBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompositeKeyBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/CompositeKeyBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;GAKG;AACH,qBAAa,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAE,YAAW,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAChG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuD;IAE9E,kBAAkB;IAClB,GAAG,CACC,sBAAsB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClD,sBAAsB,EAAE,gBAAgB,CAAC,MAAM,CAAC,GACjD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAazC,kBAAkB;IAClB,KAAK,IAAI,MAAM;CAIlB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 { PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
|
|
4
|
+
/**
|
|
5
|
+
* Concrete implementation of {@link ICompositeKeyBuilder} that builds a `$composite(...)` key
|
|
6
|
+
* expression from multiple event properties mapped onto named parts of a key type.
|
|
7
|
+
* @template TKeyType - The composite key type.
|
|
8
|
+
* @template TEvent - The event type.
|
|
9
|
+
*/
|
|
10
|
+
export class CompositeKeyBuilder {
|
|
11
|
+
_parts = [];
|
|
12
|
+
/** @inheritdoc */
|
|
13
|
+
set(targetPropertyAccessor, sourcePropertyAccessor) {
|
|
14
|
+
const targetHandler = new PropertyPathResolverProxyHandler();
|
|
15
|
+
const targetProxy = new Proxy({}, targetHandler);
|
|
16
|
+
targetPropertyAccessor(targetProxy);
|
|
17
|
+
const sourceHandler = new PropertyPathResolverProxyHandler();
|
|
18
|
+
const sourceProxy = new Proxy({}, sourceHandler);
|
|
19
|
+
sourcePropertyAccessor(sourceProxy);
|
|
20
|
+
this._parts.push({ property: targetHandler.property, expression: sourceHandler.property });
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
/** @inheritdoc */
|
|
24
|
+
build() {
|
|
25
|
+
const parts = this._parts.map(part => `${part.property}=${part.expression}`).join(',');
|
|
26
|
+
return `$composite(${parts})`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=CompositeKeyBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompositeKeyBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/CompositeKeyBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAG1F;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IACX,MAAM,GAAoD,EAAE,CAAC;IAE9E,kBAAkB;IAClB,GAAG,CACC,sBAAkD,EAClD,sBAAgD;QAEhD,MAAM,aAAa,GAAG,IAAI,gCAAgC,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QACjD,sBAAsB,CAAC,WAAuB,CAAC,CAAC;QAEhD,MAAM,aAAa,GAAG,IAAI,gCAAgC,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QACjD,sBAAsB,CAAC,WAAqB,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,KAAK;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvF,OAAO,cAAc,KAAK,GAAG,CAAC;IAClC,CAAC;CACJ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
2
|
+
import { ChildAdditionEntry } from './AddChildBuilder';
|
|
2
3
|
import { IAddBuilder } from './IAddBuilder';
|
|
3
4
|
import { IAddChildBuilder } from './IAddChildBuilder';
|
|
4
5
|
import { ICompositeKeyBuilder } from './ICompositeKeyBuilder';
|
|
@@ -12,6 +13,7 @@ export interface FromEntry {
|
|
|
12
13
|
properties: Record<string, string>;
|
|
13
14
|
key: string;
|
|
14
15
|
parentKey: string;
|
|
16
|
+
children: ChildAdditionEntry[];
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* Concrete implementation of {@link IFromBuilder}.
|
|
@@ -31,9 +33,9 @@ export declare class FromBuilder<TReadModel, TEvent> implements IFromBuilder<TRe
|
|
|
31
33
|
/** @inheritdoc */
|
|
32
34
|
usingParentKeyFromContext(contextPropertyName: string): this;
|
|
33
35
|
/** @inheritdoc */
|
|
34
|
-
usingCompositeKey<TKeyType>(
|
|
36
|
+
usingCompositeKey<TKeyType>(builderCallback: (builder: ICompositeKeyBuilder<TKeyType, TEvent>) => void): this;
|
|
35
37
|
/** @inheritdoc */
|
|
36
|
-
usingParentCompositeKey<TKeyType>(
|
|
38
|
+
usingParentCompositeKey<TKeyType>(builderCallback: (builder: ICompositeKeyBuilder<TKeyType, TEvent>) => void): this;
|
|
37
39
|
/** @inheritdoc */
|
|
38
40
|
usingConstantKey(value: string): this;
|
|
39
41
|
/** @inheritdoc */
|
|
@@ -43,13 +45,13 @@ export declare class FromBuilder<TReadModel, TEvent> implements IFromBuilder<TRe
|
|
|
43
45
|
/** @inheritdoc */
|
|
44
46
|
decrement(readModelPropertyAccessor: PropertyAccessor<TReadModel>): this;
|
|
45
47
|
/** @inheritdoc */
|
|
46
|
-
add(
|
|
48
|
+
add(readModelPropertyAccessor: PropertyAccessor<TReadModel>): IAddBuilder<TEvent, this>;
|
|
47
49
|
/** @inheritdoc */
|
|
48
|
-
subtract(
|
|
50
|
+
subtract(readModelPropertyAccessor: PropertyAccessor<TReadModel>): ISubtractBuilder<TEvent, this>;
|
|
49
51
|
/** @inheritdoc */
|
|
50
|
-
count(
|
|
52
|
+
count(readModelPropertyAccessor: PropertyAccessor<TReadModel>): this;
|
|
51
53
|
/** @inheritdoc */
|
|
52
|
-
addChild<TChildModel>(
|
|
54
|
+
addChild<TChildModel>(targetPropertyAccessor: PropertyAccessor<TReadModel>, eventPropertyAccessorOrBuilderCallback: PropertyAccessor<TEvent> | ((builder: IAddChildBuilder<TChildModel, TEvent>) => void)): this;
|
|
53
55
|
/** @inheritdoc */
|
|
54
56
|
setThisValue(): ISetBuilder<TEvent, this>;
|
|
55
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/FromBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"FromBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/FromBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAmB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED;;;;GAIG;AACH,qBAAa,WAAW,CAAC,UAAU,EAAE,MAAM,CAAE,YAAW,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC;IACpF,QAAQ,CAAC,KAAK,EAAE,SAAS,CAKvB;IAEF,kBAAkB;IAClB,GAAG,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAYnH,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI;IAQrD,kBAAkB;IAClB,mBAAmB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAKtD,kBAAkB;IAClB,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI;IAQ3D,kBAAkB;IAClB,yBAAyB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAK5D,kBAAkB;IAClB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI;IAO7G,kBAAkB;IAClB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI;IAOnH,kBAAkB;IAClB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKrC,kBAAkB;IAClB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3C,kBAAkB;IAClB,SAAS,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI;IAQxE,kBAAkB;IAClB,SAAS,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI;IAQxE,kBAAkB;IAClB,GAAG,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;IAWvF,kBAAkB;IAClB,QAAQ,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC;IAWjG,kBAAkB;IAClB,KAAK,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI;IAQpE,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAChB,sBAAsB,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACpD,sCAAsC,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,GAC9H,IAAI;IAeP,kBAAkB;IAClB,YAAY,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;CAO5C"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
3
|
import { PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
|
|
4
|
+
import { AddBuilder } from './AddBuilder';
|
|
5
|
+
import { AddChildBuilder } from './AddChildBuilder';
|
|
6
|
+
import { CompositeKeyBuilder } from './CompositeKeyBuilder';
|
|
4
7
|
import { SetBuilder } from './SetBuilder';
|
|
8
|
+
import { SubtractBuilder } from './SubtractBuilder';
|
|
5
9
|
/**
|
|
6
10
|
* Concrete implementation of {@link IFromBuilder}.
|
|
7
11
|
* @template TReadModel - The read model type.
|
|
@@ -11,7 +15,8 @@ export class FromBuilder {
|
|
|
11
15
|
entry = {
|
|
12
16
|
properties: {},
|
|
13
17
|
key: '$eventSourceId',
|
|
14
|
-
parentKey: ''
|
|
18
|
+
parentKey: '',
|
|
19
|
+
children: []
|
|
15
20
|
};
|
|
16
21
|
/** @inheritdoc */
|
|
17
22
|
set(readModelPropertyAccessor) {
|
|
@@ -48,12 +53,18 @@ export class FromBuilder {
|
|
|
48
53
|
return this;
|
|
49
54
|
}
|
|
50
55
|
/** @inheritdoc */
|
|
51
|
-
usingCompositeKey(
|
|
52
|
-
|
|
56
|
+
usingCompositeKey(builderCallback) {
|
|
57
|
+
const compositeKeyBuilder = new CompositeKeyBuilder();
|
|
58
|
+
builderCallback(compositeKeyBuilder);
|
|
59
|
+
this.entry.key = compositeKeyBuilder.build();
|
|
60
|
+
return this;
|
|
53
61
|
}
|
|
54
62
|
/** @inheritdoc */
|
|
55
|
-
usingParentCompositeKey(
|
|
56
|
-
|
|
63
|
+
usingParentCompositeKey(builderCallback) {
|
|
64
|
+
const compositeKeyBuilder = new CompositeKeyBuilder();
|
|
65
|
+
builderCallback(compositeKeyBuilder);
|
|
66
|
+
this.entry.parentKey = compositeKeyBuilder.build();
|
|
67
|
+
return this;
|
|
57
68
|
}
|
|
58
69
|
/** @inheritdoc */
|
|
59
70
|
usingConstantKey(value) {
|
|
@@ -82,24 +93,43 @@ export class FromBuilder {
|
|
|
82
93
|
return this;
|
|
83
94
|
}
|
|
84
95
|
/** @inheritdoc */
|
|
85
|
-
add(
|
|
86
|
-
|
|
96
|
+
add(readModelPropertyAccessor) {
|
|
97
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
98
|
+
const proxy = new Proxy({}, handler);
|
|
99
|
+
readModelPropertyAccessor(proxy);
|
|
100
|
+
return new AddBuilder(handler.property, (property, expression) => { this.entry.properties[property] = expression; }, this);
|
|
87
101
|
}
|
|
88
102
|
/** @inheritdoc */
|
|
89
|
-
subtract(
|
|
90
|
-
|
|
103
|
+
subtract(readModelPropertyAccessor) {
|
|
104
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
105
|
+
const proxy = new Proxy({}, handler);
|
|
106
|
+
readModelPropertyAccessor(proxy);
|
|
107
|
+
return new SubtractBuilder(handler.property, (property, expression) => { this.entry.properties[property] = expression; }, this);
|
|
91
108
|
}
|
|
92
109
|
/** @inheritdoc */
|
|
93
|
-
count(
|
|
94
|
-
|
|
110
|
+
count(readModelPropertyAccessor) {
|
|
111
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
112
|
+
const proxy = new Proxy({}, handler);
|
|
113
|
+
readModelPropertyAccessor(proxy);
|
|
114
|
+
this.entry.properties[handler.property] = '$count';
|
|
115
|
+
return this;
|
|
95
116
|
}
|
|
96
117
|
/** @inheritdoc */
|
|
97
|
-
addChild(
|
|
98
|
-
|
|
118
|
+
addChild(targetPropertyAccessor, eventPropertyAccessorOrBuilderCallback) {
|
|
119
|
+
const targetHandler = new PropertyPathResolverProxyHandler();
|
|
120
|
+
const targetProxy = new Proxy({}, targetHandler);
|
|
121
|
+
targetPropertyAccessor(targetProxy);
|
|
122
|
+
const probe = new AddChildBuilder();
|
|
123
|
+
const probeProxy = new Proxy({}, probe);
|
|
124
|
+
eventPropertyAccessorOrBuilderCallback(probeProxy);
|
|
125
|
+
this.entry.children.push(probe.usedAsBuilder
|
|
126
|
+
? { targetProperty: targetHandler.property, identifiedBy: probe.identifiedByProperty, usingKey: probe.usingKeyProperty }
|
|
127
|
+
: { targetProperty: targetHandler.property, fromEventProperty: probe.capturedEventProperty });
|
|
128
|
+
return this;
|
|
99
129
|
}
|
|
100
130
|
/** @inheritdoc */
|
|
101
131
|
setThisValue() {
|
|
102
|
-
|
|
132
|
+
return new SetBuilder('$this', (rp, expr) => { this.entry.properties[rp] = expr; }, this);
|
|
103
133
|
}
|
|
104
134
|
}
|
|
105
135
|
//# sourceMappingURL=FromBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/FromBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"FromBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/FromBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,5 +12,10 @@ export interface ICompositeKeyBuilder<TKeyType, TEvent> {
|
|
|
12
12
|
* @returns This builder for fluent chaining.
|
|
13
13
|
*/
|
|
14
14
|
set(targetPropertyAccessor: PropertyAccessor<TKeyType>, sourcePropertyAccessor: PropertyAccessor<TEvent>): ICompositeKeyBuilder<TKeyType, TEvent>;
|
|
15
|
+
/**
|
|
16
|
+
* Builds the composite key expression from the configured parts.
|
|
17
|
+
* @returns The `$composite(...)` property expression.
|
|
18
|
+
*/
|
|
19
|
+
build(): string;
|
|
15
20
|
}
|
|
16
21
|
//# sourceMappingURL=ICompositeKeyBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICompositeKeyBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/ICompositeKeyBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CAAC,QAAQ,EAAE,MAAM;IAClD;;;;;OAKG;IACH,GAAG,CACC,sBAAsB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClD,sBAAsB,EAAE,gBAAgB,CAAC,MAAM,CAAC,GACjD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ICompositeKeyBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/ICompositeKeyBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CAAC,QAAQ,EAAE,MAAM;IAClD;;;;;OAKG;IACH,GAAG,CACC,sBAAsB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClD,sBAAsB,EAAE,gBAAgB,CAAC,MAAM,CAAC,GACjD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,KAAK,IAAI,MAAM,CAAC;CACnB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
2
|
+
import { ChildAdditionEntry } from './AddChildBuilder';
|
|
2
3
|
import { IAddBuilder } from './IAddBuilder';
|
|
3
4
|
import { IAddChildBuilder } from './IAddChildBuilder';
|
|
4
5
|
import { ICompositeKeyBuilder } from './ICompositeKeyBuilder';
|
|
@@ -12,6 +13,7 @@ export interface JoinEntry {
|
|
|
12
13
|
on: string;
|
|
13
14
|
properties: Record<string, string>;
|
|
14
15
|
key: string;
|
|
16
|
+
children: ChildAdditionEntry[];
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* Concrete implementation of {@link IJoinBuilder}.
|
|
@@ -33,7 +35,7 @@ export declare class JoinBuilder<TReadModel, TEvent> implements IJoinBuilder<TRe
|
|
|
33
35
|
/** @inheritdoc */
|
|
34
36
|
usingParentKeyFromContext(_contextPropertyName: string): this;
|
|
35
37
|
/** @inheritdoc */
|
|
36
|
-
usingCompositeKey<TKeyType>(
|
|
38
|
+
usingCompositeKey<TKeyType>(builderCallback: (builder: ICompositeKeyBuilder<TKeyType, TEvent>) => void): this;
|
|
37
39
|
/** @inheritdoc */
|
|
38
40
|
usingParentCompositeKey<TKeyType>(_builderCallback: (builder: ICompositeKeyBuilder<TKeyType, TEvent>) => void): this;
|
|
39
41
|
/** @inheritdoc */
|
|
@@ -45,13 +47,13 @@ export declare class JoinBuilder<TReadModel, TEvent> implements IJoinBuilder<TRe
|
|
|
45
47
|
/** @inheritdoc */
|
|
46
48
|
decrement(readModelPropertyAccessor: PropertyAccessor<TReadModel>): this;
|
|
47
49
|
/** @inheritdoc */
|
|
48
|
-
add(
|
|
50
|
+
add(readModelPropertyAccessor: PropertyAccessor<TReadModel>): IAddBuilder<TEvent, this>;
|
|
49
51
|
/** @inheritdoc */
|
|
50
|
-
subtract(
|
|
52
|
+
subtract(readModelPropertyAccessor: PropertyAccessor<TReadModel>): ISubtractBuilder<TEvent, this>;
|
|
51
53
|
/** @inheritdoc */
|
|
52
|
-
count(
|
|
54
|
+
count(readModelPropertyAccessor: PropertyAccessor<TReadModel>): this;
|
|
53
55
|
/** @inheritdoc */
|
|
54
|
-
addChild<TChildModel>(
|
|
56
|
+
addChild<TChildModel>(targetPropertyAccessor: PropertyAccessor<TReadModel>, eventPropertyAccessorOrBuilderCallback: PropertyAccessor<TEvent> | ((builder: IAddChildBuilder<TChildModel, TEvent>) => void)): this;
|
|
55
57
|
/** @inheritdoc */
|
|
56
58
|
setThisValue(): ISetBuilder<TEvent, this>;
|
|
57
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JoinBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/JoinBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"JoinBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/JoinBuilder.ts"],"names":[],"mappings":"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"}
|