UNPKG

6.24 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/compiler-worker.js"],"names":["ARSON","require","yargsParser","flags","process","argv","slice","createCompiler","debug","debuglog","validate","send","connected","m","stringify","startCompilerWorker","catch","err","setTimeout","FAILURE_COUNT","cwd","target","config","parse","name","valid","console","error","compiler","fs","outputFileSystem","beat","Date","now","failures","setInterval","age","type","exit","hooks","compile","tap","payload","done","stats","compilation","errors","length","forEach","data","failed","on","envelope","message","watch","ignored"],"mappings":"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","file":"compiler-worker.js","sourcesContent":["const ARSON = require(\"arson\");\nconst yargsParser = require(\"yargs-parser\");\nconst flags = yargsParser(process.argv.slice(2));\nconst createCompiler = require(\"@patternplate/compiler\");\nconst debug = require(\"util\").debuglog(\"PATTERNPLATE\");\nconst { validate } = require(\"@patternplate/validate-config\");\n\nconst send = typeof process.send === \"function\" && process.connected\n ? m => process.send(ARSON.stringify(m))\n : () => {};\n\nstartCompilerWorker()\n .catch(err => {\n setTimeout(() => {\n throw err;\n })\n });\n\nconst FAILURE_COUNT = 5;\n\nasync function startCompilerWorker() {\n const {cwd, target} = flags;\n const config = ARSON.parse(flags.config);\n\n const [err, valid] = validate({ target: config, name: `${target}-worker` });\n\n if (!valid) {\n console.error(err);\n return;\n }\n\n const compiler = await createCompiler({config, cwd, target});\n const fs = compiler.outputFileSystem;\n\n let beat = Date.now();\n let failures = 0;\n\n setInterval(() => {\n const age = Date.now() - beat;\n if (age >= 2000) {\n failures++;\n debug(`worker: ${target} beat is ${age}ms old, failure ${failures}/${FAILURE_COUNT}.`);\n } else if (failures !== 0) {\n debug(`worker: ${target} beat limit met, reset failure to 0/${FAILURE_COUNT}.`);\n failures = 0;\n }\n if (failures >= FAILURE_COUNT) {\n send({\n type: \"shutdown\", target\n });\n process.exit(0);\n }\n }, 1000);\n\n compiler.hooks.compile.tap(\"patternpalte\", () => {\n send({type: \"start\", target, payload: {}});\n });\n\n compiler.hooks.done.tap(\"patternplate\", (stats) => {\n if (stats.compilation.errors && stats.compilation.errors.length > 0) {\n stats.compilation.errors.forEach(err => {\n return send({type: \"error\", target, payload: err});\n });\n return send({type: \"error\", target, payload: stats.compilation.errors});\n }\n send({type: \"done\", target, payload: fs.data});\n });\n\n compiler.hooks.failed.tap(\"patternplate\", err => {\n send({type: \"error\", target, payload: err});\n });\n\n process.on(\"message\", async envelope => {\n const message = ARSON.parse(envelope);\n\n switch (message.type) {\n case \"heartbeat\": {\n beat = Date.now();\n return;\n }\n case \"start\": {\n debug(`worker: start ${target}`);\n return compiler.watch({ignored: \"**/pattern.json\"}, () => {});\n }\n case \"stop\": {\n debug(`worker: stop ${target}`);\n process.exit(0);\n }\n }\n });\n\n send({type: \"ready\"});\n}\n"]}
\No newline at end of file