react-native-clean-project
Advanced tools
Comparing version 3.3.0 to 3.4.0
{ | ||
"name": "react-native-clean-project", | ||
"version": "3.3.0", | ||
"version": "3.4.0", | ||
"engines": { | ||
@@ -5,0 +5,0 @@ "node": ">=8.9.0" |
@@ -40,17 +40,18 @@ # React Native Clean Project | ||
| State Type | Command | In `clean-project-auto`? | Optional? | Default? | Option Flag | | ||
| -------------------- | ----------------------------- | ------------------------ | ---------- | -------- | ---------------------- | | ||
| React-native cache | `rm -rf $TMPDIR/react-*` | Yes | No | true | | | ||
| Metro bundler cache | `rm -rf $TMPDIR/metro-*` | Yes | No | true | | | ||
| Watchman cache | `watchman watch-del-all` | Yes | No | true | | | ||
| NPM modules | `rm -rf node_modules` | Yes | Yes | true | --keep-node_modules | | ||
| Yarn cache | `yarn cache clean` | Yes | Yes | true | --keep-node-modules | | ||
| Yarn packages | `yarn install` | No | Yes | true | --keep-node-modules | | ||
| NPM cache | `npm cache verify` | Yes | Yes | true | --keep-node-modules | | ||
| NPM Install | `npm ci` | Yes | Yes | true | --keep-node-modules | | ||
| iOS build folder | `rm -rf ios/build` | Yes | Yes | false | --remove-iOS-build | | ||
| iOS pods folder | `rm -rf ios/pods` | Yes | Yes | false | --remove-iOS-pods | | ||
| Android build folder | `rm -rf android/build` | Yes | Yes | false | --remove-android-build | | ||
| Brew package | `brew update && brew upgrade` | No | Yes | true | --keep-brew | | ||
| Pod packages | `pod update` | No | Yes | true | --keep-pods | | ||
| State Type | Command | In `clean-project-auto`? | Optional? | Default? | Option Flag | | ||
| --------------------- | -------------------------------- | ------------------------ | ---------- | -------- | ---------------------- | | ||
| React-native cache | `rm -rf $TMPDIR/react-*` | Yes | No | true | | | ||
| Metro bundler cache | `rm -rf $TMPDIR/metro-*` | Yes | No | true | | | ||
| Watchman cache | `watchman watch-del-all` | Yes | No | true | | | ||
| NPM modules | `rm -rf node_modules` | Yes | Yes | true | --keep-node_modules | | ||
| Yarn cache | `yarn cache clean` | Yes | Yes | true | --keep-node-modules | | ||
| Yarn packages | `yarn install` | No | Yes | true | --keep-node-modules | | ||
| NPM cache | `npm cache verify` | Yes | Yes | true | --keep-node-modules | | ||
| NPM Install | `npm ci` | Yes | Yes | true | --keep-node-modules | | ||
| iOS build folder | `rm -rf ios/build` | Yes | Yes | false | --remove-iOS-build | | ||
| iOS pods folder | `rm -rf ios/pods` | Yes | Yes | false | --remove-iOS-pods | | ||
| Android build folder | `rm -rf android/build` | Yes | Yes | false | --remove-android-build | | ||
| Android clean project | `(cd android && ./gradlew clean)`| Yes | Yes | false | --clean-android-project| | ||
| Brew package | `brew update && brew upgrade` | No | Yes | true | --keep-brew | | ||
| Pod packages | `pod update` | No | Yes | true | --keep-pods | | ||
@@ -57,0 +58,0 @@ Example: `./node_modules/.bin/react-native-clean-project --remove-iOS-build` |
@@ -11,2 +11,3 @@ #!/usr/bin/env node | ||
.then(options.askAndroid) | ||
.then(options.askAndroidCleanProject) | ||
.then(options.askNodeModules) | ||
@@ -25,2 +26,5 @@ .then(options.askBrew) | ||
} | ||
if (options.getCleanAndroidProject()) { | ||
executeTask(tasks.cleanAndroidProject); | ||
} | ||
executeTask(tasks.watchmanCacheClear); | ||
@@ -27,0 +31,0 @@ executeTask(tasks.wipeTempCaches); |
@@ -11,2 +11,4 @@ const { createInterface } = require('readline'); | ||
// Defaults | ||
let cleanAndroidProject = false; | ||
let wipeiOSBuild = false; | ||
@@ -19,2 +21,5 @@ let wipeiOSPods = false; | ||
const getCleanAndroidProject = () => { | ||
return cleanAndroidProject; | ||
}; | ||
const getWipeiOSBuild = () => { | ||
@@ -80,2 +85,17 @@ return wipeiOSBuild; | ||
const askAndroidCleanProject = () => | ||
new Promise(resolve => { | ||
if (args.includes('--clean-android-project')) { | ||
cleanAndroidProject = true; | ||
return resolve(); | ||
} | ||
return askQuestion('Clean Android project? (Y/n) ', answer => { | ||
cleanAndroidProject = checkAnswer( | ||
answer, | ||
askAndroidCleanProject, | ||
resolve | ||
); | ||
}); | ||
}); | ||
const askAndroid = () => | ||
@@ -126,2 +146,3 @@ new Promise(resolve => { | ||
module.exports = { | ||
getCleanAndroidProject, | ||
getWipeiOSBuild, | ||
@@ -137,2 +158,3 @@ getWipeiOSPods, | ||
askAndroid, | ||
askAndroidCleanProject, | ||
askNodeModules, | ||
@@ -139,0 +161,0 @@ askBrew, |
@@ -27,2 +27,7 @@ // Implementation of various command-line tasks | ||
}, | ||
cleanAndroidProject: { | ||
name: 'clean android project', | ||
command: '(cd android && ./gradlew clean)', | ||
args: [] | ||
}, | ||
watchmanCacheClear: { | ||
@@ -29,0 +34,0 @@ name: 'watchman cache clear (if watchman is installed)', |
@@ -15,5 +15,5 @@ // Set up a mock command executor that records task names so we may verify task execution | ||
describe('Tasks List', () => { | ||
it('should have twelve tasks in total', () => { | ||
it('should have the correct number of tasks in total', () => { | ||
const input = Object.keys(tasks).length; | ||
const expected = 12; | ||
const expected = 14; | ||
@@ -28,3 +28,3 @@ expect(input).toEqual(expected); | ||
plugin[0].func(); | ||
expect(tasksExecuted.length).toEqual(8); | ||
expect(tasksExecuted.length).toEqual(9); | ||
autoTasks.forEach(task => { | ||
@@ -31,0 +31,0 @@ expect(tasksExecuted.includes(task.name)).toEqual(true); |
31960
536
76