// https://github.com/npm/rfcs/pull/183 const envVal = val => Array.isArray(val) ? val.map(v => envVal(v)).join('\n\n') : val === null || val === false ? '' : String(val) const packageEnvs = (env, vals, prefix) => { for (const [key, val] of Object.entries(vals)) { if (val === undefined) continue else if (val && !Array.isArray(val) && typeof val === 'object') packageEnvs(env, val, `${prefix}${key}_`) else env[`${prefix}${key}`] = envVal(val) } return env } module.exports = (env, pkg) => packageEnvs({ ...env }, { name: pkg.name, version: pkg.version, config: pkg.config, engines: pkg.engines, bin: pkg.bin, }, 'npm_package_')