UNPKG

@typegoose/typegoose

Version:

Define Mongoose models using TypeScript classes

39 lines 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Prop = exports.prop = void 0; const constants_1 = require("./internal/constants"); const utils = require("./internal/utils"); const logSettings_1 = require("./logSettings"); /** * Set Property Options for the property below * @param options The Options to Set * @param kind Overwrite auto-inferred PropType * @example * ```ts * class ClassName { * @prop() * public someProp?: string; * * @prop({ type: () => [String] }) * public someArrayProp?: string[]; * * @prop({ type: () => String }) * public someMapProp?: Map<string, string>; * } * ``` */ function prop(options, kind) { return (target, key) => { options = options ?? {}; const existingMapForTarget = Reflect.getOwnMetadata(constants_1.DecoratorKeys.PropCache, target); if (utils.isNullOrUndefined(existingMapForTarget)) { Reflect.defineMetadata(constants_1.DecoratorKeys.PropCache, new Map(), target); } const mapForTarget = existingMapForTarget ?? Reflect.getOwnMetadata(constants_1.DecoratorKeys.PropCache, target); mapForTarget.set(key, { options, target, key, propType: kind }); logSettings_1.logger.debug('Added "%s.%s" to the Decorator Cache', utils.getName(target.constructor), key); }; } exports.prop = prop; exports.Prop = prop; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUErRDtBQUMvRCwwQ0FBMEM7QUFDMUMsK0NBQXVDO0FBWXZDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILFNBQVMsSUFBSSxDQUNYLE9BQTRILEVBQzVILElBQWU7SUFFZixPQUFPLENBQUMsTUFBVyxFQUFFLEdBQW9CLEVBQUUsRUFBRTtRQUMzQyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUV4QixNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFpQyxDQUFDO1FBRXJILElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEVBQUU7WUFDakQsT0FBTyxDQUFDLGNBQWMsQ0FBQyx5QkFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBcUMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN2RztRQUVELE1BQU0sWUFBWSxHQUFHLG9CQUFvQixJQUFLLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFrQyxDQUFDO1FBRXZJLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFaEUsb0JBQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVRLG9CQUFJO0FBR0ksb0JBQUkifQ==