Files
pnpm/lib/save.js
Zoltan Kochan 9bc97e76d4 style: use more ES6 syntax
Use lebab to transpile ES5 code to ES6.
Use eslint to fix styling issues afterwards.
Run all js in strict mode to allow let/const
in Node 4.
2016-08-23 21:12:01 +03:00

18 lines
735 B
JavaScript

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