diff options
author | Fabio Berger <me@fabioberger.com> | 2018-04-03 14:28:07 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-04-03 14:28:07 +0800 |
commit | fd9278ac02d7c03bb70a34205ef012cf432f879f (patch) | |
tree | 46e1a478aba816e2458cbef18be9b935b852fe1e /packages/monorepo-scripts/src | |
parent | 1b7c7037b8f05a99e840c32504bd14a79957c78d (diff) | |
download | dexon-sol-tools-fd9278ac02d7c03bb70a34205ef012cf432f879f.tar dexon-sol-tools-fd9278ac02d7c03bb70a34205ef012cf432f879f.tar.gz dexon-sol-tools-fd9278ac02d7c03bb70a34205ef012cf432f879f.tar.bz2 dexon-sol-tools-fd9278ac02d7c03bb70a34205ef012cf432f879f.tar.lz dexon-sol-tools-fd9278ac02d7c03bb70a34205ef012cf432f879f.tar.xz dexon-sol-tools-fd9278ac02d7c03bb70a34205ef012cf432f879f.tar.zst dexon-sol-tools-fd9278ac02d7c03bb70a34205ef012cf432f879f.zip |
Add find_unused_deps monorepo script
Diffstat (limited to 'packages/monorepo-scripts/src')
-rw-r--r-- | packages/monorepo-scripts/src/find_unused_dependencies.ts | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/packages/monorepo-scripts/src/find_unused_dependencies.ts b/packages/monorepo-scripts/src/find_unused_dependencies.ts new file mode 100644 index 000000000..406500b21 --- /dev/null +++ b/packages/monorepo-scripts/src/find_unused_dependencies.ts @@ -0,0 +1,44 @@ +#!/usr/bin/env node + +import * as depcheck from 'depcheck'; +import * as fs from 'fs'; +import lernaGetPackages = require('lerna-get-packages'); +import * as _ from 'lodash'; +import { exec as execAsync } from 'promisify-child-process'; + +import { constants } from './constants'; +import { utils } from './utils'; + +const IGNORE_PACKAGES = ['@0xproject/deployer']; + +(async () => { + utils.log('*** NOTE: Not all deps listed here are actually not required. ***'); + utils.log("*** `depcheck` isn't perfect so double check before actually removing any. ***\n"); + const lernaPackages = lernaGetPackages(constants.monorepoRootPath); + for (const lernaPackage of lernaPackages) { + if (_.includes(IGNORE_PACKAGES, lernaPackage.package.name)) { + continue; // skip + } + utils.log(`Checking ${lernaPackage.package.name} for unused deps. This might take a while...`); + + const configs = {}; + const result: any = await depcheckAsync(lernaPackage.location, configs); + if (!_.isEmpty(result.dependencies)) { + _.each(result.dependencies, dep => { + utils.log(dep); + }); + } + utils.log('\n'); + } +})().catch(err => { + utils.log(err); + process.exit(1); +}); + +async function depcheckAsync(path: string, opts: any) { + return new Promise<void>((resolve, reject) => { + depcheck(path, opts, (unused: any) => { + resolve(unused); + }); + }); +} |