@nestjslatam/ddd-lib 1.0.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/LICENSE +21 -0
- package/README.md +13 -0
- package/command.base.d.ts +7 -0
- package/command.base.js +21 -0
- package/command.base.js.map +1 -0
- package/core/broken-rules/broken-rule-collection.d.ts +11 -0
- package/core/broken-rules/broken-rule-collection.js +44 -0
- package/core/broken-rules/broken-rule-collection.js.map +1 -0
- package/core/broken-rules/broken-rule.d.ts +6 -0
- package/core/broken-rules/broken-rule.js +21 -0
- package/core/broken-rules/broken-rule.js.map +1 -0
- package/core/broken-rules/index.d.ts +2 -0
- package/core/broken-rules/index.js +19 -0
- package/core/broken-rules/index.js.map +1 -0
- package/core/index.d.ts +3 -0
- package/core/index.js +20 -0
- package/core/index.js.map +1 -0
- package/core/interfaces/command-bus.interface.d.ts +4 -0
- package/core/interfaces/command-bus.interface.js +3 -0
- package/core/interfaces/command-bus.interface.js.map +1 -0
- package/core/interfaces/command-handler.interface.d.ts +4 -0
- package/core/interfaces/command-handler.interface.js +3 -0
- package/core/interfaces/command-handler.interface.js.map +1 -0
- package/core/interfaces/command-metadata.interface.d.ts +5 -0
- package/core/interfaces/command-metadata.interface.js +3 -0
- package/core/interfaces/command-metadata.interface.js.map +1 -0
- package/core/interfaces/command-publisher.interface.d.ts +4 -0
- package/core/interfaces/command-publisher.interface.js +3 -0
- package/core/interfaces/command-publisher.interface.js.map +1 -0
- package/core/interfaces/command.interface.d.ts +5 -0
- package/core/interfaces/command.interface.js +3 -0
- package/core/interfaces/command.interface.js.map +1 -0
- package/core/interfaces/domain-event-bus.interface.d.ts +5 -0
- package/core/interfaces/domain-event-bus.interface.js +3 -0
- package/core/interfaces/domain-event-bus.interface.js.map +1 -0
- package/core/interfaces/domain-event-handler.interface.d.ts +4 -0
- package/core/interfaces/domain-event-handler.interface.js +3 -0
- package/core/interfaces/domain-event-handler.interface.js.map +1 -0
- package/core/interfaces/domain-event-metadata.interface.d.ts +6 -0
- package/core/interfaces/domain-event-metadata.interface.js +3 -0
- package/core/interfaces/domain-event-metadata.interface.js.map +1 -0
- package/core/interfaces/domain-event-publisher.interface.d.ts +5 -0
- package/core/interfaces/domain-event-publisher.interface.js +3 -0
- package/core/interfaces/domain-event-publisher.interface.js.map +1 -0
- package/core/interfaces/domain-event.interface.d.ts +2 -0
- package/core/interfaces/domain-event.interface.js +3 -0
- package/core/interfaces/domain-event.interface.js.map +1 -0
- package/core/interfaces/domain-repository-read.interface.d.ts +4 -0
- package/core/interfaces/domain-repository-read.interface.js +3 -0
- package/core/interfaces/domain-repository-read.interface.js.map +1 -0
- package/core/interfaces/domain-repository-transaction.interface.d.ts +4 -0
- package/core/interfaces/domain-repository-transaction.interface.js +3 -0
- package/core/interfaces/domain-repository-transaction.interface.js.map +1 -0
- package/core/interfaces/domain-repository-write.interface.d.ts +4 -0
- package/core/interfaces/domain-repository-write.interface.js +3 -0
- package/core/interfaces/domain-repository-write.interface.js.map +1 -0
- package/core/interfaces/index.d.ts +19 -0
- package/core/interfaces/index.js +36 -0
- package/core/interfaces/index.js.map +1 -0
- package/core/interfaces/message-source.interface.d.ts +5 -0
- package/core/interfaces/message-source.interface.js +3 -0
- package/core/interfaces/message-source.interface.js.map +1 -0
- package/core/interfaces/observable-bus.d.ts +6 -0
- package/core/interfaces/observable-bus.js +16 -0
- package/core/interfaces/observable-bus.js.map +1 -0
- package/core/interfaces/saga.interface.d.ts +4 -0
- package/core/interfaces/saga.interface.js +3 -0
- package/core/interfaces/saga.interface.js.map +1 -0
- package/core/interfaces/tracking.interface.d.ts +5 -0
- package/core/interfaces/tracking.interface.js +3 -0
- package/core/interfaces/tracking.interface.js.map +1 -0
- package/core/interfaces/unhandled-exception-info.interface.d.ts +5 -0
- package/core/interfaces/unhandled-exception-info.interface.js +3 -0
- package/core/interfaces/unhandled-exception-info.interface.js.map +1 -0
- package/core/interfaces/unhandled-exception-publisher.interface.d.ts +5 -0
- package/core/interfaces/unhandled-exception-publisher.interface.js +3 -0
- package/core/interfaces/unhandled-exception-publisher.interface.js.map +1 -0
- package/core/pagination.base.d.ts +25 -0
- package/core/pagination.base.js +22 -0
- package/core/pagination.base.js.map +1 -0
- package/ddd.module.d.ts +12 -0
- package/ddd.module.js +48 -0
- package/ddd.module.js.map +1 -0
- package/ddd.options.d.ts +7 -0
- package/ddd.options.js +3 -0
- package/ddd.options.js.map +1 -0
- package/ddd.service.d.ts +14 -0
- package/ddd.service.js +53 -0
- package/ddd.service.js.map +1 -0
- package/decorators/command-handler.decorator.d.ts +3 -0
- package/decorators/command-handler.decorator.js +16 -0
- package/decorators/command-handler.decorator.js.map +1 -0
- package/decorators/constants.d.ts +5 -0
- package/decorators/constants.js +9 -0
- package/decorators/constants.js.map +1 -0
- package/decorators/events-handler.decorator.d.ts +3 -0
- package/decorators/events-handler.decorator.js +18 -0
- package/decorators/events-handler.decorator.js.map +1 -0
- package/decorators/index.d.ts +4 -0
- package/decorators/index.js +21 -0
- package/decorators/index.js.map +1 -0
- package/decorators/saga.decorator.d.ts +2 -0
- package/decorators/saga.decorator.js +13 -0
- package/decorators/saga.decorator.js.map +1 -0
- package/domain-aggregate-root.d.ts +13 -0
- package/domain-aggregate-root.js +39 -0
- package/domain-aggregate-root.js.map +1 -0
- package/domain-command-bus.d.ts +21 -0
- package/domain-command-bus.js +81 -0
- package/domain-command-bus.js.map +1 -0
- package/domain-entity.d.ts +33 -0
- package/domain-entity.js +104 -0
- package/domain-entity.js.map +1 -0
- package/domain-event-bus.d.ts +34 -0
- package/domain-event-bus.js +141 -0
- package/domain-event-bus.js.map +1 -0
- package/domain-event-collection.d.ts +11 -0
- package/domain-event-collection.js +33 -0
- package/domain-event-collection.js.map +1 -0
- package/domain-event-publisher.d.ts +12 -0
- package/domain-event-publisher.js +48 -0
- package/domain-event-publisher.js.map +1 -0
- package/domain-event.d.ts +15 -0
- package/domain-event.js +28 -0
- package/domain-event.js.map +1 -0
- package/exceptions/constants.d.ts +6 -0
- package/exceptions/constants.js +10 -0
- package/exceptions/constants.js.map +1 -0
- package/exceptions/exception.base.d.ts +17 -0
- package/exceptions/exception.base.js +23 -0
- package/exceptions/exception.base.js.map +1 -0
- package/exceptions/exceptions.d.ts +32 -0
- package/exceptions/exceptions.js +71 -0
- package/exceptions/exceptions.js.map +1 -0
- package/exceptions/index.d.ts +3 -0
- package/exceptions/index.js +20 -0
- package/exceptions/index.js.map +1 -0
- package/helpers/datetime.helper.d.ts +3 -0
- package/helpers/datetime.helper.js +13 -0
- package/helpers/datetime.helper.js.map +1 -0
- package/helpers/default-command-pubsub.helper.d.ts +7 -0
- package/helpers/default-command-pubsub.helper.js +13 -0
- package/helpers/default-command-pubsub.helper.js.map +1 -0
- package/helpers/default-get-event-id.helper.d.ts +4 -0
- package/helpers/default-get-event-id.helper.js +14 -0
- package/helpers/default-get-event-id.helper.js.map +1 -0
- package/helpers/default-pubsub.helper.d.ts +8 -0
- package/helpers/default-pubsub.helper.js +16 -0
- package/helpers/default-pubsub.helper.js.map +1 -0
- package/helpers/default-unhandled-exception-pubsub.helper.d.ts +8 -0
- package/helpers/default-unhandled-exception-pubsub.helper.js +13 -0
- package/helpers/default-unhandled-exception-pubsub.helper.js.map +1 -0
- package/helpers/domain-guard.helper.d.ts +13 -0
- package/helpers/domain-guard.helper.js +60 -0
- package/helpers/domain-guard.helper.js.map +1 -0
- package/helpers/domain-object.helper.d.ts +1 -0
- package/helpers/domain-object.helper.js +37 -0
- package/helpers/domain-object.helper.js.map +1 -0
- package/helpers/index.d.ts +7 -0
- package/helpers/index.js +24 -0
- package/helpers/index.js.map +1 -0
- package/index.d.ts +15 -0
- package/index.js +32 -0
- package/index.js.map +1 -0
- package/package.json +23 -0
- package/tsconfig.lib.tsbuildinfo +1 -0
- package/unhandled-exeption-bus.d.ts +15 -0
- package/unhandled-exeption-bus.js +45 -0
- package/unhandled-exeption-bus.js.map +1 -0
- package/valueobjects/domain-audit.valueobject.d.ts +23 -0
- package/valueobjects/domain-audit.valueobject.js +59 -0
- package/valueobjects/domain-audit.valueobject.js.map +1 -0
- package/valueobjects/domain-date.valueobject.d.ts +6 -0
- package/valueobjects/domain-date.valueobject.js +20 -0
- package/valueobjects/domain-date.valueobject.js.map +1 -0
- package/valueobjects/domain-number.valueobject.d.ts +6 -0
- package/valueobjects/domain-number.valueobject.js +21 -0
- package/valueobjects/domain-number.valueobject.js.map +1 -0
- package/valueobjects/domain-string.valueobject.d.ts +6 -0
- package/valueobjects/domain-string.valueobject.js +21 -0
- package/valueobjects/domain-string.valueobject.js.map +1 -0
- package/valueobjects/domain-uid.valueobject.d.ts +6 -0
- package/valueobjects/domain-uid.valueobject.js +20 -0
- package/valueobjects/domain-uid.valueobject.js.map +1 -0
- package/valueobjects/domain-valueobject.d.ts +23 -0
- package/valueobjects/domain-valueobject.js +55 -0
- package/valueobjects/domain-valueobject.js.map +1 -0
- package/valueobjects/index.d.ts +6 -0
- package/valueobjects/index.js +23 -0
- package/valueobjects/index.js.map +1 -0
package/domain-entity.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DomainEntity = void 0;
|
|
4
|
+
const helpers_1 = require("./helpers");
|
|
5
|
+
const core_1 = require("./core");
|
|
6
|
+
class DomainEntity {
|
|
7
|
+
constructor({ id, props, audit }) {
|
|
8
|
+
this._brokenRules = new core_1.BrokenRuleCollection();
|
|
9
|
+
this.guard(props);
|
|
10
|
+
this.businessRules(props);
|
|
11
|
+
this._isValid = this._brokenRules.getItems().length ? true : false;
|
|
12
|
+
this._id = id;
|
|
13
|
+
this.props = props;
|
|
14
|
+
this._audit = audit;
|
|
15
|
+
this.markAsNew();
|
|
16
|
+
}
|
|
17
|
+
getId() {
|
|
18
|
+
return this._id.unpack();
|
|
19
|
+
}
|
|
20
|
+
getIsValid() {
|
|
21
|
+
return this._isValid;
|
|
22
|
+
}
|
|
23
|
+
getAudit() {
|
|
24
|
+
return this._audit;
|
|
25
|
+
}
|
|
26
|
+
addBrokenRule(brokenRule) {
|
|
27
|
+
if (!brokenRule)
|
|
28
|
+
return;
|
|
29
|
+
this._brokenRules.add(brokenRule);
|
|
30
|
+
}
|
|
31
|
+
removeBrokenRule(brokenRule) {
|
|
32
|
+
if (!brokenRule)
|
|
33
|
+
return;
|
|
34
|
+
this._brokenRules.remove(brokenRule);
|
|
35
|
+
}
|
|
36
|
+
getBrokenRules() {
|
|
37
|
+
return this._brokenRules.getItems();
|
|
38
|
+
}
|
|
39
|
+
getBrokenRulesAsString() {
|
|
40
|
+
let result = '';
|
|
41
|
+
this._brokenRules.getItems().map((brokenRule) => {
|
|
42
|
+
result += `${brokenRule.code}-${brokenRule.description}`;
|
|
43
|
+
});
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
markAsNew() {
|
|
47
|
+
this._trackingStatus = {
|
|
48
|
+
...this._trackingStatus,
|
|
49
|
+
isNew: true,
|
|
50
|
+
isDirty: false,
|
|
51
|
+
isDeleted: false,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
marAsDirty() {
|
|
55
|
+
this._trackingStatus = {
|
|
56
|
+
...this._trackingStatus,
|
|
57
|
+
isNew: true,
|
|
58
|
+
isDirty: true,
|
|
59
|
+
isDeleted: false,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
getTrackingStatus() {
|
|
63
|
+
return this._trackingStatus;
|
|
64
|
+
}
|
|
65
|
+
static isEntity(entity) {
|
|
66
|
+
return entity instanceof DomainEntity;
|
|
67
|
+
}
|
|
68
|
+
equals(object) {
|
|
69
|
+
if (this === object)
|
|
70
|
+
return true;
|
|
71
|
+
if (object === null ||
|
|
72
|
+
object === undefined ||
|
|
73
|
+
!DomainEntity.isEntity(object))
|
|
74
|
+
return false;
|
|
75
|
+
return this._id ? this._id.equals(object._id) : false;
|
|
76
|
+
}
|
|
77
|
+
getPropsCopy() {
|
|
78
|
+
const propsCopy = {
|
|
79
|
+
id: this._id,
|
|
80
|
+
...this.props,
|
|
81
|
+
audit: this._audit,
|
|
82
|
+
...this._trackingStatus,
|
|
83
|
+
};
|
|
84
|
+
return Object.freeze(propsCopy);
|
|
85
|
+
}
|
|
86
|
+
toObject() {
|
|
87
|
+
const plainProps = (0, helpers_1.convertPropsToObject)(this.props);
|
|
88
|
+
const result = {
|
|
89
|
+
id: this._id,
|
|
90
|
+
audit: this._audit,
|
|
91
|
+
...this._trackingStatus,
|
|
92
|
+
...plainProps,
|
|
93
|
+
};
|
|
94
|
+
return Object.freeze(result);
|
|
95
|
+
}
|
|
96
|
+
guard(props) {
|
|
97
|
+
if (helpers_1.DomainGuard.isEmpty(props))
|
|
98
|
+
this._brokenRules.add(new core_1.BrokenRule('props', 'Props is required'));
|
|
99
|
+
if (typeof props !== 'object')
|
|
100
|
+
this._brokenRules.add(new core_1.BrokenRule('props', 'Props is not an object'));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.DomainEntity = DomainEntity;
|
|
104
|
+
//# sourceMappingURL=domain-entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-entity.js","sourceRoot":"","sources":["../../../libs/ddd/src/domain-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { OnModuleDestroy } from '@nestjs/common';
|
|
2
|
+
import { IDomainEvent, IDomainEventBus, IDomainEventHandler, IDomainEventPublisher, ISaga } from './core/interfaces';
|
|
3
|
+
import { Observable, Subscription } from 'rxjs';
|
|
4
|
+
import { ModuleRef } from '@nestjs/core';
|
|
5
|
+
import { ObservableBus } from './core';
|
|
6
|
+
import { DomainCommandBus } from './domain-command-bus';
|
|
7
|
+
import { UnhandledExceptionBus } from './unhandled-exeption-bus';
|
|
8
|
+
import { Type } from './type.interface';
|
|
9
|
+
export type DomainEventHandlerType<DomainEventBase extends IDomainEvent = IDomainEvent> = Type<IDomainEventHandler<DomainEventBase>>;
|
|
10
|
+
export declare class DomainEventBus<DomainEventBase extends IDomainEvent = IDomainEvent> extends ObservableBus<DomainEventBase> implements IDomainEventBus<DomainEventBase>, OnModuleDestroy {
|
|
11
|
+
private readonly commandBus;
|
|
12
|
+
private readonly moduleRef;
|
|
13
|
+
private readonly unhandledExceptionBus;
|
|
14
|
+
protected getDomainEventId: (domainEvent: DomainEventBase) => string | null;
|
|
15
|
+
protected readonly subscriptions: Subscription[];
|
|
16
|
+
private _publisher;
|
|
17
|
+
private readonly _logger;
|
|
18
|
+
constructor(commandBus: DomainCommandBus, moduleRef: ModuleRef, unhandledExceptionBus: UnhandledExceptionBus);
|
|
19
|
+
get publisher(): IDomainEventPublisher<DomainEventBase>;
|
|
20
|
+
set publisher(value: IDomainEventPublisher<DomainEventBase>);
|
|
21
|
+
onModuleDestroy(): void;
|
|
22
|
+
publish<T extends DomainEventBase>(domainEvent: T): any;
|
|
23
|
+
publishAll(domainEvents: DomainEventBase[]): any;
|
|
24
|
+
bind(handler: IDomainEventHandler<DomainEventBase>, id: string): void;
|
|
25
|
+
registerSagas(types?: Type<unknown>[]): void;
|
|
26
|
+
register(handlers?: DomainEventHandlerType<DomainEventBase>[]): void;
|
|
27
|
+
protected registerHandler(handler: DomainEventHandlerType<DomainEventBase>): void;
|
|
28
|
+
protected ofEventId(id: string): Observable<DomainEventBase>;
|
|
29
|
+
protected registerSaga(saga: ISaga<DomainEventBase>): void;
|
|
30
|
+
private reflectEvents;
|
|
31
|
+
private useDefaultPublisher;
|
|
32
|
+
private mapToUnhandledErrorInfo;
|
|
33
|
+
private isUnhandledErrorInfo;
|
|
34
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var DomainEventBus_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.DomainEventBus = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const rxjs_1 = require("rxjs");
|
|
16
|
+
const core_1 = require("@nestjs/core");
|
|
17
|
+
const helpers_1 = require("./helpers");
|
|
18
|
+
const core_2 = require("./core");
|
|
19
|
+
const domain_command_bus_1 = require("./domain-command-bus");
|
|
20
|
+
const unhandled_exeption_bus_1 = require("./unhandled-exeption-bus");
|
|
21
|
+
const decorators_1 = require("./decorators");
|
|
22
|
+
const exceptions_1 = require("./exceptions");
|
|
23
|
+
let DomainEventBus = DomainEventBus_1 = class DomainEventBus extends core_2.ObservableBus {
|
|
24
|
+
constructor(commandBus, moduleRef, unhandledExceptionBus) {
|
|
25
|
+
super();
|
|
26
|
+
this.commandBus = commandBus;
|
|
27
|
+
this.moduleRef = moduleRef;
|
|
28
|
+
this.unhandledExceptionBus = unhandledExceptionBus;
|
|
29
|
+
this._logger = new common_1.Logger(DomainEventBus_1.name);
|
|
30
|
+
this.subscriptions = [];
|
|
31
|
+
this.getDomainEventId = helpers_1.defaultGetDomainEventIdHelper;
|
|
32
|
+
this.useDefaultPublisher();
|
|
33
|
+
}
|
|
34
|
+
get publisher() {
|
|
35
|
+
return this._publisher;
|
|
36
|
+
}
|
|
37
|
+
set publisher(value) {
|
|
38
|
+
this._publisher = value;
|
|
39
|
+
}
|
|
40
|
+
onModuleDestroy() {
|
|
41
|
+
this.subscriptions.forEach((subscription) => subscription.unsubscribe());
|
|
42
|
+
}
|
|
43
|
+
publish(domainEvent) {
|
|
44
|
+
return this._publisher.publish(domainEvent);
|
|
45
|
+
}
|
|
46
|
+
publishAll(domainEvents) {
|
|
47
|
+
if (this._publisher.publishAll) {
|
|
48
|
+
return this._publisher.publishAll(domainEvents);
|
|
49
|
+
}
|
|
50
|
+
return (domainEvents || []).map((event) => this._publisher.publish(event));
|
|
51
|
+
}
|
|
52
|
+
bind(handler, id) {
|
|
53
|
+
const stream$ = id ? this.ofEventId(id) : this.subject$;
|
|
54
|
+
const subscription = stream$
|
|
55
|
+
.pipe((0, rxjs_1.mergeMap)((event) => (0, rxjs_1.defer)(() => Promise.resolve(handler.handle(event))).pipe((0, rxjs_1.catchError)((error) => (0, rxjs_1.throwError)(() => this.mapToUnhandledErrorInfo(event, error))))))
|
|
56
|
+
.subscribe({
|
|
57
|
+
error: (error) => {
|
|
58
|
+
if (this.isUnhandledErrorInfo(error)) {
|
|
59
|
+
this.unhandledExceptionBus.publish(error);
|
|
60
|
+
error = error.exception;
|
|
61
|
+
}
|
|
62
|
+
this._logger.error(`"${handler.constructor.name}" has thrown an unhandled exception.`, error);
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
this.subscriptions.push(subscription);
|
|
66
|
+
}
|
|
67
|
+
registerSagas(types = []) {
|
|
68
|
+
const sagas = types
|
|
69
|
+
.map((target) => {
|
|
70
|
+
const metadata = Reflect.getMetadata(decorators_1.DOMAIN_SAGA_METADATA, target) || [];
|
|
71
|
+
const instance = this.moduleRef.get(target, { strict: false });
|
|
72
|
+
if (!instance) {
|
|
73
|
+
throw new exceptions_1.DomainInvalidSagaException('Saga instance not found.');
|
|
74
|
+
}
|
|
75
|
+
return metadata.map((key) => instance[key].bind(instance));
|
|
76
|
+
})
|
|
77
|
+
.reduce((a, b) => a.concat(b), []);
|
|
78
|
+
sagas.forEach((saga) => this.registerSaga(saga));
|
|
79
|
+
}
|
|
80
|
+
register(handlers = []) {
|
|
81
|
+
handlers.forEach((handler) => this.registerHandler(handler));
|
|
82
|
+
}
|
|
83
|
+
registerHandler(handler) {
|
|
84
|
+
const instance = this.moduleRef.get(handler, { strict: false });
|
|
85
|
+
if (!instance) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const events = this.reflectEvents(handler);
|
|
89
|
+
events.map((event) => this.bind(instance, (0, helpers_1.defaultGetDomainEventIdHelper)(event)));
|
|
90
|
+
}
|
|
91
|
+
ofEventId(id) {
|
|
92
|
+
return this.subject$.pipe((0, rxjs_1.filter)((event) => this.getDomainEventId(event) === id));
|
|
93
|
+
}
|
|
94
|
+
registerSaga(saga) {
|
|
95
|
+
if (typeof saga !== 'function') {
|
|
96
|
+
throw new exceptions_1.DomainInvalidSagaException('Saga must be a function.');
|
|
97
|
+
}
|
|
98
|
+
const stream$ = saga(this);
|
|
99
|
+
if (!(stream$ instanceof rxjs_1.Observable)) {
|
|
100
|
+
throw new exceptions_1.DomainInvalidSagaException('Saga must return an Observable.');
|
|
101
|
+
}
|
|
102
|
+
const subscription = stream$
|
|
103
|
+
.pipe((0, rxjs_1.filter)((e) => !!e), (0, rxjs_1.mergeMap)((command) => (0, rxjs_1.defer)(() => this.commandBus.execute(command)).pipe((0, rxjs_1.catchError)((error) => (0, rxjs_1.throwError)(() => this.mapToUnhandledErrorInfo(command, error))))))
|
|
104
|
+
.subscribe({
|
|
105
|
+
error: (error) => {
|
|
106
|
+
if (this.isUnhandledErrorInfo(error)) {
|
|
107
|
+
this.unhandledExceptionBus.publish(error);
|
|
108
|
+
error = error.exception;
|
|
109
|
+
}
|
|
110
|
+
this._logger.error(`Command handler which execution was triggered by Saga has thrown an unhandled exception.`, error);
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
this.subscriptions.push(subscription);
|
|
114
|
+
}
|
|
115
|
+
reflectEvents(handler) {
|
|
116
|
+
return Reflect.getMetadata(decorators_1.DOMAIN_EVENTS_HANDLER_METADATA, handler);
|
|
117
|
+
}
|
|
118
|
+
useDefaultPublisher() {
|
|
119
|
+
this._publisher = new helpers_1.DefaultPubSubHelper(this.subject$);
|
|
120
|
+
}
|
|
121
|
+
mapToUnhandledErrorInfo(eventOrCommand, exception) {
|
|
122
|
+
return {
|
|
123
|
+
cause: eventOrCommand,
|
|
124
|
+
exception,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
isUnhandledErrorInfo(error) {
|
|
128
|
+
return (typeof error === 'object' &&
|
|
129
|
+
error !== null &&
|
|
130
|
+
'cause' in error &&
|
|
131
|
+
'exception' in error);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
exports.DomainEventBus = DomainEventBus;
|
|
135
|
+
exports.DomainEventBus = DomainEventBus = DomainEventBus_1 = __decorate([
|
|
136
|
+
(0, common_1.Injectable)(),
|
|
137
|
+
__metadata("design:paramtypes", [domain_command_bus_1.DomainCommandBus,
|
|
138
|
+
core_1.ModuleRef,
|
|
139
|
+
unhandled_exeption_bus_1.UnhandledExceptionBus])
|
|
140
|
+
], DomainEventBus);
|
|
141
|
+
//# sourceMappingURL=domain-event-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-event-bus.js","sourceRoot":"","sources":["../../../libs/ddd/src/domain-event-bus.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAqE;AAWrE,+BAQc;AAEd,uCAAyC;AAEzC,uCAA+E;AAC/E,iCAAuC;AACvC,6DAAwD;AACxD,qEAAiE;AACjE,6CAGsB;AAEtB,6CAA0D;AAOnD,IAAM,cAAc,sBAApB,MAAM,cACX,SAAQ,oBAA8B;IAQtC,YACmB,UAA4B,EAC5B,SAAoB,EACpB,qBAA4C;QAE7D,KAAK,EAAE,CAAC;QAJS,eAAU,GAAV,UAAU,CAAkB;QAC5B,cAAS,GAAT,SAAS,CAAW;QACpB,0BAAqB,GAArB,qBAAqB,CAAuB;QAL9C,YAAO,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;QASzD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,uCAA6B,CAAC;QACtD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,KAA6C;QACzD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAA4B,WAAc;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,YAA+B;QACxC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;SACjD;QACD,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,OAA6C,EAAE,EAAU;QAC5D,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxD,MAAM,YAAY,GAAG,OAAO;aACzB,IAAI,CACH,IAAA,eAAQ,EAAC,CAAC,KAAK,EAAE,EAAE,CACjB,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CACtD,IAAA,iBAAU,EAAC,CAAC,KAAK,EAAE,EAAE,CACnB,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAC7D,CACF,CACF,CACF;aACA,SAAS,CAAC;YACT,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;oBACpC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC1C,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;iBACzB;gBACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,sCAAsC,EAClE,KAAK,CACN,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QACL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,aAAa,CAAC,QAAyB,EAAE;QACvC,MAAM,KAAK,GAAG,KAAK;aAChB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,QAAQ,GACZ,OAAO,CAAC,WAAW,CAAC,iCAAoB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,uCAA0B,CAAC,0BAA0B,CAAC,CAAC;aAClE;YACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,WAAsD,EAAE;QAC/D,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAES,eAAe,CAAC,OAAgD;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,IAAI,CAAC,IAAI,CACP,QAAgD,EAChD,IAAA,uCAA6B,EAAC,KAAK,CAAC,CACrC,CACF,CAAC;IACJ,CAAC;IAES,SAAS,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,aAAM,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CACvD,CAAC;IACJ,CAAC;IAES,YAAY,CAAC,IAA4B;QACjD,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YAC9B,MAAM,IAAI,uCAA0B,CAAC,0BAA0B,CAAC,CAAC;SAClE;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,OAAO,YAAY,iBAAU,CAAC,EAAE;YACpC,MAAM,IAAI,uCAA0B,CAAC,iCAAiC,CAAC,CAAC;SACzE;QAED,MAAM,YAAY,GAAG,OAAO;aACzB,IAAI,CACH,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAClB,IAAA,eAAQ,EAAC,CAAC,OAAO,EAAE,EAAE,CACnB,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAChD,IAAA,iBAAU,EAAC,CAAC,KAAK,EAAE,EAAE,CACnB,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAC/D,CACF,CACF,CACF;aACA,SAAS,CAAC;YACT,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;oBACpC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC1C,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;iBACzB;gBACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,0FAA0F,EAC1F,KAAK,CACN,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAEO,aAAa,CACnB,OAAgD;QAEhD,OAAO,OAAO,CAAC,WAAW,CAAC,2CAA8B,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,6BAAmB,CAAkB,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAEO,uBAAuB,CAC7B,cAAuC,EACvC,SAAkB;QAElB,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,SAAS;SACV,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAC1B,KAAc;QAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,OAAO,IAAI,KAAK;YAChB,WAAW,IAAI,KAAK,CACrB,CAAC;IACJ,CAAC;CACF,CAAA;AAjLY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAWoB,qCAAgB;QACjB,gBAAS;QACG,8CAAqB;GAZpD,cAAc,CAiL1B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DomainEvent } from './domain-event';
|
|
2
|
+
export declare class DomainEventCollection {
|
|
3
|
+
private _domainEvents;
|
|
4
|
+
constructor();
|
|
5
|
+
getItems(): DomainEvent[];
|
|
6
|
+
exists(domainEvent: DomainEvent): boolean;
|
|
7
|
+
add(domainEvent: DomainEvent): void;
|
|
8
|
+
remove(domainEvent: DomainEvent): void;
|
|
9
|
+
clear(): void;
|
|
10
|
+
get count(): number;
|
|
11
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DomainEventCollection = void 0;
|
|
4
|
+
class DomainEventCollection {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._domainEvents = [];
|
|
7
|
+
this._domainEvents = new Array();
|
|
8
|
+
}
|
|
9
|
+
getItems() {
|
|
10
|
+
return this._domainEvents;
|
|
11
|
+
}
|
|
12
|
+
exists(domainEvent) {
|
|
13
|
+
return this._domainEvents.some((e) => e.domainEventId === domainEvent.domainEventId);
|
|
14
|
+
}
|
|
15
|
+
add(domainEvent) {
|
|
16
|
+
if (!domainEvent)
|
|
17
|
+
return;
|
|
18
|
+
this._domainEvents.push(domainEvent);
|
|
19
|
+
}
|
|
20
|
+
remove(domainEvent) {
|
|
21
|
+
if (!domainEvent)
|
|
22
|
+
return;
|
|
23
|
+
this._domainEvents = this._domainEvents.filter((e) => e.domainEventId === domainEvent.domainEventId);
|
|
24
|
+
}
|
|
25
|
+
clear() {
|
|
26
|
+
this._domainEvents = [];
|
|
27
|
+
}
|
|
28
|
+
get count() {
|
|
29
|
+
return this._domainEvents.length;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.DomainEventCollection = DomainEventCollection;
|
|
33
|
+
//# sourceMappingURL=domain-event-collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-event-collection.js","sourceRoot":"","sources":["../../../libs/ddd/src/domain-event-collection.ts"],"names":[],"mappings":";;;AAEA,MAAa,qBAAqB;IAGhC;QAFQ,kBAAa,GAAuB,EAAE,CAAC;QAG7C,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,EAAe,CAAC;IAChD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,WAAwB;QAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,WAAW,CAAC,aAAa,CACrD,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,WAAwB;QAC1B,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,WAAwB;QAC7B,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,WAAW,CAAC,aAAa,CACrD,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACnC,CAAC;CACF;AAtCD,sDAsCC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DomainEventBus } from './domain-event-bus';
|
|
2
|
+
import { IDomainEvent } from './core';
|
|
3
|
+
import { DomainAggregateRoot } from './domain-aggregate-root';
|
|
4
|
+
export interface Constructor<T> {
|
|
5
|
+
new (...args: any[]): T;
|
|
6
|
+
}
|
|
7
|
+
export declare class DomainEventPublisher<DomainEventBase extends IDomainEvent = IDomainEvent> {
|
|
8
|
+
private readonly eventBus;
|
|
9
|
+
constructor(eventBus: DomainEventBus<DomainEventBase>);
|
|
10
|
+
mergeClassContext<T extends Constructor<DomainAggregateRoot<any, DomainEventBase>>>(metatype: T): T;
|
|
11
|
+
mergeObjectContext<T extends DomainAggregateRoot<any, DomainEventBase>>(object: T): T;
|
|
12
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DomainEventPublisher = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const domain_event_bus_1 = require("./domain-event-bus");
|
|
15
|
+
let DomainEventPublisher = class DomainEventPublisher {
|
|
16
|
+
constructor(eventBus) {
|
|
17
|
+
this.eventBus = eventBus;
|
|
18
|
+
}
|
|
19
|
+
mergeClassContext(metatype) {
|
|
20
|
+
const eventBus = this.eventBus;
|
|
21
|
+
return class extends metatype {
|
|
22
|
+
businessRules(props) {
|
|
23
|
+
}
|
|
24
|
+
publish(event) {
|
|
25
|
+
eventBus.publish(event);
|
|
26
|
+
}
|
|
27
|
+
publishAll(events) {
|
|
28
|
+
eventBus.publishAll(events);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
mergeObjectContext(object) {
|
|
33
|
+
const eventBus = this.eventBus;
|
|
34
|
+
object.publish = (event) => {
|
|
35
|
+
eventBus.publish(event);
|
|
36
|
+
};
|
|
37
|
+
object.publishAll = (events) => {
|
|
38
|
+
eventBus.publishAll(events);
|
|
39
|
+
};
|
|
40
|
+
return object;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.DomainEventPublisher = DomainEventPublisher;
|
|
44
|
+
exports.DomainEventPublisher = DomainEventPublisher = __decorate([
|
|
45
|
+
(0, common_1.Injectable)(),
|
|
46
|
+
__metadata("design:paramtypes", [domain_event_bus_1.DomainEventBus])
|
|
47
|
+
], DomainEventPublisher);
|
|
48
|
+
//# sourceMappingURL=domain-event-publisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-event-publisher.js","sourceRoot":"","sources":["../../../libs/ddd/src/domain-event-publisher.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,yDAAoD;AAS7C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAG/B,YAA6B,QAAyC;QAAzC,aAAQ,GAAR,QAAQ,CAAiC;IAAG,CAAC;IAO1E,iBAAiB,CAEf,QAAW;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,KAAM,SAAQ,QAAQ;YACjB,aAAa,CAAC,KAAU;YAElC,CAAC;YACD,OAAO,CAAC,KAAsB;gBAC5B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,UAAU,CAAC,MAAyB;gBAClC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;IAOD,kBAAkB,CAChB,MAAS;QAET,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG,CAAC,KAAsB,EAAE,EAAE;YAC1C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,MAAM,CAAC,UAAU,GAAG,CAAC,MAAyB,EAAE,EAAE;YAChD,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA9CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAI4B,iCAAc;GAH1C,oBAAoB,CA8ChC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IDomainEvent, IDomainEventMetadata } from './core';
|
|
2
|
+
export type DomainEventProps<T> = Omit<T, 'id' | 'metadata'> & {
|
|
3
|
+
readonly aggregateId: string;
|
|
4
|
+
readonly eventName: string;
|
|
5
|
+
readonly data?: string;
|
|
6
|
+
readonly metadata?: IDomainEventMetadata;
|
|
7
|
+
};
|
|
8
|
+
export declare abstract class DomainEvent implements IDomainEvent {
|
|
9
|
+
readonly domainEventId: string;
|
|
10
|
+
readonly aggregateId: string;
|
|
11
|
+
readonly eventName: string;
|
|
12
|
+
readonly data: string;
|
|
13
|
+
readonly metadata: IDomainEventMetadata;
|
|
14
|
+
constructor(props: DomainEventProps<unknown>);
|
|
15
|
+
}
|
package/domain-event.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DomainEvent = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const _1 = require(".");
|
|
6
|
+
const helpers_1 = require("./helpers");
|
|
7
|
+
class DomainEvent {
|
|
8
|
+
constructor(props) {
|
|
9
|
+
if (_1.DomainGuard.isEmpty(props))
|
|
10
|
+
throw new Error('DomainEvent props is empty');
|
|
11
|
+
try {
|
|
12
|
+
this.domainEventId = (0, uuid_1.v4)().toString();
|
|
13
|
+
this.eventName = props?.eventName || this.constructor.name;
|
|
14
|
+
this.data = props?.data || JSON.stringify(this);
|
|
15
|
+
this.metadata = {
|
|
16
|
+
aggregateId: props?.aggregateId || '',
|
|
17
|
+
trackingId: this.metadata?.trackingId,
|
|
18
|
+
timestamp: Date.now(),
|
|
19
|
+
ocurredOn: helpers_1.DateTimeHelper.getUtcDate(),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
throw new Error(`Error generating DomainEvent Id: ${error}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.DomainEvent = DomainEvent;
|
|
28
|
+
//# sourceMappingURL=domain-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../../libs/ddd/src/domain-event.ts"],"names":[],"mappings":";;;AAAA,+BAA0B;AAE1B,wBAAgC;AAChC,uCAA2C;AAS3C,MAAsB,WAAW;IAO/B,YAAY,KAAgC;QAC1C,IAAI,cAAW,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEhD,IAAI;YACF,IAAI,CAAC,aAAa,GAAG,IAAA,SAAE,GAAE,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC3D,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG;gBACd,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU;gBACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,SAAS,EAAE,wBAAc,CAAC,UAAU,EAAE;aACvC,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;SAC9D;IACH,CAAC;CACF;AAzBD,kCAyBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const DOMAIN_ARGUMENT_INVALID = "DOMAIN_GENERIC_ARGUMENT_INVALID";
|
|
2
|
+
export declare const DOMAIN_ARGUMENT_OUT_OF_RANGE = "DOMAIN_GENERIC_ARGUMENT_OUT_OF_RANGE";
|
|
3
|
+
export declare const DOMAIN_ARGUMENT_NOT_PROVIDED = "DOMAIN_GENERIC_ARGUMENT_NOT_PROVIDED";
|
|
4
|
+
export declare const DOMAIN_NOT_FOUND = "DOMAIN_GENERIC_NOT_FOUND";
|
|
5
|
+
export declare const DOMAIN_CONFLICT = "DOMAIN_GENERIC_CONFLICT";
|
|
6
|
+
export declare const DOMAIN_INTERNAL_SERVER_ERROR = "DOMAIN_GENERIC_INTERNAL_SERVER_ERROR";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DOMAIN_INTERNAL_SERVER_ERROR = exports.DOMAIN_CONFLICT = exports.DOMAIN_NOT_FOUND = exports.DOMAIN_ARGUMENT_NOT_PROVIDED = exports.DOMAIN_ARGUMENT_OUT_OF_RANGE = exports.DOMAIN_ARGUMENT_INVALID = void 0;
|
|
4
|
+
exports.DOMAIN_ARGUMENT_INVALID = 'DOMAIN_GENERIC_ARGUMENT_INVALID';
|
|
5
|
+
exports.DOMAIN_ARGUMENT_OUT_OF_RANGE = 'DOMAIN_GENERIC_ARGUMENT_OUT_OF_RANGE';
|
|
6
|
+
exports.DOMAIN_ARGUMENT_NOT_PROVIDED = 'DOMAIN_GENERIC_ARGUMENT_NOT_PROVIDED';
|
|
7
|
+
exports.DOMAIN_NOT_FOUND = 'DOMAIN_GENERIC_NOT_FOUND';
|
|
8
|
+
exports.DOMAIN_CONFLICT = 'DOMAIN_GENERIC_CONFLICT';
|
|
9
|
+
exports.DOMAIN_INTERNAL_SERVER_ERROR = 'DOMAIN_GENERIC_INTERNAL_SERVER_ERROR';
|
|
10
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../libs/ddd/src/exceptions/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,iCAAiC,CAAC;AAC5D,QAAA,4BAA4B,GACvC,sCAAsC,CAAC;AAC5B,QAAA,4BAA4B,GACvC,sCAAsC,CAAC;AAC5B,QAAA,gBAAgB,GAAG,0BAA0B,CAAC;AAC9C,QAAA,eAAe,GAAG,yBAAyB,CAAC;AAC5C,QAAA,4BAA4B,GACvC,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface ISerializedException {
|
|
2
|
+
message: string;
|
|
3
|
+
code: string;
|
|
4
|
+
trackingId: string;
|
|
5
|
+
stack?: string;
|
|
6
|
+
cause?: string;
|
|
7
|
+
metadata?: unknown;
|
|
8
|
+
}
|
|
9
|
+
export declare abstract class DomainExceptionBase extends Error {
|
|
10
|
+
readonly message: string;
|
|
11
|
+
readonly cause?: Error;
|
|
12
|
+
readonly metadata?: unknown;
|
|
13
|
+
abstract code: string;
|
|
14
|
+
readonly trackingId: string;
|
|
15
|
+
constructor(message: string, cause?: Error, metadata?: unknown);
|
|
16
|
+
toJSON(): ISerializedException;
|
|
17
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DomainExceptionBase = void 0;
|
|
4
|
+
class DomainExceptionBase extends Error {
|
|
5
|
+
constructor(message, cause, metadata) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.message = message;
|
|
8
|
+
this.cause = cause;
|
|
9
|
+
this.metadata = metadata;
|
|
10
|
+
}
|
|
11
|
+
toJSON() {
|
|
12
|
+
return {
|
|
13
|
+
message: this.message,
|
|
14
|
+
code: this.code,
|
|
15
|
+
stack: this.stack,
|
|
16
|
+
trackingId: this.trackingId,
|
|
17
|
+
cause: JSON.stringify(this.cause),
|
|
18
|
+
metadata: this.metadata,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.DomainExceptionBase = DomainExceptionBase;
|
|
23
|
+
//# sourceMappingURL=exception.base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception.base.js","sourceRoot":"","sources":["../../../../libs/ddd/src/exceptions/exception.base.ts"],"names":[],"mappings":";;;AASA,MAAsB,mBAAoB,SAAQ,KAAK;IAKrD,YACW,OAAe,EACf,KAAa,EACb,QAAkB;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAU;IAG7B,CAAC;IASD,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;CACF;AA9BD,kDA8BC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { DomainExceptionBase } from './exception.base';
|
|
2
|
+
export declare class DomainArgumentInvalidException extends DomainExceptionBase {
|
|
3
|
+
readonly code = "DOMAIN_GENERIC_ARGUMENT_INVALID";
|
|
4
|
+
}
|
|
5
|
+
export declare class DomainArgumentNotProvidedException extends DomainExceptionBase {
|
|
6
|
+
readonly code = "DOMAIN_GENERIC_ARGUMENT_NOT_PROVIDED";
|
|
7
|
+
}
|
|
8
|
+
export declare class DomainArgumentOutOfRangeException extends DomainExceptionBase {
|
|
9
|
+
readonly code = "DOMAIN_GENERIC_ARGUMENT_OUT_OF_RANGE";
|
|
10
|
+
}
|
|
11
|
+
export declare class DomainConflictException extends DomainExceptionBase {
|
|
12
|
+
readonly code = "DOMAIN_GENERIC_CONFLICT";
|
|
13
|
+
}
|
|
14
|
+
export declare class DomainCommandHandlerNotFoundException extends DomainExceptionBase {
|
|
15
|
+
readonly code = "DomainCommandHandler";
|
|
16
|
+
}
|
|
17
|
+
export declare class DomainInvalidCommandHandlerException extends DomainExceptionBase {
|
|
18
|
+
readonly code = "DomainInvalidCommandHandler";
|
|
19
|
+
}
|
|
20
|
+
export declare class DomainInvalidSagaException extends DomainExceptionBase {
|
|
21
|
+
readonly code = "DomainInvalidSaga";
|
|
22
|
+
}
|
|
23
|
+
export declare class DomainNotFoundException extends DomainExceptionBase {
|
|
24
|
+
static readonly message = "Not found";
|
|
25
|
+
constructor(message?: string);
|
|
26
|
+
readonly code = "DOMAIN_GENERIC_NOT_FOUND";
|
|
27
|
+
}
|
|
28
|
+
export declare class DomainInternalServerErrorException extends DomainExceptionBase {
|
|
29
|
+
static readonly message = "Internal server error";
|
|
30
|
+
constructor(message?: string);
|
|
31
|
+
readonly code = "DOMAIN_GENERIC_INTERNAL_SERVER_ERROR";
|
|
32
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DomainInternalServerErrorException = exports.DomainNotFoundException = exports.DomainInvalidSagaException = exports.DomainInvalidCommandHandlerException = exports.DomainCommandHandlerNotFoundException = exports.DomainConflictException = exports.DomainArgumentOutOfRangeException = exports.DomainArgumentNotProvidedException = exports.DomainArgumentInvalidException = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
const exception_base_1 = require("./exception.base");
|
|
6
|
+
class DomainArgumentInvalidException extends exception_base_1.DomainExceptionBase {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.code = constants_1.DOMAIN_ARGUMENT_INVALID;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.DomainArgumentInvalidException = DomainArgumentInvalidException;
|
|
13
|
+
class DomainArgumentNotProvidedException extends exception_base_1.DomainExceptionBase {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.code = constants_1.DOMAIN_ARGUMENT_NOT_PROVIDED;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.DomainArgumentNotProvidedException = DomainArgumentNotProvidedException;
|
|
20
|
+
class DomainArgumentOutOfRangeException extends exception_base_1.DomainExceptionBase {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.code = constants_1.DOMAIN_ARGUMENT_OUT_OF_RANGE;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.DomainArgumentOutOfRangeException = DomainArgumentOutOfRangeException;
|
|
27
|
+
class DomainConflictException extends exception_base_1.DomainExceptionBase {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.code = constants_1.DOMAIN_CONFLICT;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.DomainConflictException = DomainConflictException;
|
|
34
|
+
class DomainCommandHandlerNotFoundException extends exception_base_1.DomainExceptionBase {
|
|
35
|
+
constructor() {
|
|
36
|
+
super(...arguments);
|
|
37
|
+
this.code = 'DomainCommandHandler';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.DomainCommandHandlerNotFoundException = DomainCommandHandlerNotFoundException;
|
|
41
|
+
class DomainInvalidCommandHandlerException extends exception_base_1.DomainExceptionBase {
|
|
42
|
+
constructor() {
|
|
43
|
+
super(...arguments);
|
|
44
|
+
this.code = 'DomainInvalidCommandHandler';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.DomainInvalidCommandHandlerException = DomainInvalidCommandHandlerException;
|
|
48
|
+
class DomainInvalidSagaException extends exception_base_1.DomainExceptionBase {
|
|
49
|
+
constructor() {
|
|
50
|
+
super(...arguments);
|
|
51
|
+
this.code = 'DomainInvalidSaga';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.DomainInvalidSagaException = DomainInvalidSagaException;
|
|
55
|
+
class DomainNotFoundException extends exception_base_1.DomainExceptionBase {
|
|
56
|
+
constructor(message = DomainNotFoundException.message) {
|
|
57
|
+
super(message);
|
|
58
|
+
this.code = constants_1.DOMAIN_NOT_FOUND;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.DomainNotFoundException = DomainNotFoundException;
|
|
62
|
+
DomainNotFoundException.message = 'Not found';
|
|
63
|
+
class DomainInternalServerErrorException extends exception_base_1.DomainExceptionBase {
|
|
64
|
+
constructor(message = DomainInternalServerErrorException.message) {
|
|
65
|
+
super(message);
|
|
66
|
+
this.code = constants_1.DOMAIN_INTERNAL_SERVER_ERROR;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.DomainInternalServerErrorException = DomainInternalServerErrorException;
|
|
70
|
+
DomainInternalServerErrorException.message = 'Internal server error';
|
|
71
|
+
//# sourceMappingURL=exceptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../../../libs/ddd/src/exceptions/exceptions.ts"],"names":[],"mappings":";;;AAAA,2CAOqB;AAErB,qDAAuD;AAKvD,MAAa,8BAA+B,SAAQ,oCAAmB;IAAvE;;QACW,SAAI,GAAG,mCAAuB,CAAC;IAC1C,CAAC;CAAA;AAFD,wEAEC;AAKD,MAAa,kCAAmC,SAAQ,oCAAmB;IAA3E;;QACW,SAAI,GAAG,wCAA4B,CAAC;IAC/C,CAAC;CAAA;AAFD,gFAEC;AAMD,MAAa,iCAAkC,SAAQ,oCAAmB;IAA1E;;QACW,SAAI,GAAG,wCAA4B,CAAC;IAC/C,CAAC;CAAA;AAFD,8EAEC;AAKD,MAAa,uBAAwB,SAAQ,oCAAmB;IAAhE;;QACW,SAAI,GAAG,2BAAe,CAAC;IAClC,CAAC;CAAA;AAFD,0DAEC;AAED,MAAa,qCAAsC,SAAQ,oCAAmB;IAA9E;;QACW,SAAI,GAAG,sBAAsB,CAAC;IACzC,CAAC;CAAA;AAFD,sFAEC;AAED,MAAa,oCAAqC,SAAQ,oCAAmB;IAA7E;;QACW,SAAI,GAAG,6BAA6B,CAAC;IAChD,CAAC;CAAA;AAFD,oFAEC;AAED,MAAa,0BAA2B,SAAQ,oCAAmB;IAAnE;;QACW,SAAI,GAAG,mBAAmB,CAAC;IACtC,CAAC;CAAA;AAFD,gEAEC;AAKD,MAAa,uBAAwB,SAAQ,oCAAmB;IAG9D,YAAY,OAAO,GAAG,uBAAuB,CAAC,OAAO;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QAGR,SAAI,GAAG,4BAAgB,CAAC;IAFjC,CAAC;;AALH,0DAQC;AAPiB,+BAAO,GAAG,WAAW,AAAd,CAAe;AAYxC,MAAa,kCAAmC,SAAQ,oCAAmB;IAGzE,YAAY,OAAO,GAAG,kCAAkC,CAAC,OAAO;QAC9D,KAAK,CAAC,OAAO,CAAC,CAAC;QAGR,SAAI,GAAG,wCAA4B,CAAC;IAF7C,CAAC;;AALH,gFAQC;AAPiB,0CAAO,GAAG,uBAAuB,AAA1B,CAA2B"}
|