ddd-node 24.0.0 → 24.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/dist/core/enum/enum-builder.d.ts +9 -0
- package/dist/core/enum/enum-builder.js +32 -0
- package/dist/core/enum/enum.d.ts +0 -2
- package/dist/core/enum/enum.js +0 -22
- package/dist/core/enum/index.d.ts +1 -0
- package/dist/core/enum/index.js +1 -0
- package/dist/decorators/enum.d.ts +1 -1
- package/dist/decorators/enum.js +1 -1
- package/dist/model/core/model.d.ts +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModelBuilder } from "../../model";
|
|
2
|
+
import { AnyEnum, EnumClass, EnumValue } from "./enum";
|
|
3
|
+
export declare class EnumBuilder<T extends AnyEnum> extends ModelBuilder<T> {
|
|
4
|
+
private enumClass;
|
|
5
|
+
protected _value?: EnumValue;
|
|
6
|
+
constructor(enumClass: EnumClass<T>);
|
|
7
|
+
withValue(value: EnumValue): this;
|
|
8
|
+
build(): T;
|
|
9
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EnumBuilder = void 0;
|
|
4
|
+
const model_1 = require("../../model");
|
|
5
|
+
class EnumBuilder extends model_1.ModelBuilder {
|
|
6
|
+
constructor(enumClass) {
|
|
7
|
+
super();
|
|
8
|
+
this.enumClass = enumClass;
|
|
9
|
+
}
|
|
10
|
+
withValue(value) {
|
|
11
|
+
this._value = value;
|
|
12
|
+
return this;
|
|
13
|
+
}
|
|
14
|
+
build() {
|
|
15
|
+
if (!this._value)
|
|
16
|
+
throw new Error("Cannot parse enum without value");
|
|
17
|
+
const { enumClass } = this;
|
|
18
|
+
let result;
|
|
19
|
+
enumClass.ownStaticValues().forEach((staticValue) => {
|
|
20
|
+
if (staticValue.value instanceof enumClass) {
|
|
21
|
+
const staticEnum = staticValue.value;
|
|
22
|
+
if (staticEnum.value === this._value && !result) {
|
|
23
|
+
result = staticEnum;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
if (!result)
|
|
28
|
+
throw new Error(`Invalid provided value for enum ${enumClass.modelName()}`);
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.EnumBuilder = EnumBuilder;
|
package/dist/core/enum/enum.d.ts
CHANGED
|
@@ -7,8 +7,6 @@ export interface EnumProps {
|
|
|
7
7
|
}
|
|
8
8
|
export declare class EnumBase extends ModelBase<EnumProps> {
|
|
9
9
|
static values(): EnumBase[];
|
|
10
|
-
static parse<T extends AnyEnum>(this: EnumClass<T>, providedValue: EnumValue): T;
|
|
11
|
-
static parseSafe<T extends AnyEnum>(this: EnumClass<T>, providedValue: EnumValue): T | null;
|
|
12
10
|
constructor(value: EnumValue);
|
|
13
11
|
value: EnumValue;
|
|
14
12
|
}
|
package/dist/core/enum/enum.js
CHANGED
|
@@ -15,28 +15,6 @@ let EnumBase = class EnumBase extends model_1.ModelBase {
|
|
|
15
15
|
static values() {
|
|
16
16
|
return Array.from(this.ownStaticValues().values()).map((staticValue) => staticValue.value);
|
|
17
17
|
}
|
|
18
|
-
static parse(providedValue) {
|
|
19
|
-
let result = undefined;
|
|
20
|
-
this.ownStaticValues().forEach((staticValue) => {
|
|
21
|
-
if (staticValue.value instanceof this) {
|
|
22
|
-
const staticEnum = staticValue.value;
|
|
23
|
-
if (staticEnum.value === providedValue && !result) {
|
|
24
|
-
result = staticEnum;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
if (!result)
|
|
29
|
-
throw new Error(`Invalid provided value for enum ${this.modelName()}`);
|
|
30
|
-
return result;
|
|
31
|
-
}
|
|
32
|
-
static parseSafe(providedValue) {
|
|
33
|
-
try {
|
|
34
|
-
return this.parse(providedValue);
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
18
|
constructor(value) {
|
|
41
19
|
super();
|
|
42
20
|
this.initializeProps({ value });
|
package/dist/core/enum/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { EnumClass, EnumValue } from "../core";
|
|
2
|
-
export declare const Enum: (value
|
|
2
|
+
export declare const Enum: (value?: EnumValue) => <T extends EnumClass<import("../core").EnumBase, any[]>>(target: T, key: string) => void;
|
package/dist/decorators/enum.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.Enum = void 0;
|
|
|
4
4
|
const model_1 = require("../model");
|
|
5
5
|
const Enum = (value) => {
|
|
6
6
|
return (target, key) => {
|
|
7
|
-
(0, model_1.Static)(() => new target(value))(target, key);
|
|
7
|
+
(0, model_1.Static)(() => new target(value ?? key))(target, key);
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
10
|
exports.Enum = Enum;
|
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"ddd-node","version":"24.
|
|
1
|
+
{"name":"ddd-node","version":"24.1.1","description":"Domain Driven Design base for NodeJs","type":"commonjs","main":"index.js","types":"index.d.ts","files":["dist"],"repository":{"type":"git","url":"https://github.com/nqd881/ddd-node"},"keywords":["ddd","ddd-node","ddd-base","ddd-ts","ddd-js"],"author":"Quoc Dai","license":"ISC","devDependencies":{"@types/chai":"^4.3.16","@types/lodash":"^4.14.200","@types/mocha":"^10.0.6","@types/uuid":"^9.0.6","chai":"^5.1.1","chai-deep-match":"^1.2.1","ddd-node":"file:dist","mocha":"^10.4.0","ts-node":"^10.9.1","tsconfig-paths":"^4.2.0","typescript":"^5.2.2"},"dependencies":{"lodash":"^4.17.21","reflect-metadata":"^0.1.13","tsc-alias":"^1.8.8","type-fest":"^4.20.1","uuid":"^9.0.1"}}
|