node/deps/npm/lib/utils/reify-finish.js
Ruy Adorno f3d3769f9f
deps: upgrade npm to 7.6.1
PR-URL: https://github.com/nodejs/node/pull/37606
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2021-03-05 15:32:56 -05:00

33 lines
946 B
JavaScript

const reifyOutput = require('./reify-output.js')
const ini = require('ini')
const util = require('util')
const fs = require('fs')
const { writeFile } = fs.promises || { writeFile: util.promisify(fs.writeFile) }
const {resolve} = require('path')
const reifyFinish = async (npm, arb) => {
await saveBuiltinConfig(npm, arb)
reifyOutput(npm, arb)
}
const saveBuiltinConfig = async (npm, arb) => {
const { options: { global }, actualTree } = arb
if (!global)
return
// if we are using a builtin config, and just installed npm as
// a top-level global package, we have to preserve that config.
const npmNode = actualTree.inventory.get('node_modules/npm')
if (!npmNode)
return
const builtinConf = npm.config.data.get('builtin')
if (builtinConf.loadError)
return
const content = ini.stringify(builtinConf.raw).trim() + '\n'
await writeFile(resolve(npmNode.path, 'npmrc'), content)
}
module.exports = reifyFinish