Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
removedPackages: string[],
opts: {
saveType?: DependenciesField,
prefix: string,
},
): Promise {
if (opts.saveType) {
packageManifest[opts.saveType] = packageManifest[opts.saveType]
if (!packageManifest[opts.saveType]) return packageManifest
removedPackages.forEach((dependency) => {
delete packageManifest[opts.saveType as DependenciesField]![dependency]
})
} else {
DEPENDENCIES_FIELDS
.filter((depField) => packageManifest[depField])
.forEach((depField) => {
removedPackages.forEach((dependency) => {
delete packageManifest[depField]![dependency]
})
})
}
if (packageManifest.peerDependencies) {
for (const removedDependency of removedPackages) {
delete packageManifest.peerDependencies[removedDependency]
}
}
packageManifestLogger.debug({
prefix: opts.prefix,
updated: packageManifest,
function stringifyIncludedDeps (included: IncludedDependencies) {
return DEPENDENCIES_FIELDS.filter((depsField) => included[depsField]).join(', ')
}
packageSpecs.forEach((packageSpec) => {
if (packageSpec.saveType) {
const spec = packageSpec.pref || findSpec(packageSpec.alias, packageManifest as ImporterManifest)
if (spec) {
packageManifest[packageSpec.saveType] = packageManifest[packageSpec.saveType] || {}
packageManifest[packageSpec.saveType]![packageSpec.alias] = spec
DEPENDENCIES_FIELDS.filter((depField) => depField !== packageSpec.saveType).forEach((deptype) => {
if (packageManifest[deptype]) {
delete packageManifest[deptype]![packageSpec.alias]
}
})
if (packageSpec.peer === true) {
packageManifest.peerDependencies = packageManifest.peerDependencies || {}
packageManifest.peerDependencies[packageSpec.alias] = spec
}
}
} else if (packageSpec.pref) {
const usedDepType = guessDependencyType(packageSpec.alias, packageManifest as ImporterManifest) || 'dependencies'
packageManifest[usedDepType] = packageManifest[usedDepType] || {}
packageManifest[usedDepType]![packageSpec.alias] = packageSpec.pref
}
})