UNPKG

@node-elion/builder

Version:

Super scalable enterprise Node.js server library

52 lines (49 loc) 1.77 kB
const cliSpinners = require("cli-spinners"); const buildComponent = require("../../build/index"); const tryCatch = (func) => { try { return func(); } catch (e) { return e; } }; module.exports = async function buildLog(params) { const chalk = (await import("chalk")).default; const ora = (await import("ora")).default; const spinner = ora({ text: "Running Build", spinner: cliSpinners.dots, }); return buildComponent(params, (eventName, ...callbackParams) => { const eventNameSplit = eventName.split("::"); if (eventNameSplit[0] === "log") { console[console[eventNameSplit[1]] ? eventNameSplit[1] : "log"]( ...callbackParams, ); } if (eventNameSplit[0] === "build") { if (eventNameSplit[1] === "init") { if (params.assetsFolder && !callbackParams[0].useAssetsFolder) { console.warn( chalk.yellow( `[elion-builder] warn: Assets Folder (${params.assetsFolder}) is not created or empty`, ), ); } } if (eventNameSplit[1] === "start") { spinner.start(); } if (eventNameSplit[1] === "end") { if (callbackParams[1].hasErrors()) { // here we need to clear one up line tryCatch(() => process.stdout.moveCursor(0, -1)); tryCatch(() => process.stdout.clearScreenDown()); spinner.fail().clear(); } else { spinner.succeed().clear(); } } } }); };