@nlabs/lex
Version:
49 lines (48 loc) • 5.51 kB
JavaScript
/**
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
*/ import { LexConfig } from '../../LexConfig.js';
import { createSpinner, removeFiles, removeModules } from '../../utils/app.js';
import { log } from '../../utils/log.js';
export const clean = async (cmd, callback = (_status)=>({}))=>{
const { cliName = 'Lex', quiet, snapshots } = cmd;
// Spinner
const spinner = createSpinner(quiet);
// Display status
log(`${cliName} cleaning directory...`, 'info', quiet);
// Get custom configuration
await LexConfig.parseConfig(cmd);
// Start cleaning spinner
if (spinner) {
spinner.start('Cleaning files...');
}
try {
// Remove node_modules
await removeModules();
// Remove test coverage reports
await removeFiles('./coverage', true);
// Remove npm logs
await removeFiles('./npm-debug.log', true);
if (snapshots) {
await removeFiles('./**/__snapshots__', true);
}
// Stop spinner
if (spinner) {
spinner.succeed('Successfully cleaned!');
}
// Stop process
callback(0);
return 0;
} catch (error) {
// Display error message
log(`\n${cliName} Error: ${error.message}`, 'error', quiet);
// Stop spinner
if (spinner) {
spinner.fail('Failed to clean project.');
}
// Kill process
callback(1);
return 1;
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9jbGVhbi9jbGVhbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uLy4uL0xleENvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXIsIHJlbW92ZUZpbGVzLCByZW1vdmVNb2R1bGVzfSBmcm9tICcuLi8uLi91dGlscy9hcHAuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xlYW5PcHRpb25zIHtcbiAgcmVhZG9ubHkgY2xpTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xuICByZWFkb25seSBzbmFwc2hvdHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDbGVhbkNhbGxiYWNrID0gKHN0YXR1czogbnVtYmVyKT0+IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCBjbGVhbiA9IGFzeW5jIChcbiAgY21kOiBDbGVhbk9wdGlvbnMsXG4gIGNhbGxiYWNrOiBDbGVhbkNhbGxiYWNrID0gKF9zdGF0dXM6IG51bWJlcikgPT4gKHt9KVxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3Qge2NsaU5hbWUgPSAnTGV4JywgcXVpZXQsIHNuYXBzaG90c30gPSBjbWQ7XG5cbiAgLy8gU3Bpbm5lclxuICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgLy8gRGlzcGxheSBzdGF0dXNcbiAgbG9nKGAke2NsaU5hbWV9IGNsZWFuaW5nIGRpcmVjdG9yeS4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIC8vIEdldCBjdXN0b20gY29uZmlndXJhdGlvblxuICBhd2FpdCBMZXhDb25maWcucGFyc2VDb25maWcoY21kKTtcblxuICAvLyBTdGFydCBjbGVhbmluZyBzcGlubmVyXG4gIGlmKHNwaW5uZXIpIHtcbiAgICBzcGlubmVyLnN0YXJ0KCdDbGVhbmluZyBmaWxlcy4uLicpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBSZW1vdmUgbm9kZV9tb2R1bGVzXG4gICAgYXdhaXQgcmVtb3ZlTW9kdWxlcygpO1xuXG4gICAgLy8gUmVtb3ZlIHRlc3QgY292ZXJhZ2UgcmVwb3J0c1xuICAgIGF3YWl0IHJlbW92ZUZpbGVzKCcuL2NvdmVyYWdlJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgbnBtIGxvZ3NcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi9ucG0tZGVidWcubG9nJywgdHJ1ZSk7XG5cbiAgICBpZihzbmFwc2hvdHMpIHtcbiAgICAgIGF3YWl0IHJlbW92ZUZpbGVzKCcuLyoqL19fc25hcHNob3RzX18nLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICBpZihzcGlubmVyKSB7XG4gICAgICBzcGlubmVyLnN1Y2NlZWQoJ1N1Y2Nlc3NmdWxseSBjbGVhbmVkIScpO1xuICAgIH1cblxuICAgIC8vIFN0b3AgcHJvY2Vzc1xuICAgIGNhbGxiYWNrKDApO1xuICAgIHJldHVybiAwO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgLy8gRGlzcGxheSBlcnJvciBtZXNzYWdlXG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuXG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgaWYoc3Bpbm5lcikge1xuICAgICAgc3Bpbm5lci5mYWlsKCdGYWlsZWQgdG8gY2xlYW4gcHJvamVjdC4nKTtcbiAgICB9XG5cbiAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICBjYWxsYmFjaygxKTtcbiAgICByZXR1cm4gMTtcbiAgfVxufTsiXSwibmFtZXMiOlsiTGV4Q29uZmlnIiwiY3JlYXRlU3Bpbm5lciIsInJlbW92ZUZpbGVzIiwicmVtb3ZlTW9kdWxlcyIsImxvZyIsImNsZWFuIiwiY21kIiwiY2FsbGJhY2siLCJfc3RhdHVzIiwiY2xpTmFtZSIsInF1aWV0Iiwic25hcHNob3RzIiwic3Bpbm5lciIsInBhcnNlQ29uZmlnIiwic3RhcnQiLCJzdWNjZWVkIiwiZXJyb3IiLCJtZXNzYWdlIiwiZmFpbCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsU0FBUyxRQUFPLHFCQUFxQjtBQUM3QyxTQUFRQyxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsYUFBYSxRQUFPLHFCQUFxQjtBQUM3RSxTQUFRQyxHQUFHLFFBQU8scUJBQXFCO0FBVXZDLE9BQU8sTUFBTUMsUUFBUSxPQUNuQkMsS0FDQUMsV0FBMEIsQ0FBQ0MsVUFBcUIsQ0FBQSxDQUFDLENBQUEsQ0FBRTtJQUVuRCxNQUFNLEVBQUNDLFVBQVUsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLFNBQVMsRUFBQyxHQUFHTDtJQUU1QyxVQUFVO0lBQ1YsTUFBTU0sVUFBVVgsY0FBY1M7SUFFOUIsaUJBQWlCO0lBQ2pCTixJQUFJLEdBQUdLLFFBQVEsc0JBQXNCLENBQUMsRUFBRSxRQUFRQztJQUVoRCwyQkFBMkI7SUFDM0IsTUFBTVYsVUFBVWEsV0FBVyxDQUFDUDtJQUU1Qix5QkFBeUI7SUFDekIsSUFBR00sU0FBUztRQUNWQSxRQUFRRSxLQUFLLENBQUM7SUFDaEI7SUFFQSxJQUFJO1FBQ0Ysc0JBQXNCO1FBQ3RCLE1BQU1YO1FBRU4sK0JBQStCO1FBQy9CLE1BQU1ELFlBQVksY0FBYztRQUVoQyxrQkFBa0I7UUFDbEIsTUFBTUEsWUFBWSxtQkFBbUI7UUFFckMsSUFBR1MsV0FBVztZQUNaLE1BQU1ULFlBQVksc0JBQXNCO1FBQzFDO1FBRUEsZUFBZTtRQUNmLElBQUdVLFNBQVM7WUFDVkEsUUFBUUcsT0FBTyxDQUFDO1FBQ2xCO1FBRUEsZUFBZTtRQUNmUixTQUFTO1FBQ1QsT0FBTztJQUNULEVBQUUsT0FBTVMsT0FBTztRQUNiLHdCQUF3QjtRQUN4QlosSUFBSSxDQUFDLEVBQUUsRUFBRUssUUFBUSxRQUFRLEVBQUVPLE1BQU1DLE9BQU8sRUFBRSxFQUFFLFNBQVNQO1FBRXJELGVBQWU7UUFDZixJQUFHRSxTQUFTO1lBQ1ZBLFFBQVFNLElBQUksQ0FBQztRQUNmO1FBRUEsZUFBZTtRQUNmWCxTQUFTO1FBQ1QsT0FBTztJQUNUO0FBQ0YsRUFBRSJ9