@fast-china/utils
Version:
Fast 工具库.
1 lines • 3.81 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../src/console/index.ts"],"sourcesContent":["import { reactive } from \"vue\";\nimport { isNil, isString } from \"lodash-unified\";\nimport { FastError } from \"../error\";\n\nconst state = reactive({\n\t/** @description Uni-App 在 APP-PLUS 下是否拆分输出 @default false */\n\tuniAppPlusSplit: false,\n});\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useConsole = () => {\n\treturn {\n\t\t/**\n\t\t * 设置 Uni-App 在 APP-PLUS 下是否拆分输出\n\t\t */\n\t\tsetUniAppPlusSplit(value: boolean): void {\n\t\t\tstate.uniAppPlusSplit = value;\n\t\t},\n\t};\n};\n\ntype LogLevel = \"Log\" | \"Warn\" | \"Debug\" | \"Error\";\n\nconst vConsole = (level: LogLevel, ...args: any[]): void => {\n\tif (state.uniAppPlusSplit) {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tif (typeof plus !== \"undefined\") {\n\t\t\t\t// 循环 arg 参数,每个参数单独输出\n\t\t\t\targs.forEach((item) => {\n\t\t\t\t\tif (isNil(item)) return;\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole[level.toLowerCase()](isString(item) ? item : JSON.stringify(item, null, 2));\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\t// eslint-disable-next-line no-console\n\tconsole[level.toLowerCase()](...args);\n};\n\nconst makeConsole = (level: LogLevel) => {\n\treturn (name: string, message?: string | false, error?: any): void => {\n\t\tconst prefix = `[Fast-${level}-${name}]`;\n\t\tif (error) {\n\t\t\tvConsole(level, `${prefix}${message ? ` ${message}` : \"\"}`, error);\n\t\t} else {\n\t\t\tvConsole(level, `${prefix}${message ? ` ${message}` : \"\"}`);\n\t\t}\n\t};\n};\n\n/**\n * 打印 Log 日志\n * @param name 来源名称\n */\nexport const consoleLog = makeConsole(\"Log\");\n\n/**\n * 打印 Warn 日志\n * @param name 来源名称\n */\nexport const consoleWarn = makeConsole(\"Warn\");\n\n/**\n * 打印 Debug 日志\n * @param name 来源名称\n */\nexport const consoleDebug = makeConsole(\"Debug\");\n\n/**\n * 打印 Error 日志\n * @param name 来源名称\n */\nexport const consoleError = (name: string, message?: any): void => {\n\tif (isNil(message)) {\n\t\treturn;\n\t}\n\tif (isString(message)) {\n\t\tconsole.error(new FastError(`[Fast-${name}] ${message}`));\n\t} else {\n\t\tvConsole(\"Error\", `[Fast-Error-${name}]`, message);\n\t}\n};\n\n/**\n * 抛出错误\n * @param name 来源名称\n */\nexport const throwError = (name: string, message?: any): never => {\n\tthrow new FastError(`[Fast-${name}] ${message}`);\n};\n"],"names":[],"mappings":";;;AAIA,MAAM,QAAQ,SAAS;AAAA;AAAA,EAEtB,iBAAiB;AAClB,CAAC;AAGM,MAAM,aAAa,MAAM;AACxB,SAAA;AAAA;AAAA;AAAA;AAAA,IAIN,mBAAmB,OAAsB;AACxC,YAAM,kBAAkB;AAAA,IAAA;AAAA,EAE1B;AACD;AAIA,MAAM,WAAW,CAAC,UAAoB,SAAsB;AAC3D,MAAI,MAAM,iBAAiB;AACtB,QAAA,OAAO,QAAQ,aAAa;AAC3B,UAAA,OAAO,SAAS,aAAa;AAE3B,aAAA,QAAQ,CAAC,SAAS;AAClB,cAAA,MAAM,IAAI,EAAG;AAEjB,kBAAQ,MAAM,aAAa,EAAE,SAAS,IAAI,IAAI,OAAO,KAAK,UAAU,MAAM,MAAM,CAAC,CAAC;AAAA,QAAA,CAClF;AACD;AAAA,MAAA;AAAA,IACD;AAAA,EACD;AAGD,UAAQ,MAAM,aAAa,EAAE,GAAG,IAAI;AACrC;AAEA,MAAM,cAAc,CAAC,UAAoB;AACjC,SAAA,CAAC,MAAc,SAA0B,UAAsB;AACrE,UAAM,SAAS,SAAS,KAAK,IAAI,IAAI;AACrC,QAAI,OAAO;AACD,eAAA,OAAO,GAAG,MAAM,GAAG,UAAU,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK;AAAA,IAAA,OAC3D;AACG,eAAA,OAAO,GAAG,MAAM,GAAG,UAAU,IAAI,OAAO,KAAK,EAAE,EAAE;AAAA,IAAA;AAAA,EAE5D;AACD;AAMa,MAAA,aAAa,YAAY,KAAK;AAM9B,MAAA,cAAc,YAAY,MAAM;AAMhC,MAAA,eAAe,YAAY,OAAO;AAMlC,MAAA,eAAe,CAAC,MAAc,YAAwB;AAC9D,MAAA,MAAM,OAAO,GAAG;AACnB;AAAA,EAAA;AAEG,MAAA,SAAS,OAAO,GAAG;AACd,YAAA,MAAM,IAAI,UAAU,SAAS,IAAI,KAAK,OAAO,EAAE,CAAC;AAAA,EAAA,OAClD;AACN,aAAS,SAAS,eAAe,IAAI,KAAK,OAAO;AAAA,EAAA;AAEnD;AAMa,MAAA,aAAa,CAAC,MAAc,YAAyB;AACjE,QAAM,IAAI,UAAU,SAAS,IAAI,KAAK,OAAO,EAAE;AAChD;"}