Files
pnpm/lib/save.js
Zoltan Kochan a9afddacfd Read package.json before updating (#284)
* Read package.json before updating

Using the cached version of package.json can cause ovewriting of changes

close #280

* Skip GitHub test on CI

The GitHub test fails frequently with 403 error with no good no reason
2016-08-09 20:33:39 +03:00

17 lines
720 B
JavaScript

var requireJson = require('./fs/require_json')
var writeJson = require('./fs/write_json')
var sortedObject = require('sorted-object')
module.exports = function save (pkg, installedPackages, saveType, useExactVersion) {
// Read the latest version of package.json to avoid accidental overwriting
var packageJson = requireJson(pkg.path, { ignoreCache: true })
packageJson[saveType] = packageJson[saveType] || {}
installedPackages.forEach(function (dependency) {
var semverCharacter = useExactVersion ? '' : '^'
packageJson[saveType][dependency.spec.name] = semverCharacter + dependency.version
})
packageJson[saveType] = sortedObject(packageJson[saveType])
return writeJson(pkg.path, packageJson)
}