From 56d458ebc47dc0e5b3e3b699ac7e939f00e0be50 Mon Sep 17 00:00:00 2001 From: claudiahdz Date: Thu, 4 Jun 2020 17:21:33 -0500 Subject: feat: use Arborist for dedupe and prune --- lib/prune.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'lib/prune.js') diff --git a/lib/prune.js b/lib/prune.js index 6e1cd9318..e675df30d 100644 --- a/lib/prune.js +++ b/lib/prune.js @@ -1,20 +1,25 @@ -// prune extraneous packages. -const util = require('util') +// prune extraneous packages +const npm = require('./npm.js') const Arborist = require('@npmcli/arborist') -const rimraf = util.promisify(require('rimraf')) -const reifyOutput = require('./utils/reify-output.js') const usageUtil = require('./utils/usage.js') -const usage = usageUtil('prune', - 'npm prune [[<@scope>/]...] [--production]') +const reifyOutput = require('./utils/reify-output.js') -const completion = require('./utils/completion/installed-deep.js') +const usage = usageUtil('prune', + 'npm prune [[<@scope>/]...] [--production]' +) +const completion = (cb) => cb(null, []) -const cmd = (args, cb) => prune(args).then(() => cb()).catch(cb) +const cmd = (args, cb) => prune().then(() => cb()).catch(cb) -const prune = async args => { - require('npmlog').warn('coming soon!') - throw new Error('not yet implemented') +const prune = async () => { + const where = npm.prefix + const arb = new Arborist({ + ...npm.flatOptions, + path: where + }) + await arb.prune() + reifyOutput(arb) } module.exports = Object.assign(cmd, { usage, completion }) -- cgit v1.2.3