mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-26 11:02:01 -04:00
25 lines
743 B
TypeScript
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
|
|
}
|