npm
Version:
a package manager for JavaScript
14 lines (9 loc) • 403 B
JavaScript
// replace any ${ENV} values with the appropriate environ.
const envExpr = /(\\*)\$\{([^}]+)\}/g
module.exports = (f, env) => f.replace(envExpr, (orig, esc, name) => {
const val = env[name] !== undefined ? env[name] : `\$\{${name}\}`
// consume the escape chars that are relevant.
if (esc.length % 2)
return orig.substr((esc.length + 1) / 2)
return (esc.substr(esc.length / 2)) + val
})