UNPKG

vulcain-corejs

Version:
46 lines 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const NONE = "$$__none__$$"; class EnvironmentVariableSource { get(name) { // As is let env = process.env[name]; if (env) { if (env === NONE) return undefined; return env; } // Replace dot env = process.env[name.replace(/\./g, '_')]; if (env) return env; // Replace dot with uppercases env = process.env[name.toUpperCase().replace(/\./g, '_')]; if (env) return env; // Transform camel case to upper case // ex: myProperty --> MY_PROPERTY const regex = /([A-Z])|(\.)/g; const subst = `_\$1`; let res = name.replace(regex, subst); env = process.env[res.toUpperCase()]; // Otherwise as a docker secret if (env === undefined) { try { // Using sync method here is assumed env = fs.readFileSync('/run/secrets/' + name, { encoding: 'utf8', flag: 'r' }); } catch (e) { // ignore error } } if (env === undefined) { // Set cache to avoid many file reads process.env[name] = NONE; } return env; } } exports.EnvironmentVariableSource = EnvironmentVariableSource; //# sourceMappingURL=environmentVariableSource.js.map