UNPKG

ayakashi

Version:

The next generation web scraping framework

98 lines (97 loc) 3.51 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOpLog = void 0; const chalk_1 = __importDefault(require("chalk")); const dayjs_1 = __importDefault(require("dayjs")); const ora_1 = __importDefault(require("ora")); const boxen_1 = __importDefault(require("boxen")); const os_1 = require("os"); function getOpLog() { const env = process.env.NODE_ENV; return { info: function (...logs) { if (env === "test") return; process.stdout.write(formatLogs(logs, "info")); }, warn: function (...logs) { if (env === "test") return; process.stdout.write(formatLogs(logs, "warning")); }, error: function (...logs) { if (env === "test") return; process.stdout.write(formatLogs(logs, "error")); }, debug: function (...logs) { if (env === "test") return; process.stdout.write(formatLogs(logs, "debug")); }, waiter: function (text) { return ora_1.default({ color: "green", text: `${text}\n`, spinner: "triangle" }).start(); }, messageBox: function (logs, opts) { if (env === "test") return; process.stdout.write(boxen_1.default(logs.reduce((msg, log) => msg + log + "\n", ""), { borderColor: (opts && opts.color) || "cyan", align: "center", padding: 1, borderStyle: "double" /* Double */, margin: (opts && opts.margin) || 0 // float: "center" }) + "\n"); }, incrementalMessageBox: function (opts) { return { _logs: [], add: function (text) { if (Array.isArray(text)) { this._logs = this._logs.concat(text); } else { this._logs.push(text); } }, render: function () { if (this._logs.length === 0) return; process.stdout.write(boxen_1.default(this._logs.reduce((msg, log) => msg + log + "\n", ""), { borderColor: (opts && opts.color) || "cyan", align: "center", padding: 1, borderStyle: "double" /* Double */, margin: (opts && opts.margin) || 0 // float: "center" }) + "\n"); } }; } }; } exports.getOpLog = getOpLog; function formatLogs(logs, level) { return logs.reduce(function (acc, log) { if (level === "info") { return `${acc} ${chalk_1.default.cyan(log)}`; } else if (level === "warning") { return `${acc} ${chalk_1.default.yellow(log)}`; } else if (level === "error") { return `${acc} ${chalk_1.default.red(log)}`; } else { return `${acc} ${chalk_1.default.gray(log)}`; } }, chalk_1.default.underline.white(`[${dayjs_1.default().format("HH:mm:ss")}]`)) + os_1.EOL; }