1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.Prop = exports.prop = void 0;
|
4 | const constants_1 = require("./internal/constants");
|
5 | const utils = require("./internal/utils");
|
6 | const logSettings_1 = require("./logSettings");
|
7 | /**
|
8 | * Set Property Options for the property below
|
9 | * @param options The Options to Set
|
10 | * @param kind Overwrite auto-inferred PropType
|
11 | * @example
|
12 | * ```ts
|
13 | * class ClassName {
|
14 | * @prop()
|
15 | * public someProp?: string;
|
16 | *
|
17 | * @prop({ type: () => [String] })
|
18 | * public someArrayProp?: string[];
|
19 | *
|
20 | * @prop({ type: () => String })
|
21 | * public someMapProp?: Map<string, string>;
|
22 | * }
|
23 | * ```
|
24 | */
|
25 | function prop(options, kind) {
|
26 | return (target, key) => {
|
27 | options = options ?? {};
|
28 | const existingMapForTarget = Reflect.getOwnMetadata(constants_1.DecoratorKeys.PropCache, target);
|
29 | if (utils.isNullOrUndefined(existingMapForTarget)) {
|
30 | Reflect.defineMetadata(constants_1.DecoratorKeys.PropCache, new Map(), target);
|
31 | }
|
32 | const mapForTarget = existingMapForTarget ?? Reflect.getOwnMetadata(constants_1.DecoratorKeys.PropCache, target);
|
33 | mapForTarget.set(key, { options, target, key, propType: kind });
|
34 | logSettings_1.logger.debug('Added "%s.%s" to the Decorator Cache', utils.getName(target.constructor), key);
|
35 | };
|
36 | }
|
37 | exports.prop = prop;
|
38 | exports.Prop = prop;
|
39 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUErRDtBQUMvRCwwQ0FBMEM7QUFDMUMsK0NBQXVDO0FBWXZDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILFNBQVMsSUFBSSxDQUNYLE9BQTRILEVBQzVILElBQWU7SUFFZixPQUFPLENBQUMsTUFBVyxFQUFFLEdBQW9CLEVBQUUsRUFBRTtRQUMzQyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUV4QixNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFpQyxDQUFDO1FBRXJILElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEVBQUU7WUFDakQsT0FBTyxDQUFDLGNBQWMsQ0FBQyx5QkFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBcUMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN2RztRQUVELE1BQU0sWUFBWSxHQUFHLG9CQUFvQixJQUFLLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFrQyxDQUFDO1FBRXZJLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFaEUsb0JBQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVRLG9CQUFJO0FBR0ksb0JBQUkifQ== |
\ | No newline at end of file |