UNPKG

@da.li/core-libs

Version:

大沥网络函数库是大沥网络提供的一个公共 TypeScript 函数库,封装了基础操作、缓存、加密、文件处理、HTTP 请求等常用功能模块,旨在提高开发效率。

179 lines (176 loc) 5.43 kB
import { $Global, DEBUG, SERVERMODE, TEST, errorTrace, globalId, hasArray, hasObject, hasString, isFn, isObject, isString, template } from "./chunk-BOVD54NE.js"; // src/console/index.ts import chalk from "chalk"; import { parseFilename } from "ufo"; var ConsoleEcho = class { /** 信息输出 */ _echo(icon, bgColor, color, mode, message, ...optionalParams) { if ((!DEBUG || TEST) && mode !== "error") return; const stringify = (objColor, obj) => { obj = emptyString(obj); const str = isObject(obj) ? JSON.stringify(obj, null, " ") : obj; return objColor(` ${str} `); }; const emptyString = (obj) => { if (typeof obj === "undefined") return chalk.bgGray.cyanBright(" Undefined "); if (obj === null) return chalk.bgGray.cyanBright(" Null "); if (obj === "") return chalk.bgGray.yellowBright(" EmptyString "); if (obj === true) return chalk.bgGray.greenBright(" True "); if (obj === false) return chalk.bgGray.redBright(" False "); return obj; }; let source = chalk.reset.white(errorTrace(1, 1, ["$Global.echo", "consoleEcho."])); if (hasString(message) && hasArray(optionalParams)) { for (let i = 0; i < optionalParams.length; i++) { if (!hasObject(optionalParams[i])) continue; if (message.includes("{") && message.includes("}")) break; message = template(message, optionalParams[i]); } } if (message) { message = stringify(bgColor.bold, message) + "\n" + chalk.reset.white(source); } else { message = chalk.reset(color(source)); } icon && (message = icon + " " + message); const len = optionalParams.length; const showIndex = mode === "debug" && len > 1; console.group(message); optionalParams.forEach((par, index) => { if (index === 0 && isFn(par)) { par(); } else { if (showIndex) { console.log(`${index + 1}.`, par); } else { console.log(emptyString(par)); } } }); mode === "error" && console.error("..."); mode === "warn" && console.warn("..."); console.groupEnd(); } /** 信息输出 */ echo(color, message, ...optionalParams) { this._echo("", chalk.reset, color, "default", message, void 0, ...optionalParams); } /** 普通打印输出 */ log(message, ...optionalParams) { DEBUG && console.log(message, ...optionalParams); } /** 表格显示 */ table(tabularData, properties) { console.table(tabularData, properties); } /** 信息输出,蓝色 */ information(message, ...optionalParams) { this._echo( message === "INFO" ? "\u2139" : "", chalk.bgBlue.whiteBright, chalk.blueBright, "default", message, ...optionalParams ); } /** 信息输出,蓝色 */ info(...optionalParams) { this.information("INFO", ...optionalParams); } /** 错误输出,红色 */ error(message, ...optionalParams) { this._echo( message === "ERROR" ? "\u26D4" : "", chalk.bgRedBright.yellowBright, chalk.redBright, message === "ERROR" ? "error" : "default", message, ...optionalParams ); } /** 错误输出,红色 */ err(...optionalParams) { this.error("ERROR", ...optionalParams); } /** 警告输出,橙色 */ warning(message, ...optionalParams) { this._echo( message === "WARN" ? "\u26A0" : "", chalk.bgYellowBright.redBright, chalk.yellowBright, message === "WARN" ? "warn" : "default", message, ...optionalParams ); } /** 警告输出,橙色 */ warn(...optionalParams) { this.warning("WARN", ...optionalParams); } /** 成功输出,绿色 */ success(message, ...optionalParams) { this._echo( message === "SUCC" ? "\u2705" : "", chalk.bgGreen.whiteBright, chalk.green, "default", message, ...optionalParams ); } /** 成功输出,绿色 */ succ(...optionalParams) { this.success("SUCC", ...optionalParams); } /** 调试信息 */ debug(...optionalParams) { var _a, _b; if (!hasArray(optionalParams)) return; const enabled = optionalParams[optionalParams.length - 1]; if (enabled === "~") return; let title = ""; let id = chalk.bgGray.yellowBright(` ${globalId()} `); if (isString(optionalParams[0]) && optionalParams[0]) { title = optionalParams[0]; optionalParams = optionalParams.splice(1); } if (!SERVERMODE) { let source = chalk.reset.white(errorTrace(1, 1, ["$Global.echo", "consoleEcho."])); const infos = source == null ? void 0 : source.split(" ("); if (hasArray(infos)) { !title && infos[0] && (title = infos[0].indexOf("[37m") > -1 ? ((_a = infos[0]) == null ? void 0 : _a.split("[37m")[1]) || "" : infos[0]); infos[1] && (id += chalk.bgBlack.whiteBright( " " + ((_b = parseFilename(infos[1], { strict: true })) == null ? void 0 : _b.split(":")[0]) )); } } title && (title = chalk.bgMagenta.whiteBright(` ${title}`)); this._echo(id, chalk.reset, chalk.white, "debug", title, ...optionalParams); } }; var createConsoleEcho = () => { if (!$Global.con) { $Global.con = new ConsoleEcho(); $Global.echo = (...optionalParams) => $Global.con.debug(...optionalParams); } return $Global.con; }; export { ConsoleEcho, createConsoleEcho };