@mhy/config
Version:
> This documentation is not complete. It's in progress and it's a BETA version. Use the tool at your own risk.
62 lines (46 loc) • 1.97 kB
JavaScript
;
var _path = _interopRequireDefault(require("path"));
var _dist = _interopRequireDefault(require("@mhy/process/dist"));
var _copyDir = _interopRequireDefault(require("copy-dir"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
const getCmdBabelCLI = (flags = []) => ['node', require.resolve('@babel/cli/bin/babel.js'), _path.default.resolve(process.cwd(), 'src'), '--out-dir', 'dist', '--config-file', _path.default.resolve(__dirname, '../../babel'), '--ignore', 'node_modules,test,tests,dist,temp,tmp', '--delete-dir-on-start', '--extensions', '.js,.jsx,.ts,.tsx', ...flags];
class Babel extends _dist.default {
constructor(args) {
const {
args: [defaultAction = 'start'],
flags: _flags
} = args;
super(args);
_defineProperty(this, "onStart", ({
name
}, {
flags
}) => {
this.spawn(name, getCmdBabelCLI(flags)).on('exit', () => {
_copyDir.default.sync(_path.default.resolve(process.cwd(), 'src'), _path.default.resolve(process.cwd(), 'dist'), function (stat, filepath, filename) {
if (stat === 'file') {
if (filename.endsWith('.d.ts')) {
return true;
}
if (filename.endsWith('ts') || filename.endsWith('tsx') || filename.endsWith('js') || filename.endsWith('jsx')) {
return false;
}
return true;
}
return true;
});
});
});
_defineProperty(this, "actions", [{
name: 'start',
enabled: true,
onRun: this.onStart
}]);
this.run(defaultAction, {
flags: _flags
});
}
}
_defineProperty(Babel, "isEnabled", true);
module.exports.default = () => Babel;