chore: Move catalogPlugin to catalog-backend
Signed-off-by: Johan Haals <johan.haals@gmail.com>
This commit is contained in:
committed by
Patrik Oldsberg
parent
0d71831aae
commit
699881cdd9
@@ -14,94 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createBackend } from '@backstage/backend-app-api';
|
||||
import { createBackendModule } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
createBackend,
|
||||
loggerToWinstonLogger,
|
||||
} from '@backstage/backend-app-api';
|
||||
import {
|
||||
configServiceRef,
|
||||
createBackendModule,
|
||||
createBackendPlugin,
|
||||
createServiceRef,
|
||||
databaseServiceRef,
|
||||
loggerServiceRef,
|
||||
permissionsServiceRef,
|
||||
urlReaderServiceRef,
|
||||
httpRouterServiceRef,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
CatalogBuilder,
|
||||
CatalogProcessor,
|
||||
catalogPlugin,
|
||||
catalogProcessingInitApiRef,
|
||||
} from '@backstage/plugin-catalog-backend';
|
||||
import { ScaffolderEntitiesProcessor } from '@backstage/plugin-scaffolder-backend';
|
||||
|
||||
interface CatalogProcessingInitApi {
|
||||
addProcessor(processor: CatalogProcessor): void;
|
||||
}
|
||||
|
||||
export const catalogProcessingInitApiRef =
|
||||
createServiceRef<CatalogProcessingInitApi>({
|
||||
id: 'catalog.processing',
|
||||
});
|
||||
|
||||
class CatalogExtensionPointImpl implements CatalogProcessingInitApi {
|
||||
#processors = new Array<CatalogProcessor>();
|
||||
|
||||
addProcessor(processor: CatalogProcessor): void {
|
||||
this.#processors.push(processor);
|
||||
}
|
||||
|
||||
get processors() {
|
||||
return this.#processors;
|
||||
}
|
||||
}
|
||||
|
||||
export const catalogPlugin = createBackendPlugin({
|
||||
id: 'catalog',
|
||||
register(env) {
|
||||
const processingExtensions = new CatalogExtensionPointImpl();
|
||||
// plugins depending on this API will be initialized before this plugins init method is executed.
|
||||
env.registerExtensionPoint(
|
||||
catalogProcessingInitApiRef,
|
||||
processingExtensions,
|
||||
);
|
||||
|
||||
env.registerInit({
|
||||
deps: {
|
||||
logger: loggerServiceRef,
|
||||
config: configServiceRef,
|
||||
reader: urlReaderServiceRef,
|
||||
permissions: permissionsServiceRef,
|
||||
database: databaseServiceRef,
|
||||
httpRouter: httpRouterServiceRef,
|
||||
},
|
||||
async init({
|
||||
logger,
|
||||
config,
|
||||
reader,
|
||||
database,
|
||||
permissions,
|
||||
httpRouter,
|
||||
}) {
|
||||
const winstonLogger = loggerToWinstonLogger(logger);
|
||||
const builder = await CatalogBuilder.create({
|
||||
config,
|
||||
reader,
|
||||
permissions,
|
||||
database,
|
||||
logger: winstonLogger,
|
||||
});
|
||||
builder.addProcessor(...processingExtensions.processors);
|
||||
const { processingEngine, router } = await builder.build();
|
||||
|
||||
await processingEngine.start();
|
||||
|
||||
httpRouter.use(router);
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
export const scaffolderCatalogExtension = createBackendModule({
|
||||
moduleId: 'scaffolder.extention',
|
||||
pluginId: 'catalog',
|
||||
|
||||
Reference in New Issue
Block a user