Add ApiBlueprint for form-decorators
Signed-off-by: Tim Hansen <timbonicush@spotify.com>
This commit is contained in:
@@ -14,8 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {
|
||||
ApiBlueprint,
|
||||
createApiFactory,
|
||||
createExtensionInput,
|
||||
} from '@backstage/frontend-plugin-api';
|
||||
import { ScaffolderFormDecoratorsApi } from './types';
|
||||
import { ScaffolderFormDecorator } from '@backstage/plugin-scaffolder-react/alpha';
|
||||
import { formDecoratorsApiRef } from './ref';
|
||||
|
||||
/** @alpha */
|
||||
export class DefaultScaffolderFormDecoratorsApi
|
||||
@@ -37,3 +43,28 @@ export class DefaultScaffolderFormDecoratorsApi
|
||||
return this.options.decorators;
|
||||
}
|
||||
}
|
||||
|
||||
/** @alpha */
|
||||
export const formDecoratorsApi = ApiBlueprint.makeWithOverrides({
|
||||
name: 'form-decorators',
|
||||
inputs: {
|
||||
// TODO: this should come from the inputs that the form decorators use
|
||||
formDecorators: createExtensionInput([]),
|
||||
},
|
||||
factory(originalFactory, { inputs }) {
|
||||
// TODO: this should come from the inputs that the form decorators use
|
||||
const formDecorators =
|
||||
inputs.formDecorators as unknown as ScaffolderFormDecorator[];
|
||||
|
||||
return originalFactory({
|
||||
factory: createApiFactory({
|
||||
api: formDecoratorsApiRef,
|
||||
deps: {},
|
||||
factory: () =>
|
||||
DefaultScaffolderFormDecoratorsApi.create({
|
||||
decorators: formDecorators,
|
||||
}),
|
||||
}),
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
export { formDecoratorsApiRef } from './ref';
|
||||
export type { ScaffolderFormDecoratorsApi } from './types';
|
||||
export { DefaultScaffolderFormDecoratorsApi } from './FormDecoratorsApi';
|
||||
export * from './FormDecoratorsApi';
|
||||
|
||||
@@ -33,6 +33,7 @@ import {
|
||||
scaffolderApi,
|
||||
} from './extensions';
|
||||
import { formFieldsApi } from '@backstage/plugin-scaffolder-react/alpha';
|
||||
import { formDecoratorsApi } from './api';
|
||||
|
||||
/** @alpha */
|
||||
export default createFrontendPlugin({
|
||||
@@ -53,6 +54,7 @@ export default createFrontendPlugin({
|
||||
scaffolderApi,
|
||||
scaffolderPage,
|
||||
scaffolderNavItem,
|
||||
formDecoratorsApi,
|
||||
formFieldsApi,
|
||||
repoUrlPickerFormField,
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user