UNPKG

@miracledevs/paradigm-express-webapi

Version:

An easy to use MVC WebApi implementation over Express.

42 lines 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EnvironmentVariableConfigurationSource = void 0; class EnvironmentVariableConfigurationSource { constructor(settingsPrefix) { this.settingsPrefix = settingsPrefix; } get() { const keys = this.settingsPrefix ? Object.keys(process.env) .filter(key => key.startsWith(this.settingsPrefix)) : Object.keys(process.env); const target = {}; for (const key of keys) { const unprefixedKey = this.settingsPrefix ? key.substr(this.settingsPrefix.length, key.length - this.settingsPrefix.length) : key; const parts = unprefixedKey.split(EnvironmentVariableConfigurationSource.separator); let destinationObject = target; let i = 0; for (i = 0; i < parts.length - 1; i++) { const part = parts[i]; const children = parts[i + 1]; const isArray = this.isInt(children); if (!destinationObject[part] && isArray) { destinationObject[part] = []; } else if (!destinationObject[part]) { destinationObject[part] = {}; } destinationObject = destinationObject[part]; } destinationObject[parts[i]] = process.env[key]; } return target; } isInt(value) { const intValue = parseInt(value, 10); return Number.isInteger(intValue); } } exports.EnvironmentVariableConfigurationSource = EnvironmentVariableConfigurationSource; EnvironmentVariableConfigurationSource.separator = "__"; //# sourceMappingURL=environment-variable.configuration-source.js.map