@nestjslatam/ddd-lib 1.0.3 → 1.0.5
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/core/index.d.ts +1 -0
- package/core/index.js +1 -0
- package/core/index.js.map +1 -1
- package/core/tracking-props.d.ts +8 -0
- package/core/tracking-props.js +21 -0
- package/core/tracking-props.js.map +1 -0
- package/domain-entity.d.ts +7 -7
- package/domain-entity.js +11 -23
- package/domain-entity.js.map +1 -1
- package/helpers/domain-guard.helper.d.ts +1 -0
- package/helpers/domain-guard.helper.js +5 -0
- package/helpers/domain-guard.helper.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.lib.tsbuildinfo +1 -1
package/core/index.d.ts
CHANGED
package/core/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./broken-rules"), exports);
|
|
18
18
|
__exportStar(require("./interfaces"), exports);
|
|
19
19
|
__exportStar(require("./pagination.base"), exports);
|
|
20
|
+
__exportStar(require("./tracking-props"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/ddd/src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B;AAC7B,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/ddd/src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B;AAC7B,oDAAkC;AAClC,mDAAiC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TrackingProps = void 0;
|
|
4
|
+
class TrackingProps {
|
|
5
|
+
static setNew() {
|
|
6
|
+
return {
|
|
7
|
+
isDirty: false,
|
|
8
|
+
isNew: true,
|
|
9
|
+
isDeleted: false,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
static setDirty() {
|
|
13
|
+
return {
|
|
14
|
+
isDirty: true,
|
|
15
|
+
isNew: false,
|
|
16
|
+
isDeleted: false,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.TrackingProps = TrackingProps;
|
|
21
|
+
//# sourceMappingURL=tracking-props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracking-props.js","sourceRoot":"","sources":["../../../../libs/ddd/src/core/tracking-props.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAKxB,MAAM,CAAC,MAAM;QACX,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;CACF;AApBD,sCAoBC"}
|
package/domain-entity.d.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { DomainAuditValueObject, DomainUIdValueObject } from './valueobjects';
|
|
2
|
-
import { BrokenRule, ITrackingProps } from './core';
|
|
2
|
+
import { BrokenRule, ITrackingProps, TrackingProps } from './core';
|
|
3
3
|
export interface IDomainEntityProps<T> {
|
|
4
4
|
id: DomainEntityId;
|
|
5
5
|
props: T;
|
|
6
|
-
trackingProps:
|
|
6
|
+
trackingProps: TrackingProps;
|
|
7
|
+
audit: DomainAuditValueObject;
|
|
7
8
|
}
|
|
8
9
|
export type DomainEntityId = DomainUIdValueObject;
|
|
9
10
|
export declare abstract class DomainEntity<TProps> {
|
|
10
11
|
private _id;
|
|
11
12
|
private _isValid;
|
|
12
|
-
private
|
|
13
|
+
private _trackingProps;
|
|
13
14
|
private _audit;
|
|
14
15
|
private _brokenRules;
|
|
15
16
|
protected abstract businessRules(props: TProps): void;
|
|
16
|
-
constructor({ id, props }: IDomainEntityProps<TProps>);
|
|
17
|
+
constructor({ id, props, trackingProps, audit }: IDomainEntityProps<TProps>);
|
|
17
18
|
protected readonly props: TProps;
|
|
18
19
|
getId(): string;
|
|
19
20
|
setAudit(audit: DomainAuditValueObject): void;
|
|
20
21
|
getAudit(): DomainAuditValueObject;
|
|
22
|
+
setTrackingProps(trackingProps: ITrackingProps): void;
|
|
23
|
+
getTrackingProps(): ITrackingProps;
|
|
21
24
|
getIsValid(): boolean;
|
|
22
25
|
addBrokenRule(brokenRule: BrokenRule): void;
|
|
23
26
|
removeBrokenRule(brokenRule: BrokenRule): void;
|
|
24
27
|
getBrokenRules(): Array<BrokenRule>;
|
|
25
28
|
getBrokenRulesAsString(): string;
|
|
26
|
-
markAsNew(): void;
|
|
27
|
-
marAsDirty(): void;
|
|
28
|
-
getTrackingStatus(): ITrackingProps;
|
|
29
29
|
static isEntity(entity: unknown): entity is DomainEntity<unknown>;
|
|
30
30
|
equals(object?: DomainEntity<TProps>): boolean;
|
|
31
31
|
getPropsCopy(): TProps & ITrackingProps;
|
package/domain-entity.js
CHANGED
|
@@ -4,14 +4,15 @@ exports.DomainEntity = void 0;
|
|
|
4
4
|
const helpers_1 = require("./helpers");
|
|
5
5
|
const core_1 = require("./core");
|
|
6
6
|
class DomainEntity {
|
|
7
|
-
constructor({ id, props }) {
|
|
7
|
+
constructor({ id, props, trackingProps, audit }) {
|
|
8
8
|
this._brokenRules = new core_1.BrokenRuleCollection();
|
|
9
9
|
this.guard(props);
|
|
10
10
|
this.businessRules(props);
|
|
11
11
|
this._isValid = this._brokenRules.getItems().length ? true : false;
|
|
12
12
|
this._id = id;
|
|
13
13
|
this.props = props;
|
|
14
|
-
this.
|
|
14
|
+
this.setAudit(audit);
|
|
15
|
+
this.setTrackingProps(trackingProps);
|
|
15
16
|
}
|
|
16
17
|
getId() {
|
|
17
18
|
return this._id.unpack();
|
|
@@ -22,6 +23,12 @@ class DomainEntity {
|
|
|
22
23
|
getAudit() {
|
|
23
24
|
return this._audit;
|
|
24
25
|
}
|
|
26
|
+
setTrackingProps(trackingProps) {
|
|
27
|
+
this._trackingProps = trackingProps;
|
|
28
|
+
}
|
|
29
|
+
getTrackingProps() {
|
|
30
|
+
return this._trackingProps;
|
|
31
|
+
}
|
|
25
32
|
getIsValid() {
|
|
26
33
|
return this._isValid;
|
|
27
34
|
}
|
|
@@ -45,25 +52,6 @@ class DomainEntity {
|
|
|
45
52
|
});
|
|
46
53
|
return result;
|
|
47
54
|
}
|
|
48
|
-
markAsNew() {
|
|
49
|
-
this._trackingStatus = {
|
|
50
|
-
...this._trackingStatus,
|
|
51
|
-
isNew: true,
|
|
52
|
-
isDirty: false,
|
|
53
|
-
isDeleted: false,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
marAsDirty() {
|
|
57
|
-
this._trackingStatus = {
|
|
58
|
-
...this._trackingStatus,
|
|
59
|
-
isNew: true,
|
|
60
|
-
isDirty: true,
|
|
61
|
-
isDeleted: false,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
getTrackingStatus() {
|
|
65
|
-
return this._trackingStatus;
|
|
66
|
-
}
|
|
67
55
|
static isEntity(entity) {
|
|
68
56
|
return entity instanceof DomainEntity;
|
|
69
57
|
}
|
|
@@ -81,7 +69,7 @@ class DomainEntity {
|
|
|
81
69
|
id: this._id,
|
|
82
70
|
...this.props,
|
|
83
71
|
audit: this._audit,
|
|
84
|
-
...this.
|
|
72
|
+
...this.getTrackingProps(),
|
|
85
73
|
};
|
|
86
74
|
return Object.freeze(propsCopy);
|
|
87
75
|
}
|
|
@@ -90,7 +78,7 @@ class DomainEntity {
|
|
|
90
78
|
const result = {
|
|
91
79
|
id: this._id,
|
|
92
80
|
audit: this._audit,
|
|
93
|
-
...this.
|
|
81
|
+
...this.getTrackingProps(),
|
|
94
82
|
...plainProps,
|
|
95
83
|
};
|
|
96
84
|
return Object.freeze(result);
|
package/domain-entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-entity.js","sourceRoot":"","sources":["../../../libs/ddd/src/domain-entity.ts"],"names":[],"mappings":";;;AAAA,uCAA8D;AAE9D,
|
|
1
|
+
{"version":3,"file":"domain-entity.js","sourceRoot":"","sources":["../../../libs/ddd/src/domain-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,6 @@ export declare class DomainGuard {
|
|
|
9
9
|
static isNumber(value: unknown): boolean;
|
|
10
10
|
static isNumberBetween(value: number, min: number, max: number): boolean;
|
|
11
11
|
static isDate(value: unknown): boolean;
|
|
12
|
+
static isUrlValid(value: string): boolean;
|
|
12
13
|
private static getValueLength;
|
|
13
14
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DomainGuard = void 0;
|
|
4
4
|
const valueobjects_1 = require("../valueobjects");
|
|
5
|
+
const URL_REGEX_PATTERN = /^(ftp|http|https):\/\/[^ "]+$/;
|
|
5
6
|
const ERROR_MESSAGE_LENGTH = 'Cannot check length of a value. Provided value is empty';
|
|
6
7
|
class DomainGuard {
|
|
7
8
|
static isValueObject(obj) {
|
|
@@ -54,6 +55,10 @@ class DomainGuard {
|
|
|
54
55
|
static isDate(value) {
|
|
55
56
|
return value instanceof Date;
|
|
56
57
|
}
|
|
58
|
+
static isUrlValid(value) {
|
|
59
|
+
const urlRegex = URL_REGEX_PATTERN;
|
|
60
|
+
return urlRegex.test(value);
|
|
61
|
+
}
|
|
57
62
|
}
|
|
58
63
|
exports.DomainGuard = DomainGuard;
|
|
59
64
|
DomainGuard.getValueLength = (value) => typeof value === 'number' ? Number(value).toString().length : value.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-guard.helper.js","sourceRoot":"","sources":["../../../../libs/ddd/src/helpers/domain-guard.helper.ts"],"names":[],"mappings":";;;AAAA,kDAAoD;AAEpD,MAAM,oBAAoB,GACxB,yDAAyD,CAAC;AAE5D,MAAa,WAAW;IACtB,MAAM,CAAC,aAAa,CAAC,GAAY;QAC/B,OAAO,GAAG,YAAY,gCAAiB,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAc;QAC3B,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,SAAS;YAC1B,KAAK,YAAY,IAAI;YAErB,OAAO,KAAK,CAAC;QAEf,IACE,OAAO,KAAK,KAAK,WAAW;YAC5B,KAAK,KAAK,IAAI;YACd,CAAC,KAAK,YAAY,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACvD,KAAK,KAAK,EAAE;YAEZ,OAAO,IAAI,CAAC;QAEd,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEpC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;gBACpD,OAAO,IAAI,CAAC;aACb;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,eAAe,CACpB,KAAuC,EACvC,GAAW,EACX,GAAW;QAEX,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEtE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE/C,OAAO,WAAW,IAAI,GAAG,IAAI,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,aAAa,CAClB,KAAuC,EACvC,MAAc;QAEd,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAc;QAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAc;QAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;QAC5D,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEtE,OAAO,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAc;QAC1B,OAAO,KAAK,YAAY,IAAI,CAAC;IAC/B,CAAC;;
|
|
1
|
+
{"version":3,"file":"domain-guard.helper.js","sourceRoot":"","sources":["../../../../libs/ddd/src/helpers/domain-guard.helper.ts"],"names":[],"mappings":"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"}
|