instapack
Version:
All-in-one TypeScript and Sass compiler for web applications!
79 lines (78 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.copyWorker = exports.cssWorker = exports.typeCheckWorker = exports.jsWorker = void 0;
const TypeScriptBuildEngine_1 = require("./TypeScriptBuildEngine");
const TypeScriptCheckerTool_1 = require("./TypeScriptCheckerTool");
const SassBuildTool_1 = require("./SassBuildTool");
const CopyBuildTool_1 = require("./CopyBuildTool");
const VoiceAssistant_1 = require("./VoiceAssistant");
const Shout_1 = require("./Shout");
async function stayAlive() {
return new Promise(() => {
});
}
async function jsWorker(variables) {
const tool = new TypeScriptBuildEngine_1.TypeScriptBuildEngine(variables);
await tool.build();
if (variables.watch) {
await stayAlive();
}
}
exports.jsWorker = jsWorker;
async function typeCheckWorker(variables) {
const tool = await TypeScriptCheckerTool_1.TypeScriptCheckerTool.createToolAsync(variables);
await tool.typeCheck();
if (variables.watch) {
tool.watch();
await stayAlive();
}
}
exports.typeCheckWorker = typeCheckWorker;
async function cssWorker(variables) {
const tool = new SassBuildTool_1.SassBuildTool(variables);
await tool.buildWithStopwatch();
if (variables.watch) {
tool.watch();
await stayAlive();
}
}
exports.cssWorker = cssWorker;
async function copyWorker(variables) {
const tool = new CopyBuildTool_1.CopyBuildTool(variables);
await tool.buildWithStopwatch();
}
exports.copyWorker = copyWorker;
const buildMaps = {};
buildMaps['js'] = {
commandLineName: 'JS',
voicedName: 'JAVA SCRIPT',
worker: jsWorker
};
buildMaps['type-check'] = {
commandLineName: 'type-check',
voicedName: 'TYPE CHECK',
worker: typeCheckWorker
};
buildMaps['css'] = {
commandLineName: 'CSS',
voicedName: 'CSS',
worker: cssWorker
};
buildMaps['copy'] = {
commandLineName: 'copy assets',
voicedName: 'COPY ASSETS',
worker: copyWorker
};
if (process.send) {
process.on('message', (param) => {
const meta = buildMaps[param.build];
const va = new VoiceAssistant_1.VoiceAssistant(param.variables.mute);
meta.worker(param.variables).then(() => {
process.exit();
}).catch(err => {
Shout_1.Shout.fatal(`during ${meta.commandLineName} build:`, err);
va.speak(meta.voicedName + ' FATAL ERROR!');
process.exit();
});
});
}