mirror of
https://github.com/pnpm/pnpm.git
synced 2026-02-03 03:33:21 -05:00
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.
18 lines
735 B
JavaScript
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)
|
|
}
|