diff --git a/lib/index.js b/lib/index.js index 7762f77..580d8f1 100644 --- a/lib/index.js +++ b/lib/index.js @@ -370,21 +370,27 @@ const recursivelyCollectAllDependencies = (options) => { * order to making `--direct` work with newer versions of npm, we need to filter out all non-dependencies from * the json result. */ -const removeUnwantedDependencies = (json, args) => { - if (args.direct === 0) { - const allDependencies = Object.keys(json.dependencies); - let wantedDependencies = []; - - if (args.production && !args.development) { - const devDependencies = Object.keys(json.devDependencies); - wantedDependencies = Object.keys(json._dependencies).filter( - (directDependency) => !devDependencies.includes(directDependency), - ); - } else if (!args.production && args.development) { - wantedDependencies = Object.keys(json.devDependencies); - } else { - wantedDependencies = Object.keys(json._dependencies); +const deleteNonDirectDependencies = (json, options) => { + const allDependencies = Object.keys(json.dependencies); + let wantedDependencies = []; + + if (options.production && !options.development) { + const devDependencies = Object.keys(json.devDependencies); + wantedDependencies = Object.keys(json._dependencies).filter( + (directDependency) => !devDependencies.includes(directDependency), + ); + } else if (!options.production && options.development) { + wantedDependencies = Object.keys(json.devDependencies); + } else { + wantedDependencies = Object.keys(json._dependencies); + } + + allDependencies.forEach((currentDependency) => { + if (!wantedDependencies.includes(currentDependency)) { + delete json.dependencies[currentDependency]; } + }); +}; allDependencies.forEach((currentDependency) => { if (!wantedDependencies.includes(currentDependency)) { @@ -458,7 +464,9 @@ exports.init = function init(initArgs, callback) { } read(args.start, opts, (err, json) => { - removeUnwantedDependencies(json, args); + if (optionsForReadingInstalledPackages.depth === 0) { + deleteNonDirectDependencies(json, args); + } const data = recursivelyCollectAllDependencies({ _args: args,