From 5358e9c4f8b63f5f81852d2dbe754eeb99c12618 Mon Sep 17 00:00:00 2001 From: willclarktech Date: Tue, 5 Jan 2021 13:05:43 +0000 Subject: [PATCH] launchpad: Improve sortedObject performance for large objects --- packages/launchpad/src/encoding.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/launchpad/src/encoding.ts b/packages/launchpad/src/encoding.ts index 27d058b7..6ce92d42 100644 --- a/packages/launchpad/src/encoding.ts +++ b/packages/launchpad/src/encoding.ts @@ -13,13 +13,11 @@ function sortedObject(obj: any): any { return obj.map(sortedObject); } const sortedKeys = Object.keys(obj).sort(); - const result = sortedKeys.reduce( - (accumulator, key) => ({ - ...accumulator, - [key]: sortedObject(obj[key]), - }), - {}, - ); + const result: Record = {}; + // NOTE: Use forEach instead of reduce for performance with large objects eg Wasm code + sortedKeys.forEach((key) => { + result[key] = sortedObject(obj[key]); + }); return result; }