jazelle/commands/purge.js (16 lines of code) (raw):
// @flow
const {getManifest} = require('../utils/get-manifest.js');
const {spawn, remove} = require('../utils/node-helpers.js');
const {bazel} = require('../utils/binary-paths.js');
/*::
export type PurgeArgs = {
root: string,
force?: boolean,
};
export type Purge = (PurgeArgs) => Promise<void>;
*/
const purge /*: Purge */ = async ({root, force = false}) => {
const {projects = []} = await getManifest({root});
await Promise.all([
...projects.map(project => remove(`${root}/${project}/node_modules`)),
remove(`${root}/third_party/jazelle/temp`),
remove(`${root}/node_modules`),
spawn(bazel, force ? ['clean', '--expunge'] : ['clean'], {
cwd: root,
stdio: 'inherit',
}).catch(() => {}), // user doesn't care for our stack trace, just pipe bazel output instead
]);
};
module.exports = {purge};