From 4131bd27248922c64e084ae05e9ba0ff13235f9d Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Sat, 27 Jan 2024 22:59:17 +0100 Subject: [PATCH] Fix for issue 20256: Bug Report: converting circular structure to JSON error Signed-off-by: bnechyporenko --- plugins/scaffolder-react/package.json | 1 + plugins/scaffolder-react/src/next/lib/schema.ts | 3 ++- yarn.lock | 9 +++++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index bb038cd2ee..0f6da12d6c 100644 --- a/plugins/scaffolder-react/package.json +++ b/plugins/scaffolder-react/package.json @@ -66,6 +66,7 @@ "@types/json-schema": "^7.0.9", "@types/react": "^16.13.1 || ^17.0.0", "classnames": "^2.2.6", + "flatted": "3.2.9", "humanize-duration": "^3.25.1", "immer": "^9.0.1", "json-schema": "^0.4.0", diff --git a/plugins/scaffolder-react/src/next/lib/schema.ts b/plugins/scaffolder-react/src/next/lib/schema.ts index c606d715e7..b7c1364f41 100644 --- a/plugins/scaffolder-react/src/next/lib/schema.ts +++ b/plugins/scaffolder-react/src/next/lib/schema.ts @@ -14,6 +14,7 @@ * limitations under the License. */ import { JsonObject } from '@backstage/types'; +import { stringify, parse } from 'flatted'; import { FieldValidation, UiSchema } from '@rjsf/utils'; function isObject(value: unknown): value is JsonObject { @@ -123,7 +124,7 @@ export const extractSchemaFromStep = ( inputStep: JsonObject, ): { uiSchema: UiSchema; schema: JsonObject } => { const uiSchema: UiSchema = {}; - const returnSchema: JsonObject = JSON.parse(JSON.stringify(inputStep)); + const returnSchema: JsonObject = parse(stringify(inputStep)); extractUiSchema(returnSchema, uiSchema); return { uiSchema, schema: returnSchema }; }; diff --git a/yarn.lock b/yarn.lock index 1c83813e10..d9ffd84fca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8420,6 +8420,7 @@ __metadata: "@types/luxon": ^3.0.0 "@types/react": ^16.13.1 || ^17.0.0 classnames: ^2.2.6 + flatted: 3.2.9 humanize-duration: ^3.25.1 immer: ^9.0.1 json-schema: ^0.4.0 @@ -27530,10 +27531,10 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.1.1 - resolution: "flatted@npm:3.1.1" - checksum: 508935e3366d95444131f0aaa801a4301f24ea5bcb900d12764e7335b46b910730cc1b5bcfcfb8eccb7c8db261ba0671c6a7ca30d10870ff7a7756dc7e731a7a +"flatted@npm:3.2.9, flatted@npm:^3.1.0": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 languageName: node linkType: hard