From 72d13e7ee283b4234678a8d462dc7b4cff3ea350 Mon Sep 17 00:00:00 2001 From: Philip Heinser Date: Tue, 30 Sep 2025 12:58:13 +0100 Subject: [PATCH 1/3] fix: Optimize validateStruct for production usage Skip superstruct create in production to improve performance. --- packages/analytics/lib/struct.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/analytics/lib/struct.js b/packages/analytics/lib/struct.js index 0d820e0705..be93e2fd45 100644 --- a/packages/analytics/lib/struct.js +++ b/packages/analytics/lib/struct.js @@ -18,6 +18,11 @@ import { isUndefined } from '@react-native-firebase/app/lib/common/validate'; import { create } from 'superstruct'; export const validateStruct = (value = {}, struct, prefix = '') => { + //skip superstruct create in prod. has high impact on perf if a called a lot. + if(!__DEV__) { + return value; + } + try { return create(value, struct); } catch (e) { From 4ad19cf0547f1a23037f56b56a6321a6b6930aa3 Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Fri, 28 Nov 2025 21:38:32 -0500 Subject: [PATCH 2/3] Update packages/analytics/lib/struct.js --- packages/analytics/lib/struct.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/analytics/lib/struct.js b/packages/analytics/lib/struct.js index be93e2fd45..8929fdef46 100644 --- a/packages/analytics/lib/struct.js +++ b/packages/analytics/lib/struct.js @@ -18,8 +18,8 @@ import { isUndefined } from '@react-native-firebase/app/lib/common/validate'; import { create } from 'superstruct'; export const validateStruct = (value = {}, struct, prefix = '') => { - //skip superstruct create in prod. has high impact on perf if a called a lot. - if(!__DEV__) { + // skip superstruct create in release for performance reasons + if (!__DEV__) { return value; } From 3f2dfe69799eea1cab115c6f25e4a6b36ff762cf Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Fri, 28 Nov 2025 21:51:00 -0500 Subject: [PATCH 3/3] Apply suggestion from @mikehardy --- packages/analytics/lib/struct.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/analytics/lib/struct.js b/packages/analytics/lib/struct.js index 8929fdef46..05b638f741 100644 --- a/packages/analytics/lib/struct.js +++ b/packages/analytics/lib/struct.js @@ -22,7 +22,6 @@ export const validateStruct = (value = {}, struct, prefix = '') => { if (!__DEV__) { return value; } - try { return create(value, struct); } catch (e) {