UNPKG

@jiaxinjiang/nest-config

Version:

Configuration component for NestJs.

46 lines 2.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const common_1 = require("@nestjs/common"); const config_service_1 = require("./config.service"); const config_constants_1 = require("./config.constants"); const config_helper_1 = require("./config.helper"); exports.InjectConfig = () => common_1.Inject(config_service_1.ConfigService); exports.Configurable = () => { return (target, key, descriptor) => { const originalMethod = descriptor.value; descriptor.value = function (...args) { const paramsMetadata = (Reflect.getMetadata(config_constants_1.CONFIG_PARAMS, target, key) || []).filter(p => { return p.propertyKey === key; }); return originalMethod.apply(this, config_helper_1.applyParamsMetadataDecorator(paramsMetadata, args, config_service_1.ConfigService.get)); }; Reflect.defineMetadata(config_constants_1.CONFIG_CONFIGURABLE, Reflect.getMetadata(config_constants_1.CONFIG_PARAMS, target, key) || [], descriptor.value); return descriptor; }; }; exports.ConfigParam = (configKey, fallback = undefined) => (target, propertyKey, parameterIndex) => { const existingParameters = Reflect.getMetadata(config_constants_1.CONFIG_PARAMS, target, propertyKey) || []; existingParameters.push({ parameterIndex, propertyKey, configKey, fallback }); Reflect.defineMetadata(config_constants_1.CONFIG_PARAMS, existingParameters, target, propertyKey); return target; }; exports.ProxyProperty = (propertyName) => function classDecorator(constructor) { const decorated = class A extends constructor { constructor(...args) { super(...args); return new Proxy(this, { get: (target, prop) => { if (target[prop] !== undefined) { return target[prop]; } else if (target[propertyName].hasOwnProperty(prop)) { return target[propertyName][prop]; } }, }); } }; Object.defineProperty(decorated, 'name', { value: constructor.name }); return decorated; }; //# sourceMappingURL=config.decorator.js.map