From 61d091e7051a0a2ab8ab2292214be55ba3a8b41e Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 23 Feb 2022 08:31:47 +0100 Subject: [PATCH] chore: reworking these types a little bit now so that we can expose the uiSchema props in the api-report Signed-off-by: blam --- plugins/scaffolder/src/extensions/index.tsx | 9 ++++++--- plugins/scaffolder/src/extensions/types.ts | 17 ++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/plugins/scaffolder/src/extensions/index.tsx b/plugins/scaffolder/src/extensions/index.tsx index 1b3b845b4d..ad8177ef65 100644 --- a/plugins/scaffolder/src/extensions/index.tsx +++ b/plugins/scaffolder/src/extensions/index.tsx @@ -25,9 +25,12 @@ import { Extension, attachComponentData } from '@backstage/core-plugin-api'; export const FIELD_EXTENSION_WRAPPER_KEY = 'scaffolder.extensions.wrapper.v1'; export const FIELD_EXTENSION_KEY = 'scaffolder.extensions.field.v1'; -export function createScaffolderFieldExtension( - options: FieldExtensionOptions, -): Extension<() => null> { +export function createScaffolderFieldExtension< + TReturnValue = unknown, + TInputProps = unknown, +>( + options: FieldExtensionOptions, +): Extension { return { expose() { const FieldExtensionDataHolder: any = () => null; diff --git a/plugins/scaffolder/src/extensions/types.ts b/plugins/scaffolder/src/extensions/types.ts index 26fdbb1b23..1a48525b18 100644 --- a/plugins/scaffolder/src/extensions/types.ts +++ b/plugins/scaffolder/src/extensions/types.ts @@ -33,9 +33,12 @@ export type CustomFieldValidator = ( * * @public */ -export type FieldExtensionOptions = { +export type FieldExtensionOptions< + TReturnValue = unknown, + TProps = FieldProps, +> = { name: string; - component: (props: FieldProps) => JSX.Element | null; + component: (props: TProps) => JSX.Element | null; validation?: CustomFieldValidator; }; @@ -46,10 +49,10 @@ export type FieldExtensionOptions = { * @public */ export interface FieldExtensionComponentProps< - ReturnValue, - UiOptions extends {} = {}, -> extends FieldProps { - uiSchema: { - 'ui:options'?: UiOptions; + TReturnValue, + TUiOptions extends {} = {}, +> extends FieldProps { + uiSchema: FieldProps['uiSchema'] & { + 'ui:options'?: TUiOptions; }; }