UNPKG

@beemo/driver-babel

Version:
70 lines (53 loc) 1.65 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const rimraf = require('rimraf'); const core = require('@beemo/core'); const _interopDefault = e => e && e.__esModule ? e : { default: e }; const rimraf__default = /*#__PURE__*/_interopDefault(rimraf); // Success: Writes file list to stdout // Failure: Throws SyntaxError to stderr class BabelDriver extends core.Driver { constructor(...args) { super(...args); this.name = '@beemo/driver-babel'; this.handleCleanTarget = context => { const outDir = context.getRiskyOption('outDir', true); if (context.getRiskyOption('clean') && typeof outDir === 'string' && outDir) { rimraf__default.default.sync(core.Path.resolve(outDir).path()); } return Promise.resolve(); }; } bootstrap() { this.setMetadata({ bin: 'babel', commandOptions: { clean: { default: false, description: this.tool.msg('app:babelCleanOption'), type: 'boolean' } }, configName: 'babel.config.js', configOption: '--config-file', description: this.tool.msg('app:babelDescription'), title: 'Babel', watchOptions: ['-w', '--watch'] }); this.onBeforeExecute.listen(this.handleCleanTarget); } extractErrorMessage(error) { if (error.message.includes('SyntaxError')) { return error.message.split(/\s+at/u, 1)[0].trim(); } return super.extractErrorMessage(error); } /** * Automatically clean the target folder if --out-dir is used. */ } exports.BabelDriver = BabelDriver; //# sourceMappingURL=BabelDriver.js.map