Skip to content

Commit

Permalink
✨ Remove unused files
Browse files Browse the repository at this point in the history
  • Loading branch information
MatthieuLemoine committed Oct 26, 2018
1 parent 68fbc38 commit 3d9146d
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 13 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@ Yeah no unused files or dependencies :tada:

Thanks **Remnants** !

## Remove unused files

```
remnants --sourceDirectories src --remove
```

## Advance usage

```
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "remnants",
"version": "1.1.0",
"version": "1.2.0",
"description": "Find unused files. Spot these residues, leftovers, relics of an ancient past.",
"main": "index.js",
"module": "src/index.js",
Expand All @@ -15,8 +15,8 @@
"conductor": "^1.4.1",
"deglob": "^3.1.0",
"esm": "^3.0.84",
"fs-extra": "^7.0.0",
"ora": "^3.0.0",
"recursive-readdir": "^2.2.2",
"yargs": "^12.0.2"
},
"devDependencies": {
Expand Down
17 changes: 15 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import path from 'path';
import yargs from 'yargs';
import ora from 'ora';
import fs from 'fs-extra';
import chalk from 'chalk';
import { filesReport, dependenciesReport } from './reporter';
import resolve from './resolver';
import readdir from './readdir';
Expand All @@ -10,6 +12,7 @@ const { argv } = yargs.array('sourceDirectories');
const {
projectRoot: relativeRoot = process.cwd(),
sourceDirectories = [],
remove,
} = argv;

const projectRoot = path.resolve(relativeRoot);
Expand All @@ -25,12 +28,22 @@ const spinner = ora('Looking for remnants').start();
const { usedFiles, usedDependencies } = resolve(projectRoot);

(async () => {
const files = await readdir(sourceDirectories);
const directories = await readdir(sourceDirectories);
const unusedDependencies = [
...Object.keys(manifest.dependencies || {}),
].filter(item => !usedDependencies[item]);
const unusedFiles = files.map(item => item.filter(filePath => !usedFiles[path.join(projectRoot, filePath)]));
const unusedFiles = directories.map(files => files.filter(filePath => !usedFiles[path.join(projectRoot, filePath)]));
spinner.stop();
filesReport(projectRoot, sourceDirectories, unusedFiles);
dependenciesReport(unusedDependencies);
if (remove) {
const filesToDelete = unusedFiles.reduce(
(acc, files) => [...acc, ...files],
[],
);
await Promise.all(filesToDelete.map(file => fs.remove(file)));
process.stdout.write(
chalk.green(`\n🔥 ${filesToDelete.length} files deleted.\n`),
);
}
})();
32 changes: 23 additions & 9 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1675,6 +1675,15 @@ fragment-cache@^0.2.1:
dependencies:
map-cache "^0.2.2"

fs-extra@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6"
integrity sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==
dependencies:
graceful-fs "^4.1.2"
jsonfile "^4.0.0"
universalify "^0.1.0"

fs-minipass@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
Expand Down Expand Up @@ -1817,7 +1826,7 @@ globby@^5.0.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"

graceful-fs@^4.1.11, graceful-fs@^4.1.2:
graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
Expand Down Expand Up @@ -2869,6 +2878,13 @@ json5@^0.5.1:
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=

jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
optionalDependencies:
graceful-fs "^4.1.6"

jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
Expand Down Expand Up @@ -3266,7 +3282,7 @@ mimic-fn@^1.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==

minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
Expand Down Expand Up @@ -4075,13 +4091,6 @@ realpath-native@^1.0.0:
dependencies:
util.promisify "^1.0.0"

recursive-readdir@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f"
integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==
dependencies:
minimatch "3.0.4"

regenerator-runtime@^0.11.0:
version "0.11.1"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
Expand Down Expand Up @@ -4902,6 +4911,11 @@ uniq@^1.0.1:
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=

universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==

unset-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
Expand Down

0 comments on commit 3d9146d

Please sign in to comment.