@miracledevs/paradigm-express-webapi
Version:
An easy to use MVC WebApi implementation over Express.
42 lines • 1.82 kB
JavaScript
;
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