From 419163d48cb515b4bf56ccc917e80fac3b11b3c7 Mon Sep 17 00:00:00 2001 From: Matt Benson Date: Wed, 30 Apr 2025 14:35:38 -0500 Subject: [PATCH] use callback to define entityQueryFilterExpression schema; deprecated exported const entityQueryFilterExpressionSchema Signed-off-by: Matt Benson --- .../components/fields/EntityPicker/schema.ts | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/plugins/scaffolder/src/components/fields/EntityPicker/schema.ts b/plugins/scaffolder/src/components/fields/EntityPicker/schema.ts index 38cb6b8929..26e11d651f 100644 --- a/plugins/scaffolder/src/components/fields/EntityPicker/schema.ts +++ b/plugins/scaffolder/src/components/fields/EntityPicker/schema.ts @@ -16,15 +16,20 @@ import { z as zod } from 'zod'; import { makeFieldSchema } from '@backstage/plugin-scaffolder-react'; +const createEntityQueryFilterExpressionSchema = (z: typeof zod) => + z.record( + z + .string() + .or(z.object({ exists: z.boolean().optional() })) + .or(z.array(z.string())), + ); + /** * @public + * @deprecated */ -export const entityQueryFilterExpressionSchema = zod.record( - zod - .string() - .or(zod.object({ exists: zod.boolean().optional() })) - .or(zod.array(zod.string())), -); +export const entityQueryFilterExpressionSchema = + createEntityQueryFilterExpressionSchema(zod); /** * @public @@ -58,9 +63,9 @@ export const EntityPickerFieldSchema = makeFieldSchema({ .describe( 'The default namespace. Options with this namespace will not be prefixed.', ), - catalogFilter: z - .array(entityQueryFilterExpressionSchema) - .or(entityQueryFilterExpressionSchema) + catalogFilter: (t => t.or(t.array()))( + createEntityQueryFilterExpressionSchema(z), + ) .optional() .describe('List of key-value filter expression for entities'), }), @@ -81,7 +86,7 @@ export type EntityPickerProps = typeof EntityPickerFieldSchema.TProps; export const EntityPickerSchema = EntityPickerFieldSchema.schema; export type EntityPickerFilterQuery = zod.TypeOf< - typeof entityQueryFilterExpressionSchema + ReturnType >; export type EntityPickerFilterQueryValue =