ddd-node 13.0.0-0 → 14.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/.editorconfig +12 -0
- package/dist/core/aggregate/base.d.ts +12 -0
- package/dist/core/aggregate/base.js +15 -0
- package/dist/core/aggregate/event-sourced-aggregate.d.ts +48 -0
- package/dist/core/aggregate/event-sourced-aggregate.js +130 -0
- package/dist/core/aggregate/index.d.ts +3 -0
- package/dist/core/aggregate/index.js +3 -0
- package/dist/core/aggregate/state-aggregate.d.ts +22 -0
- package/dist/core/aggregate/state-aggregate.js +35 -0
- package/dist/core/aggregate/types.d.ts +4 -0
- package/dist/core/aggregate/types.js +1 -0
- package/dist/core/entity.d.ts +12 -9
- package/dist/core/entity.js +3 -7
- package/dist/core/enum.d.ts +12 -10
- package/dist/core/enum.js +30 -22
- package/dist/core/id/common/index.d.ts +2 -0
- package/dist/core/id/common/index.js +2 -0
- package/dist/core/id/common/snowflake.d.ts +9 -0
- package/dist/core/id/common/snowflake.js +13 -0
- package/dist/core/id/common/uuid4.d.ts +6 -0
- package/dist/core/id/common/uuid4.js +17 -0
- package/dist/core/id/id.d.ts +7 -5
- package/dist/core/id/id.js +13 -8
- package/dist/core/id/index.d.ts +2 -2
- package/dist/core/id/index.js +3 -19
- package/dist/core/id/interface.d.ts +10 -0
- package/dist/core/id/interface.js +1 -0
- package/dist/core/index.d.ts +0 -1
- package/dist/core/index.js +8 -25
- package/dist/core/message/command.d.ts +14 -9
- package/dist/core/message/command.js +10 -9
- package/dist/core/message/event.d.ts +15 -11
- package/dist/core/message/event.js +9 -11
- package/dist/core/message/index.js +3 -19
- package/dist/core/message/message.d.ts +8 -4
- package/dist/core/message/message.js +13 -14
- package/dist/core/model/errors.d.ts +3 -0
- package/dist/core/model/errors.js +5 -0
- package/dist/core/model/index.js +2 -18
- package/dist/core/model/model-with-id.d.ts +8 -8
- package/dist/core/model/model-with-id.js +9 -13
- package/dist/core/model/model.d.ts +30 -19
- package/dist/core/model/model.js +50 -41
- package/dist/core/repository.d.ts +2 -2
- package/dist/core/repository.js +1 -2
- package/dist/core/value-object.d.ts +11 -8
- package/dist/core/value-object.js +8 -12
- package/dist/decorators/aggregate-es/handle.d.ts +2 -0
- package/dist/decorators/aggregate-es/handle.js +9 -0
- package/dist/decorators/aggregate-es/index.js +2 -0
- package/dist/decorators/aggregate-es/when.d.ts +2 -0
- package/dist/decorators/aggregate-es/when.js +9 -0
- package/dist/decorators/id.d.ts +2 -2
- package/dist/decorators/id.js +3 -7
- package/dist/decorators/index.d.ts +1 -1
- package/dist/decorators/index.js +3 -19
- package/dist/decorators/model/enum.d.ts +2 -0
- package/dist/decorators/model/enum.js +6 -0
- package/dist/decorators/model/index.d.ts +3 -3
- package/dist/decorators/model/index.js +5 -21
- package/dist/decorators/model/model-name.d.ts +2 -0
- package/dist/decorators/model/model-name.js +6 -0
- package/dist/decorators/model/prop.d.ts +2 -1
- package/dist/decorators/model/prop.js +5 -7
- package/dist/decorators/model/static.d.ts +3 -3
- package/dist/decorators/model/static.js +7 -30
- package/dist/decorators/model/validator.d.ts +3 -0
- package/dist/decorators/model/validator.js +7 -0
- package/dist/decorators/type.js +1 -2
- package/dist/index.js +5 -21
- package/dist/meta/aggregate.metadata.d.ts +5 -5
- package/dist/meta/aggregate.metadata.js +19 -22
- package/dist/meta/helpers/index.d.ts +1 -0
- package/dist/meta/helpers/index.js +1 -0
- package/dist/meta/helpers/static-value.d.ts +7 -0
- package/dist/meta/helpers/static-value.js +11 -0
- package/dist/meta/id.metadata.d.ts +4 -4
- package/dist/meta/id.metadata.js +10 -10
- package/dist/meta/index.d.ts +1 -0
- package/dist/meta/index.js +4 -19
- package/dist/meta/model.metadata.d.ts +14 -12
- package/dist/meta/model.metadata.js +79 -43
- package/dist/types/class-static.js +1 -2
- package/dist/types/class.js +1 -2
- package/dist/types/index.js +2 -18
- package/dist/utils/index.js +1 -17
- package/dist/utils/to-array.js +2 -8
- package/package.json +27 -3
- package/ts-loader.js +4 -0
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +29 -22
- package/tsconfig.spec.json +5 -0
- package/dist/core/aggregate.d.ts +0 -67
- package/dist/core/aggregate.js +0 -179
- package/dist/core/error.d.ts +0 -4
- package/dist/core/error.js +0 -9
- package/dist/core/id/built/index.d.ts +0 -2
- package/dist/core/id/built/index.js +0 -18
- package/dist/core/id/built/snowflake.generator.d.ts +0 -8
- package/dist/core/id/built/snowflake.generator.js +0 -16
- package/dist/core/id/built/uuid4.generator.d.ts +0 -5
- package/dist/core/id/built/uuid4.generator.js +0 -16
- package/dist/core/id/id-generator.d.ts +0 -8
- package/dist/core/id/id-generator.js +0 -17
- package/dist/decorators/aggregate/handle.d.ts +0 -2
- package/dist/decorators/aggregate/handle.js +0 -13
- package/dist/decorators/aggregate/index.js +0 -18
- package/dist/decorators/aggregate/when.d.ts +0 -2
- package/dist/decorators/aggregate/when.js +0 -13
- package/dist/decorators/model/helpers/static-values.d.ts +0 -12
- package/dist/decorators/model/helpers/static-values.js +0 -30
- package/dist/decorators/model/model.d.ts +0 -10
- package/dist/decorators/model/model.js +0 -26
- package/dist/decorators/model/name.d.ts +0 -2
- package/dist/decorators/model/name.js +0 -10
- package/dist/decorators/model/types/static-typed-target.d.ts +0 -5
- package/dist/decorators/model/types/static-typed-target.js +0 -3
- package/dist/decorators/model/types/static-value-builder.d.ts +0 -2
- package/dist/decorators/model/types/static-value-builder.js +0 -2
- package/dist/decorators/model/validate.d.ts +0 -3
- package/dist/decorators/model/validate.js +0 -11
- /package/dist/decorators/{aggregate → aggregate-es}/index.d.ts +0 -0
package/dist/decorators/index.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./aggregate"), exports);
|
|
18
|
-
__exportStar(require("./id"), exports);
|
|
19
|
-
__exportStar(require("./model"), exports);
|
|
1
|
+
export * from "./aggregate-es";
|
|
2
|
+
export * from "./id";
|
|
3
|
+
export * from "./model";
|
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./prop"), exports);
|
|
18
|
-
__exportStar(require("./name"), exports);
|
|
19
|
-
__exportStar(require("./validate"), exports);
|
|
20
|
-
__exportStar(require("./model"), exports);
|
|
21
|
-
__exportStar(require("./static"), exports);
|
|
1
|
+
export * from "./prop";
|
|
2
|
+
export * from "./model-name";
|
|
3
|
+
export * from "./validator";
|
|
4
|
+
export * from "./static";
|
|
5
|
+
export * from "./enum";
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { AnyModel, PropKey, PropsOf } from "../../core";
|
|
2
|
+
export declare const Prop: <T extends AnyModel>(propKey?: keyof PropsOf<T> | undefined) => (target: T, key: PropKey) => void;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
(0, _meta_1.setPropKey)(target, propKey);
|
|
1
|
+
import { setProp } from "../../meta";
|
|
2
|
+
export const Prop = (propKey) => {
|
|
3
|
+
return (target, key) => {
|
|
4
|
+
setProp(target, key, propKey ?? key);
|
|
5
|
+
};
|
|
7
6
|
};
|
|
8
|
-
exports.Prop = Prop;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ModelClass } from "../../core
|
|
2
|
-
import { StaticValueBuilder } from "
|
|
3
|
-
export declare const Static: <T extends ModelClass
|
|
1
|
+
import { ModelClass } from "../../core";
|
|
2
|
+
import { StaticValueBuilder } from "../../meta";
|
|
3
|
+
export declare const Static: <T extends ModelClass<import("../../core").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(builder: StaticValueBuilder<I>) => (target: T, key: string) => void;
|
|
@@ -1,39 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Static = void 0;
|
|
4
|
-
const static_values_1 = require("./helpers/static-values");
|
|
5
|
-
// Lazy builder for static value (value of static prop is an instance of that model)
|
|
6
|
-
const Static = (builder) => {
|
|
1
|
+
import { getStaticValue, setStaticValue } from "../../meta";
|
|
2
|
+
export const Static = (builder) => {
|
|
7
3
|
return (target, key) => {
|
|
8
|
-
|
|
9
|
-
const typedTarget = target;
|
|
10
|
-
let staticValues = typedTarget[STATIC_VALUES_KEY];
|
|
11
|
-
if (!staticValues || staticValues.target !== target) {
|
|
12
|
-
Object.defineProperty(target, STATIC_VALUES_KEY, {
|
|
13
|
-
configurable: false,
|
|
14
|
-
enumerable: false,
|
|
15
|
-
writable: false,
|
|
16
|
-
value: new static_values_1.StaticValues(target),
|
|
17
|
-
});
|
|
18
|
-
staticValues = typedTarget[STATIC_VALUES_KEY];
|
|
19
|
-
}
|
|
20
|
-
staticValues.setValue(key, builder);
|
|
4
|
+
setStaticValue(target, key, builder);
|
|
21
5
|
Object.defineProperty(target, key, {
|
|
22
6
|
configurable: false,
|
|
23
7
|
enumerable: true,
|
|
24
8
|
get() {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return undefined;
|
|
30
|
-
if (sValues.hasValueOf(key))
|
|
31
|
-
return sValues.getValue(key);
|
|
32
|
-
loopTarget = Reflect.getPrototypeOf(loopTarget);
|
|
33
|
-
} while (loopTarget !== null);
|
|
34
|
-
return undefined;
|
|
9
|
+
return getStaticValue(target, key);
|
|
10
|
+
},
|
|
11
|
+
set() {
|
|
12
|
+
throw new Error("Static value is readonly");
|
|
35
13
|
},
|
|
36
14
|
});
|
|
37
15
|
};
|
|
38
16
|
};
|
|
39
|
-
exports.Static = Static;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ModelClass } from "../../core";
|
|
2
|
+
import { PropsValidator } from "../../meta";
|
|
3
|
+
export declare const Validator: <T extends ModelClass<import("../../core").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(validator?: PropsValidator<I> | undefined) => (target: T) => void;
|
package/dist/decorators/type.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./meta"), exports);
|
|
18
|
-
__exportStar(require("./core"), exports);
|
|
19
|
-
__exportStar(require("./decorators"), exports);
|
|
20
|
-
__exportStar(require("./types"), exports);
|
|
21
|
-
__exportStar(require("./utils"), exports);
|
|
1
|
+
export * from "./meta";
|
|
2
|
+
export * from "./core";
|
|
3
|
+
export * from "./decorators";
|
|
4
|
+
export * from "./types";
|
|
5
|
+
export * from "./utils";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AnyCommand, AnyEvent, CommandHandler, EventApplier } from "../core
|
|
1
|
+
import { AnyCommand, AnyEvent, CommandHandler, EventApplier } from "../core";
|
|
2
2
|
import "reflect-metadata";
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
3
|
+
export declare const EventApplierMapMetaKey: unique symbol;
|
|
4
|
+
export declare const getEventApplierMap: (target: object) => Map<string, EventApplier>;
|
|
5
5
|
export declare const defineEventApplier: <T extends AnyEvent>(target: object, eventName: string, applier: EventApplier<T>) => void;
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
6
|
+
export declare const CommandHandlerMapMetaKey: unique symbol;
|
|
7
|
+
export declare const getCommandHandlerMap: (target: object) => Map<string, CommandHandler>;
|
|
8
8
|
export declare const defineCommandHandler: <T extends AnyCommand>(target: object, commandName: string, handler: CommandHandler<T>) => void;
|
|
@@ -1,30 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defineCommandHandler = exports.getCommandHandlersMap = exports.CommandHandlersMetaKey = exports.defineEventApplier = exports.getEventAppliersMap = exports.EventAppliersMetaKey = void 0;
|
|
4
|
-
require("reflect-metadata");
|
|
1
|
+
import "reflect-metadata";
|
|
5
2
|
// Event applier map
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
export const EventApplierMapMetaKey = Symbol.for("EVENT_APPLIER_MAP");
|
|
4
|
+
export const getEventApplierMap = (target) => {
|
|
5
|
+
const eventApplierMap = () => Reflect.getMetadata(EventApplierMapMetaKey, target);
|
|
6
|
+
if (eventApplierMap())
|
|
7
|
+
return eventApplierMap();
|
|
8
|
+
Reflect.defineMetadata(EventApplierMapMetaKey, new Map(), target);
|
|
9
|
+
return eventApplierMap();
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const eventAppliersMap = (0, exports.getEventAppliersMap)(target);
|
|
11
|
+
export const defineEventApplier = (target, eventName, applier) => {
|
|
12
|
+
const eventAppliersMap = getEventApplierMap(target);
|
|
14
13
|
eventAppliersMap.set(eventName, applier);
|
|
15
|
-
Reflect.defineMetadata(exports.EventAppliersMetaKey, eventAppliersMap, target);
|
|
16
14
|
};
|
|
17
|
-
exports.defineEventApplier = defineEventApplier;
|
|
18
15
|
// Command handler map
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
export const CommandHandlerMapMetaKey = Symbol.for("COMMAND_HANDLER_MAP");
|
|
17
|
+
export const getCommandHandlerMap = (target) => {
|
|
18
|
+
const commandHandlerMap = () => Reflect.getMetadata(CommandHandlerMapMetaKey, target);
|
|
19
|
+
if (commandHandlerMap())
|
|
20
|
+
return commandHandlerMap();
|
|
21
|
+
Reflect.defineMetadata(CommandHandlerMapMetaKey, new Map(), target);
|
|
22
|
+
return commandHandlerMap();
|
|
23
23
|
};
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
const commandHandlersMap = (0, exports.getCommandHandlersMap)(target);
|
|
24
|
+
export const defineCommandHandler = (target, commandName, handler) => {
|
|
25
|
+
const commandHandlersMap = getCommandHandlerMap(target);
|
|
27
26
|
commandHandlersMap.set(commandName, handler);
|
|
28
|
-
Reflect.defineMetadata(exports.CommandHandlersMetaKey, commandHandlersMap, target);
|
|
29
27
|
};
|
|
30
|
-
exports.defineCommandHandler = defineCommandHandler;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./static-value";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./static-value";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AnyModel } from "../../core";
|
|
2
|
+
export type StaticValueBuilder<T extends AnyModel = AnyModel> = () => T;
|
|
3
|
+
export declare class StaticValue<T extends AnyModel = AnyModel> {
|
|
4
|
+
private _value;
|
|
5
|
+
constructor(value: T | StaticValueBuilder<T>);
|
|
6
|
+
get value(): T;
|
|
7
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
1
|
+
import { IIdService } from "../core";
|
|
2
|
+
export declare const IdServiceMetaKey: unique symbol;
|
|
3
|
+
export declare const defineIdService: (target: object, idService: IIdService) => void;
|
|
4
|
+
export declare const getIdService: (target: object) => IIdService;
|
package/dist/meta/id.metadata.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const defineIdGenerator = (target, idGenerator) => {
|
|
6
|
-
Reflect.defineMetadata(exports.IdGeneratorMetaKey, idGenerator, target);
|
|
1
|
+
import { Uuid4Service } from "../core";
|
|
2
|
+
export const IdServiceMetaKey = Symbol.for("ID_SERVICE");
|
|
3
|
+
export const defineIdService = (target, idService) => {
|
|
4
|
+
Reflect.defineMetadata(IdServiceMetaKey, idService, target);
|
|
7
5
|
};
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
6
|
+
export const getIdService = (target) => {
|
|
7
|
+
const idService = () => Reflect.getMetadata(IdServiceMetaKey, target);
|
|
8
|
+
if (idService())
|
|
9
|
+
return idService();
|
|
10
|
+
Reflect.defineMetadata(IdServiceMetaKey, new Uuid4Service(), target);
|
|
11
|
+
return idService();
|
|
11
12
|
};
|
|
12
|
-
exports.getIdGenerator = getIdGenerator;
|
package/dist/meta/index.d.ts
CHANGED
package/dist/meta/index.js
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./aggregate.metadata"), exports);
|
|
18
|
-
__exportStar(require("./id.metadata"), exports);
|
|
19
|
-
__exportStar(require("./model.metadata"), exports);
|
|
1
|
+
export * from "./helpers";
|
|
2
|
+
export * from "./aggregate.metadata";
|
|
3
|
+
export * from "./id.metadata";
|
|
4
|
+
export * from "./model.metadata";
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { AnyModel, PropsOf } from "../core
|
|
2
|
-
|
|
3
|
-
export declare
|
|
4
|
-
|
|
5
|
-
export declare const
|
|
1
|
+
import { AnyModel, ModelClass, PropKey, PropsOf } from "../core";
|
|
2
|
+
import { StaticValue, StaticValueBuilder } from "./helpers/static-value";
|
|
3
|
+
export declare class PropsMap<T extends AnyModel = AnyModel> extends Map<PropKey, keyof PropsOf<T>> {
|
|
4
|
+
}
|
|
5
|
+
export declare const getOwnPropsMap: <T extends AnyModel = AnyModel>(target: T) => PropsMap<T>;
|
|
6
|
+
export declare const setProp: <T extends AnyModel = AnyModel>(target: T, key: PropKey, targetPropKey?: keyof PropsOf<T> | undefined) => void;
|
|
7
|
+
export declare const getPropsMap: <T extends AnyModel = AnyModel>(target: T) => PropsMap<T>;
|
|
8
|
+
export declare const setModelName: <T extends AnyModel>(target: ModelClass<T>, name?: string) => void;
|
|
9
|
+
export declare const getModelName: <T extends AnyModel>(target: ModelClass<T>) => string;
|
|
6
10
|
export type PropsValidator<T extends AnyModel = AnyModel> = (props: PropsOf<T>) => void;
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
export declare const getModelMetadata: <T extends AnyModel = AnyModel>(target: object) => ModelMetadata<T>;
|
|
11
|
+
export declare const setPropsValidator: <T extends AnyModel>(target: object, validator: PropsValidator<T>) => void;
|
|
12
|
+
export declare const getPropsValidator: <T extends AnyModel>(target: object) => PropsValidator<T> | undefined;
|
|
13
|
+
export declare const getOwnStaticValues: <T extends AnyModel>(target: object) => Map<string | symbol, StaticValue<T>>;
|
|
14
|
+
export declare const setStaticValue: <T extends AnyModel>(target: object, key: string, value: T | StaticValueBuilder<T>) => void;
|
|
15
|
+
export declare const getStaticValue: (target: object, key: string | symbol) => AnyModel | undefined;
|
|
@@ -1,46 +1,82 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
import { ModelBase } from "../core";
|
|
2
|
+
import { StaticValue } from "./helpers/static-value";
|
|
3
|
+
const OwnPropsMapMetaKey = Symbol.for("OWN_PROPS_MAP");
|
|
4
|
+
// Prop keys map is a Map<Key, TargetPropKey>;
|
|
5
|
+
export class PropsMap extends Map {
|
|
6
|
+
}
|
|
7
|
+
// target is prototype
|
|
8
|
+
export const getOwnPropsMap = (target) => {
|
|
9
|
+
const ownPropsMap = () => Reflect.getOwnMetadata(OwnPropsMapMetaKey, target);
|
|
10
|
+
if (!ownPropsMap())
|
|
11
|
+
Reflect.defineMetadata(OwnPropsMapMetaKey, new PropsMap(), target);
|
|
12
|
+
return ownPropsMap();
|
|
13
|
+
};
|
|
14
|
+
export const setProp = (target, key, targetPropKey) => {
|
|
15
|
+
const ownPropsMap = getOwnPropsMap(target);
|
|
16
|
+
if (targetPropKey)
|
|
17
|
+
ownPropsMap.set(key, targetPropKey);
|
|
18
|
+
};
|
|
19
|
+
const PropsMapMetaKey = Symbol.for("PROPS_MAP");
|
|
20
|
+
export const getPropsMap = (target) => {
|
|
21
|
+
const propsMap = () => Reflect.getOwnMetadata(PropsMapMetaKey, target);
|
|
22
|
+
if (propsMap())
|
|
23
|
+
return propsMap();
|
|
24
|
+
const buildPropsMap = (target) => {
|
|
25
|
+
let _target = target;
|
|
26
|
+
const result = new PropsMap();
|
|
27
|
+
const ownPropsMapList = [];
|
|
28
|
+
do {
|
|
29
|
+
if (ModelBase.isModel(_target)) {
|
|
30
|
+
const ownPropsMap = getOwnPropsMap(_target);
|
|
31
|
+
ownPropsMapList.unshift(ownPropsMap);
|
|
32
|
+
}
|
|
33
|
+
_target = Reflect.getPrototypeOf(_target);
|
|
34
|
+
} while (_target !== null);
|
|
35
|
+
ownPropsMapList.forEach((ownPropsMap) => {
|
|
36
|
+
ownPropsMap.forEach((targetPropKey, key) => result.set(key, targetPropKey));
|
|
37
|
+
});
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
Reflect.defineMetadata(PropsMapMetaKey, buildPropsMap(target), target);
|
|
41
|
+
return propsMap();
|
|
42
|
+
};
|
|
18
43
|
//
|
|
19
44
|
const ModelNameMetaKey = Symbol.for("MODEL_NAME");
|
|
20
|
-
const setModelName = (target, name) => {
|
|
21
|
-
Reflect.defineMetadata(ModelNameMetaKey, name, target);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
export const setModelName = (target, name) => {
|
|
46
|
+
Reflect.defineMetadata(ModelNameMetaKey, name ?? target.name, target);
|
|
47
|
+
};
|
|
48
|
+
export const getModelName = (target) => {
|
|
49
|
+
const modelName = () => Reflect.getMetadata(ModelNameMetaKey, target);
|
|
50
|
+
if (!modelName())
|
|
51
|
+
setModelName(target);
|
|
52
|
+
return modelName();
|
|
53
|
+
};
|
|
54
|
+
const PropsValidatorMetaKey = Symbol.for("PROPS_VALIDATOR");
|
|
55
|
+
export const setPropsValidator = (target, validator) => {
|
|
56
|
+
Reflect.defineMetadata(PropsValidatorMetaKey, validator, target);
|
|
57
|
+
};
|
|
58
|
+
export const getPropsValidator = (target) => {
|
|
59
|
+
return Reflect.getMetadata(PropsValidatorMetaKey, target);
|
|
60
|
+
};
|
|
61
|
+
//
|
|
62
|
+
const OwnStaticValuesMetaKey = Symbol.for("OWN_STATIC_VALUES");
|
|
63
|
+
export const getOwnStaticValues = (target) => {
|
|
64
|
+
const ownStaticValues = () => Reflect.getOwnMetadata(OwnStaticValuesMetaKey, target);
|
|
65
|
+
if (!ownStaticValues())
|
|
66
|
+
Reflect.defineMetadata(OwnStaticValuesMetaKey, new Map(), target);
|
|
67
|
+
return ownStaticValues();
|
|
68
|
+
};
|
|
69
|
+
export const setStaticValue = (target, key, value) => {
|
|
70
|
+
const staticValues = getOwnStaticValues(target);
|
|
71
|
+
staticValues.set(key, new StaticValue(value));
|
|
72
|
+
};
|
|
73
|
+
export const getStaticValue = (target, key) => {
|
|
74
|
+
let _target = target;
|
|
75
|
+
do {
|
|
76
|
+
const staticValues = getOwnStaticValues(_target);
|
|
77
|
+
if (staticValues.has(key))
|
|
78
|
+
return staticValues.get(key)?.value;
|
|
79
|
+
_target = Reflect.getPrototypeOf(_target);
|
|
80
|
+
} while (_target !== null);
|
|
81
|
+
return undefined;
|
|
45
82
|
};
|
|
46
|
-
exports.getModelMetadata = getModelMetadata;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
package/dist/types/class.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
package/dist/types/index.js
CHANGED
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./class"), exports);
|
|
18
|
-
__exportStar(require("./class-static"), exports);
|
|
1
|
+
export * from "./class";
|
|
2
|
+
export * from "./class-static";
|
package/dist/utils/index.js
CHANGED
|
@@ -1,17 +1 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./to-array"), exports);
|
|
1
|
+
export * from "./to-array";
|
package/dist/utils/to-array.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.toArray = void 0;
|
|
4
|
-
const toArray = (value) => {
|
|
5
|
-
if (Array.isArray(value))
|
|
6
|
-
return value;
|
|
7
|
-
return [value];
|
|
1
|
+
export const toArray = (value) => {
|
|
2
|
+
return Array.isArray(value) ? value : [value];
|
|
8
3
|
};
|
|
9
|
-
exports.toArray = toArray;
|