UNPKG

@fast-china/utils

Version:

Fast 工具库.

1 lines 3.67 kB
{"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":["state","reactive","uniAppPlusSplit","useConsole","setUniAppPlusSplit","value","vConsole","level","args","uni","plus","forEach","item","isNil","console","toLowerCase","isString","JSON","stringify","makeConsole","name","message","error","prefix","consoleLog","consoleWarn","consoleDebug","consoleError","FastError","throwError"],"mappings":"mIAIA,MAAMA,EAAQC,EAAS,CAEtBC,iBAAiB,IAILC,EAAa,KAClB,CAIN,kBAAAC,CAAmBC,GAClBL,EAAME,gBAAkBG,CACzB,IAMIC,EAAW,CAACC,KAAoBC,KACjCR,EAAME,iBACU,oBAARO,KACU,oBAATC,KAEVF,EAAKG,QAASC,IACTC,EAAMD,IAEVE,QAAQP,EAAMQ,eAAeC,EAASJ,GAAQA,EAAOK,KAAKC,UAAUN,EAAM,KAAM,MAOpFE,QAAQP,EAAMQ,kBAAkBP,IAG3BW,EAAeZ,GACb,CAACa,EAAcC,EAA0BC,KAC/C,MAAMC,EAAS,SAAShB,KAASa,KAC7BE,EACHhB,EAASC,EAAO,GAAGgB,IAASF,EAAU,IAAIA,IAAY,KAAMC,GAE5DhB,EAASC,EAAO,GAAGgB,IAASF,EAAU,IAAIA,IAAY,OAS5CG,EAAaL,EAAY,OAMzBM,EAAcN,EAAY,QAM1BO,EAAeP,EAAY,SAM3BQ,EAAe,CAACP,EAAcC,KACtCR,EAAMQ,KAGNL,EAASK,GACZP,QAAQQ,MAAM,IAAIM,EAAU,SAASR,MAASC,MAE9Cf,EAAS,QAAS,eAAec,KAASC,KAQ/BQ,EAAa,CAACT,EAAcC,KACxC,MAAM,IAAIO,EAAU,SAASR,MAASC"}