Move formFieldsApiRef and ScaffolderFormFieldsApi to scaffolder-react

The formFieldsApiRef and ScaffolderFormFieldsApi type are now defined and
exported from @backstage/plugin-scaffolder-react/alpha, and re-exported
from @backstage/plugin-scaffolder/alpha for backwards compatibility.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2026-02-26 18:06:57 +01:00
parent c472a693b6
commit 004b5c1208
8 changed files with 47 additions and 23 deletions
@@ -5,6 +5,7 @@
```ts
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';
@@ -198,6 +199,9 @@ export type FormFieldExtensionData<
schema?: FieldSchema<z.output<TReturnValue>, z.output<TUiOptions>>;
};
// @alpha (undocumented)
export const formFieldsApiRef: ApiRef<ScaffolderFormFieldsApi>;
// @alpha (undocumented)
export type FormValidation = {
[name: string]: FieldValidation | FormValidation;
@@ -272,6 +276,12 @@ export type ScaffolderFormDecoratorContext<
) => void;
};
// @alpha (undocumented)
export interface ScaffolderFormFieldsApi {
// (undocumented)
loadFormFields(): Promise<FormField[]>;
}
// @alpha (undocumented)
export function ScaffolderPageContextMenu(
props: ScaffolderPageContextMenuProps,
@@ -14,4 +14,12 @@
* limitations under the License.
*/
export { type FormField } from './types';
import { createApiRef } from '@backstage/frontend-plugin-api';
import { ScaffolderFormFieldsApi } from './types';
export { type FormField, type ScaffolderFormFieldsApi } from './types';
/** @alpha */
export const formFieldsApiRef = createApiRef<ScaffolderFormFieldsApi>({
id: 'plugin.scaffolder.form-fields-loader',
});
@@ -18,3 +18,8 @@
export interface FormField {
readonly $$type: '@backstage/scaffolder/FormField';
}
/** @alpha */
export interface ScaffolderFormFieldsApi {
loadFormFields(): Promise<FormField[]>;
}