From 6acedb64c85eab7e418723beabca9af7a02d37d9 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 10 Aug 2023 14:18:29 +0800 Subject: [PATCH] fix maximum call stack size error --- packages/api/src/utils/logger.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/api/src/utils/logger.ts b/packages/api/src/utils/logger.ts index 5cbc6e1cf..fdfa12832 100644 --- a/packages/api/src/utils/logger.ts +++ b/packages/api/src/utils/logger.ts @@ -97,18 +97,23 @@ function localConfig(id: string): ConsoleTransportOptions { const truncateObjectDeep = (object: any, length: number): any => { const copyObj = cloneDeep(object) as never - const truncateDeep = (obj: any): any => { + const truncateDeep = (obj: any, level: number): any => { + // reach maximum call stack size + if (level >= 6) { + return obj + } + if (isString(obj) && obj.length > length) { return `${truncate(obj, { length })} [truncated]` } if (isArray(obj)) { - return obj.map((i) => truncateDeep(i) as never) + return obj.map((i) => truncateDeep(i, level + 1) as never) } if (isObject(obj)) { Object.entries(obj).forEach(([key, value]) => { - obj[key as keyof typeof obj] = truncateDeep(value) as never + obj[key as keyof typeof obj] = truncateDeep(value, level + 1) as never }) return obj @@ -118,7 +123,7 @@ const truncateObjectDeep = (object: any, length: number): any => { return obj } - return truncateDeep(copyObj) + return truncateDeep(copyObj, 1) } class GcpLoggingTransport extends LoggingWinston {