From 5cf942a9c6ee9909c20666fec34e675012c7b3b9 Mon Sep 17 00:00:00 2001 From: Rajul Vadera Date: Fri, 24 Oct 2025 14:45:17 -0400 Subject: [PATCH 1/3] update JSON function --- packages/core/src/mapping-kit/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/core/src/mapping-kit/index.ts b/packages/core/src/mapping-kit/index.ts index 1ecea5de2e5..42cad15028c 100644 --- a/packages/core/src/mapping-kit/index.ts +++ b/packages/core/src/mapping-kit/index.ts @@ -270,8 +270,14 @@ registerDirective('@json', (opts, payload) => { return JSON.stringify(value) } else if (opts.mode === 'decode') { if (typeof value === 'string') { - return JSON.parse(value) + //Placing this in a try-catch to safely handle any primiative values that are put in the JSON.parse + try { + return JSON.parse(value) + } catch (e) { + return value + } } + return value } }) From 0e945a302517fd7ae989b36e23a3f296124ccb4e Mon Sep 17 00:00:00 2001 From: Rajul Vadera Date: Fri, 24 Oct 2025 16:45:25 -0400 Subject: [PATCH 2/3] update unit tests --- packages/core/src/mapping-kit/__tests__/index.iso.test.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/core/src/mapping-kit/__tests__/index.iso.test.ts b/packages/core/src/mapping-kit/__tests__/index.iso.test.ts index 1168ade0f5c..ed64dda685d 100644 --- a/packages/core/src/mapping-kit/__tests__/index.iso.test.ts +++ b/packages/core/src/mapping-kit/__tests__/index.iso.test.ts @@ -516,6 +516,14 @@ describe('@json', () => { expect(output).toStrictEqual({ neat: ['bar', 'baz'] }) }) + test('decode_invalid_json_returns_original_string', () => { + const output = transform( + { neat: { '@json': { mode: 'decode', value: { '@path': '$.foo' } } } }, + { foo: 'Hello World' } + ) + expect(output).toStrictEqual({ neat: 'Hello World' }) + }) + test('invalid mode', () => { expect(() => { transform({ neat: { '@json': { mode: 'oops', value: { '@path': '$.foo' } } } }, { foo: 'bar' }) From 779da289d178a09fdd1bee630354169c1c11c6f2 Mon Sep 17 00:00:00 2001 From: rvadera12 <89420099+rvadera12@users.noreply.github.com> Date: Fri, 24 Oct 2025 17:58:48 -0400 Subject: [PATCH 3/3] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: MarĂ­n Alcaraz --- packages/core/src/mapping-kit/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/mapping-kit/index.ts b/packages/core/src/mapping-kit/index.ts index 42cad15028c..c24635f2dc6 100644 --- a/packages/core/src/mapping-kit/index.ts +++ b/packages/core/src/mapping-kit/index.ts @@ -270,7 +270,7 @@ registerDirective('@json', (opts, payload) => { return JSON.stringify(value) } else if (opts.mode === 'decode') { if (typeof value === 'string') { - //Placing this in a try-catch to safely handle any primiative values that are put in the JSON.parse + //Placing this in a try-catch to safely handle any primitive values that are put in the JSON.parse try { return JSON.parse(value) } catch (e) {