UNPKG

@buka/nestjs-config

Version:
56 lines (55 loc) 2.3 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigurationRegistry = exports.CONFIG_KEY_PROPERTIES_METADATA = exports.CONFIG_KEY_METADATA = void 0; exports.CONFIG_KEY_METADATA = Symbol('@buka/nestjs-config:config-key'); exports.CONFIG_KEY_PROPERTIES_METADATA = Symbol('@buka/nestjs-config:config-key:properties'); class ConfigurationRegistry { static registry = []; static registerProvider(provider) { this.registry.push(provider); } static registerProperty(target, ck) { if (typeof target !== 'object' || target === null) return; if (!Array.isArray(target[exports.CONFIG_KEY_PROPERTIES_METADATA])) { target[exports.CONFIG_KEY_PROPERTIES_METADATA] = []; } target[exports.CONFIG_KEY_PROPERTIES_METADATA].push(ck.propertyKey); Reflect.defineMetadata(exports.CONFIG_KEY_METADATA, ck, target, ck.propertyKey); } static getProviders() { return [...this.registry]; } static getProperties(target) { if (typeof target !== 'object' || target === null) return []; return target[exports.CONFIG_KEY_PROPERTIES_METADATA] || []; } static getConfigKey(target, propertyKey) { const metadata = Reflect.getMetadata(exports.CONFIG_KEY_METADATA, target, propertyKey); if (metadata) return metadata; if (typeof propertyKey === 'symbol') { return { ignore: true, propertyKey: propertyKey.toString(), }; } return { ignore: false, propertyKey: propertyKey.toString(), configKey: undefined, }; } } exports.ConfigurationRegistry = ConfigurationRegistry; });