UNPKG

@nestjs-mod/common

Version:

A collection of utilities for unifying NestJS applications and modules

36 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EnvModel = EnvModel; exports.EnvModelProperty = EnvModelProperty; const common_1 = require("@nestjs/common"); const constants_1 = require("./constants"); const default_property_value_extractor_1 = require("./extractors/default-property-value.extractor"); const process_env_property_value_extractor_1 = require("./extractors/process-env-property-value.extractor"); const dot_env_property_name_formatter_1 = require("./formatters/dot-env-property-name.formatter"); function EnvModel(options) { if (!options) { options = {}; } if (!options.propertyValueExtractors) { options.propertyValueExtractors = [new default_property_value_extractor_1.DefaultPropertyValueExtractor(), new process_env_property_value_extractor_1.ProcessEnvPropertyValueExtractor()]; } if (!options.propertyNameFormatters) { options.propertyNameFormatters = [new dot_env_property_name_formatter_1.DotEnvPropertyNameFormatter()]; } // eslint-disable-next-line @typescript-eslint/no-explicit-any return (0, common_1.applyDecorators)((0, common_1.Injectable)(), (target) => { Reflect.defineMetadata(constants_1.ENV_MODEL_METADATA, { ...options, originalName: target.name, }, target); }); } function EnvModelProperty(options) { // eslint-disable-next-line @typescript-eslint/no-explicit-any return (target, propertyKey) => { const envModelPropertyMetadata = Reflect.getOwnMetadata(constants_1.ENV_MODEL_PROPERTIES_METADATA, target.constructor) || []; envModelPropertyMetadata.push({ ...options, originalName: propertyKey }); Reflect.defineMetadata(constants_1.ENV_MODEL_PROPERTIES_METADATA, envModelPropertyMetadata, target.constructor); }; } //# sourceMappingURL=decorators.js.map