From f8922a42d9c6a904cca7fe3c8de0406de3d12eba Mon Sep 17 00:00:00 2001 From: Lucas Koehler Date: Thu, 22 Jan 2026 18:03:31 +0100 Subject: [PATCH 1/2] Remove usage of lodash/isArray for improved type guarding --- packages/core/src/testers/testers.ts | 3 +-- packages/core/src/util/util.ts | 3 +-- packages/vue-vuetify/src/controls/StringControlRenderer.vue | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/core/src/testers/testers.ts b/packages/core/src/testers/testers.ts index afd96335ac..ac2f449b6b 100644 --- a/packages/core/src/testers/testers.ts +++ b/packages/core/src/testers/testers.ts @@ -27,7 +27,6 @@ import isEmpty from 'lodash/isEmpty'; import get from 'lodash/get'; import endsWith from 'lodash/endsWith'; import last from 'lodash/last'; -import isArray from 'lodash/isArray'; import reduce from 'lodash/reduce'; import toPairs from 'lodash/toPairs'; import includes from 'lodash/includes'; @@ -483,7 +482,7 @@ const traverse = ( pred: (obj: JsonSchema) => boolean, rootSchema: JsonSchema ): boolean => { - if (isArray(any)) { + if (Array.isArray(any)) { return reduce( any, (acc, el) => acc || traverse(el, pred, rootSchema), diff --git a/packages/core/src/util/util.ts b/packages/core/src/util/util.ts index 959651e433..ed4eae93d9 100644 --- a/packages/core/src/util/util.ts +++ b/packages/core/src/util/util.ts @@ -24,7 +24,6 @@ */ import isEmpty from 'lodash/isEmpty'; -import isArray from 'lodash/isArray'; import includes from 'lodash/includes'; import find from 'lodash/find'; import { resolveData, resolveSchema } from './resolvers'; @@ -100,7 +99,7 @@ export const deriveTypes = (jsonSchema: JsonSchema): string[] => { if (!isEmpty(jsonSchema.type) && typeof jsonSchema.type === 'string') { return [jsonSchema.type]; } - if (isArray(jsonSchema.type)) { + if (Array.isArray(jsonSchema.type)) { return jsonSchema.type; } if ( diff --git a/packages/vue-vuetify/src/controls/StringControlRenderer.vue b/packages/vue-vuetify/src/controls/StringControlRenderer.vue index 3e7263d6e0..334d4ad9b4 100644 --- a/packages/vue-vuetify/src/controls/StringControlRenderer.vue +++ b/packages/vue-vuetify/src/controls/StringControlRenderer.vue @@ -88,7 +88,6 @@ import { type RendererProps, } from '@jsonforms/vue'; import every from 'lodash/every'; -import isArray from 'lodash/isArray'; import isString from 'lodash/isString'; import { defineComponent } from 'vue'; import { VCombobox, VTextField } from 'vuetify/components'; @@ -123,7 +122,7 @@ const controlRenderer = defineComponent({ if ( suggestions === undefined || - !isArray(suggestions) || + !Array.isArray(suggestions) || !every(suggestions, isString) ) { // check for incorrect data From 16abcf702b17a7e25f4f20869899b6642f4a0ee3 Mon Sep 17 00:00:00 2001 From: Lucas Koehler Date: Thu, 22 Jan 2026 18:04:03 +0100 Subject: [PATCH 2/2] react: Remove usage of removed React.StatelessComponent --- packages/react/src/Renderer.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react/src/Renderer.tsx b/packages/react/src/Renderer.tsx index b07cdca198..1ba4c59822 100644 --- a/packages/react/src/Renderer.tsx +++ b/packages/react/src/Renderer.tsx @@ -46,9 +46,10 @@ export class RendererComponent< * Stateless Renderer. * * @template P type of any renderer props + * @deprecated Use React.FunctionComponent instead */ export type StatelessRenderer

= - React.StatelessComponent

; + React.FunctionComponent

; /** * Represents a Renderer, which might either be a component or a function. @@ -57,4 +58,4 @@ export type Renderer = // TODO fix @typescript-eslint/ban-types // eslint-disable-next-line @typescript-eslint/ban-types | RendererComponent - | StatelessRenderer; + | React.FunctionComponent;