From 7429a1c60e763e222d57af733c88c42f55adc687 Mon Sep 17 00:00:00 2001 From: daniel Date: Mon, 20 May 2024 12:48:28 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E2=9A=A1=EF=B8=8F=20=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E6=9C=89=E4=BB=B7=E5=80=BC=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E5=88=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/service/core.js | 2 +- src/service/msgSender.js | 6 +++--- src/utils/index.js | 35 ++++++++++++++++++++++++++--------- typings/global.d.ts | 7 +++++-- 4 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/service/core.js b/src/service/core.js index 1ae2d16..6163936 100644 --- a/src/service/core.js +++ b/src/service/core.js @@ -93,7 +93,7 @@ module.exports.formatAndSendMsg = async function ({ } success = true } catch (/** @type {any} */ e) { - error = e + error = Utils.filterUseFulHttpError(e) Utils.logger.error(e) } diff --git a/src/service/msgSender.js b/src/service/msgSender.js index 3f0445d..a128164 100644 --- a/src/service/msgSender.js +++ b/src/service/msgSender.js @@ -396,7 +396,7 @@ const handleMsg2Single = async function (body, { bot, messageReceiver }) { }) msgArr[i].success = success if (!success) { - msgArr[i].error = error.toString() + msgArr[i].error = error } } @@ -419,7 +419,7 @@ const handleMsg2Single = async function (body, { bot, messageReceiver }) { : null } } else if (!Array.isArray(payload.data)) { - const { success } = await formatAndSendMsg({ + const { success, error } = await formatAndSendMsg({ isRoom, bot, msgData: payload.data, @@ -435,7 +435,7 @@ const handleMsg2Single = async function (body, { bot, messageReceiver }) { : { to, ...(isRoom !== undefined ? { isRoom } : {}), - data: [payload.data] + data: [{ ...payload.data, error }] } } } diff --git a/src/utils/index.js b/src/utils/index.js index 933f8d2..24f9775 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -238,15 +238,31 @@ const sleep = async (ms) => { } /** - * 删除登录缓存文件 + * 过滤有价值的发送消息报错信息 + * @param {*} error */ -// const deleteMemoryCard = () => { -// //@ts-expect-errors 必定是 pathlike -// if (fs.existsSync(memoryCardPath)) { -// //@ts-expect-errors 必定是 pathlike -// fs.unlinkSync(memoryCardPath) -// } -// } +const filterUseFulHttpError = (error) => { + let newErrorObj = {} + + if (error.tips) { + newErrorObj.tips = error.tips + newErrorObj.code = error.code + newErrorObj.stack = error.stack + + if (error.response) { + newErrorObj.response = {} + newErrorObj.response.status = error.response.status + newErrorObj.response.statusText = error.response.statusText + newErrorObj.response.url = error.response.url + newErrorObj.response.method = error.response.method + newErrorObj.response.method = error.response.method + newErrorObj.response.data = error.response.data + } + return newErrorObj + } else { + return error + } +} module.exports = { ...require('./msg.js'), @@ -262,5 +278,6 @@ module.exports = { parseJsonLikeStr, tryConvertCnCharToUtf8Char, sleep, - Defer + Defer, + filterUseFulHttpError } diff --git a/typings/global.d.ts b/typings/global.d.ts index 457a4c1..d99b9c4 100644 --- a/typings/global.d.ts +++ b/typings/global.d.ts @@ -39,7 +39,7 @@ type pushMsgUnitTypeOpt = { type msgData = { success?: boolean - error?: string + error?: never } & pushMsgUnitTypeOpt type toType = string | { alias: string } @@ -104,7 +104,10 @@ type msg2SingleRejectReason = { type failedTaskType = { to: toType isRoom?: boolean - data: pushMsgUnitTypeOpt | pushMsgUnitTypeOpt[] | [] + data: + | (pushMsgUnitTypeOpt & { error?: never }) + | (pushMsgUnitTypeOpt & { error?: never })[] + | [] } type sendingTaskType = {