diff --git a/.changeset/thirty-gorillas-train.md b/.changeset/thirty-gorillas-train.md new file mode 100644 index 0000000000..79214e457b --- /dev/null +++ b/.changeset/thirty-gorillas-train.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Export default module for `scaffolder-action` cli template diff --git a/packages/cli/src/lib/new/factories/scaffolderModule.test.ts b/packages/cli/src/lib/new/factories/scaffolderModule.test.ts index b43946228b..d83c2ce3f7 100644 --- a/packages/cli/src/lib/new/factories/scaffolderModule.test.ts +++ b/packages/cli/src/lib/new/factories/scaffolderModule.test.ts @@ -80,6 +80,7 @@ describe('scaffolderModule factory', () => { 'copying example.test.ts', 'copying example.ts', 'copying index.ts', + 'copying module.ts', 'Installing:', `moving plugins${sep}scaffolder-backend-module-test`, ]); diff --git a/packages/cli/templates/scaffolder-module/src/actions/example/index.ts b/packages/cli/templates/scaffolder-module/src/actions/example/index.ts index e81099f333..06ce5befc0 100644 --- a/packages/cli/templates/scaffolder-module/src/actions/example/index.ts +++ b/packages/cli/templates/scaffolder-module/src/actions/example/index.ts @@ -1 +1,7 @@ +import { scaffolderModule } from './module'; + +/* + @deprecated - this way of importing modules will soon be unsupported, and you should use `backend.add(import(...))` instead. +*/ export { createAcmeExampleAction } from './example'; +export default scaffolderModule; diff --git a/packages/cli/templates/scaffolder-module/src/actions/example/module.ts b/packages/cli/templates/scaffolder-module/src/actions/example/module.ts new file mode 100644 index 0000000000..238268dcec --- /dev/null +++ b/packages/cli/templates/scaffolder-module/src/actions/example/module.ts @@ -0,0 +1,21 @@ +import { createBackendModule } from "@backstage/backend-plugin-api"; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { createAcmeExampleAction } from "./example"; + +/** + * A backend module that registers the action into the scaffolder + */ +export const scaffolderModule = createBackendModule({ + moduleId: 'acme:example', + pluginId: 'scaffolder', + register({ registerInit }) { + registerInit({ + deps: { + scaffolderActions: scaffolderActionsExtensionPoint + }, + async init({ scaffolderActions}) { + scaffolderActions.addActions(createAcmeExampleAction()); + } + }); + }, +})