Files
pnpm/src/save.ts
zkochan 5c223e0540 fix: the correct spec is saved in package.json
When the package source is not the registry, the correct spec is
saved to `package.json`
2017-04-14 09:38:43 +03:00

25 lines
743 B
TypeScript

import {ignoreCache as readPkg} from './fs/readPkg'
import writePkg = require('write-pkg')
import {DependenciesType} from './getSaveType'
import {Package} from './types'
import {PackageSpec} from './resolve'
export default async function save (
pkgJsonPath: string,
packageSpecs: ({
name: string,
saveSpec: string,
})[],
saveType: DependenciesType
): Promise<Package> {
// Read the latest version of package.json to avoid accidental overwriting
const packageJson = await readPkg(pkgJsonPath)
packageJson[saveType] = packageJson[saveType] || {}
packageSpecs.forEach(dependency => {
packageJson[saveType][dependency.name] = dependency.saveSpec
})
await writePkg(pkgJsonPath, packageJson)
return packageJson
}