From 732b15a1faeab5b802dfddb282418601f34ade27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Mon, 9 Oct 2023 16:58:16 +0200 Subject: [PATCH] fix(Google Sheets Node): Fix "Maximum call stack size exceeded" error on too many rows (#7384) Fixes: 1. https://community.n8n.io/t/google-sheets-error-maximum-call-stack-size-exceeded/31006 2. https://community.n8n.io/t/error-maximum-call-stack-size-exceeded-in-google-sheet-read-rows/20307 --- .../nodes/Google/Sheet/GoogleSheets.node.ts | 2 +- .../nodes/Google/Sheet/v2/actions/router.ts | 20 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/nodes-base/nodes/Google/Sheet/GoogleSheets.node.ts b/packages/nodes-base/nodes/Google/Sheet/GoogleSheets.node.ts index b913e3d6ee..6a7fe72c9f 100644 --- a/packages/nodes-base/nodes/Google/Sheet/GoogleSheets.node.ts +++ b/packages/nodes-base/nodes/Google/Sheet/GoogleSheets.node.ts @@ -7,7 +7,7 @@ import { GoogleSheetsV2 } from './v2/GoogleSheetsV2.node'; export class GoogleSheets extends VersionedNodeType { constructor() { const baseDescription: INodeTypeBaseDescription = { - displayName: 'Google Sheets ', + displayName: 'Google Sheets', name: 'googleSheets', icon: 'file:googleSheets.svg', group: ['input', 'output'], diff --git a/packages/nodes-base/nodes/Google/Sheet/v2/actions/router.ts b/packages/nodes-base/nodes/Google/Sheet/v2/actions/router.ts index ab5929c31b..70432adf01 100644 --- a/packages/nodes-base/nodes/Google/Sheet/v2/actions/router.ts +++ b/packages/nodes-base/nodes/Google/Sheet/v2/actions/router.ts @@ -6,7 +6,7 @@ import { getSpreadsheetId } from '../helpers/GoogleSheets.utils'; import type { GoogleSheets, ResourceLocator } from '../helpers/GoogleSheets.types'; export async function router(this: IExecuteFunctions): Promise { - const operationResult: INodeExecutionData[] = []; + let operationResult: INodeExecutionData[] = []; try { const resource = this.getNodeParameter('resource', 0); @@ -17,6 +17,7 @@ export async function router(this: IExecuteFunctions): Promise