Files
pnpm/src/removeDeps.ts
zkochan 8a2388881e refactor: use PackageJson and PackageManifest instead of Package
BREAKING CHANGE:

The readPackage hook accepts a PackageManifest not a Package
2017-11-07 02:04:10 +02:00

34 lines
905 B
TypeScript

import loadJsonFile = require('load-json-file')
import writePkg = require('write-pkg')
import {DependenciesType, dependenciesTypes} from './getSaveType'
import {PackageJson} from '@pnpm/types'
export default async function (
pkgJsonPath: string,
removedPackages: string[],
saveType?: DependenciesType
): Promise<PackageJson> {
const packageJson = await loadJsonFile(pkgJsonPath)
if (saveType) {
packageJson[saveType] = packageJson[saveType]
if (!packageJson[saveType]) return packageJson
removedPackages.forEach(dependency => {
delete packageJson[saveType][dependency]
})
} else {
dependenciesTypes
.filter(deptype => packageJson[deptype])
.forEach(deptype => {
removedPackages.forEach(dependency => {
delete packageJson[deptype][dependency]
})
})
}
await writePkg(pkgJsonPath, packageJson)
return packageJson
}