node/deps/npm/node_modules/@npmcli/config/lib/env-replace.js
ops+robot@npmjs.com c0d5f4b3d7 deps: upgrade npm to 8.7.0
PR-URL: https://github.com/nodejs/node/pull/42744
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2022-04-17 07:27:48 +02:00

15 lines
414 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.slice((esc.length + 1) / 2)
}
return (esc.slice(esc.length / 2)) + val
})