aboutsummaryrefslogtreecommitdiffstats
path: root/packages/monorepo-scripts/src/find_unused_dependencies.ts
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-04-04 02:58:18 +0800
committerGitHub <noreply@github.com>2018-04-04 02:58:18 +0800
commit674e56cea69fe96ddd0071d3c4c5b5ea8ae299bf (patch)
tree19ddd0c0312eed054595c0d3431ecddead18e857 /packages/monorepo-scripts/src/find_unused_dependencies.ts
parent4a9752d7cda05f616d2709e34f4687da813d3090 (diff)
parent61809130a6659335c7550cf35c55e20b3e579a6f (diff)
downloaddexon-sol-tools-674e56cea69fe96ddd0071d3c4c5b5ea8ae299bf.tar
dexon-sol-tools-674e56cea69fe96ddd0071d3c4c5b5ea8ae299bf.tar.gz
dexon-sol-tools-674e56cea69fe96ddd0071d3c4c5b5ea8ae299bf.tar.bz2
dexon-sol-tools-674e56cea69fe96ddd0071d3c4c5b5ea8ae299bf.tar.lz
dexon-sol-tools-674e56cea69fe96ddd0071d3c4c5b5ea8ae299bf.tar.xz
dexon-sol-tools-674e56cea69fe96ddd0071d3c4c5b5ea8ae299bf.tar.zst
dexon-sol-tools-674e56cea69fe96ddd0071d3c4c5b5ea8ae299bf.zip
Merge pull request #496 from 0xProject/removeUnusedDeps
Remove unused deps + Remove Dharma from website
Diffstat (limited to 'packages/monorepo-scripts/src/find_unused_dependencies.ts')
-rw-r--r--packages/monorepo-scripts/src/find_unused_dependencies.ts45
1 files changed, 45 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..374cba2e3
--- /dev/null
+++ b/packages/monorepo-scripts/src/find_unused_dependencies.ts
@@ -0,0 +1,45 @@
+#!/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';
+
+// For some reason, `depcheck` hangs on some packages. Add them here.
+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 = 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): Promise<depcheck.Results> {
+ return new Promise<depcheck.Results>((resolve, reject) => {
+ depcheck(path, opts, (unused: any) => {
+ resolve(unused);
+ });
+ });
+}