chore: fix up the api-reports

Signed-off-by: blam <ben@blam.sh>
This commit is contained in:
blam
2024-12-10 12:29:42 +01:00
parent 184161fe57
commit 3562d2b111
5 changed files with 80 additions and 39 deletions
@@ -5,13 +5,17 @@
```ts
/// <reference types="react" />
import { AnyApiFactory } from '@backstage/frontend-plugin-api';
import { AnyApiRef } from '@backstage/core-plugin-api';
import { ApiHolder } from '@backstage/core-plugin-api';
import { ApiRef } from '@backstage/frontend-plugin-api';
import { ComponentType } from 'react';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { CustomFieldValidator } from '@backstage/plugin-scaffolder-react';
import { Dispatch } from 'react';
import { ExtensionBlueprint } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ExtensionInput } from '@backstage/frontend-plugin-api';
import { FieldExtensionComponentProps } from '@backstage/plugin-scaffolder-react';
import { FieldExtensionOptions } from '@backstage/plugin-scaffolder-react';
import { FieldSchema } from '@backstage/plugin-scaffolder-react';
@@ -171,6 +175,34 @@ export type FormFieldExtensionData<
schema?: FieldSchema<z.output<TReturnValue>, z.output<TUiOptions>>;
};
// @alpha (undocumented)
export const formFieldsApi: ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
formFields: ExtensionInput<
ConfigurableExtensionDataRef<
() => Promise<FormField>,
'scaffolder.form-field-loader',
{}
>,
{
singleton: false;
optional: false;
}
>;
};
kind: 'api';
name: 'form-fields';
params: {
factory: AnyApiFactory;
};
}>;
// @alpha (undocumented)
export const formFieldsApiRef: ApiRef<ScaffolderFormFieldsApi>;
// @alpha (undocumented)
export type FormValidation = {
[name: string]: FieldValidation | FormValidation;
@@ -245,6 +277,12 @@ export type ScaffolderFormDecoratorContext<
) => void;
};
// @alpha (undocumented)
export interface ScaffolderFormFieldsApi {
// (undocumented)
getFormFields(): Promise<FormFieldExtensionData[]>;
}
// @alpha (undocumented)
export function ScaffolderPageContextMenu(
props: ScaffolderPageContextMenuProps,
+1 -1
View File
@@ -550,7 +550,7 @@ export const useCustomFieldExtensions: <
TComponentDataType = FieldExtensionOptions,
>(
outlet: React.ReactNode,
) => TComponentDataType[];
) => (TComponentDataType | FieldExtensionOptions)[];
// @public
export const useCustomLayouts: <TComponentDataType = LayoutOptions<any>>(
@@ -50,5 +50,17 @@ export const useCustomFieldExtensions = <
}),
);
return [...blueprintFields, ...outletFields];
// This should really be a different type moving foward, but we do this to keep type compatibility.
// should probably also move the defaults into the API eventually too, but that will come with the move
// to the new frontend system.
const blueprintsToLegacy: FieldExtensionOptions[] = blueprintFields?.map(
field => ({
component: field.component,
name: field.name,
validation: field.validation,
schema: field.schema?.schema,
}),
);
return [...blueprintsToLegacy, ...outletFields];
};
@@ -40,6 +40,7 @@ class DefaultScaffolderFormFieldsApi implements ScaffolderFormFieldsApi {
}
}
/** @alpha */
export const formFieldsApi = ApiBlueprint.makeWithOverrides({
name: 'form-fields',
inputs: {