UNPKG

@backstage/backend-plugin-api

Version:

Core API used by Backstage backend plugins

71 lines (67 loc) 2.16 kB
'use strict'; var constants = require('./constants.cjs.js'); function createBackendModule(options) { if (!constants.ID_PATTERN.test(options.moduleId)) { console.warn( `WARNING: The moduleId '${options.moduleId}' for plugin '${options.pluginId}', will be invalid soon, please change it to match the pattern ${constants.ID_PATTERN} (letters, digits, and dashes only, starting with a letter)` ); } if (!constants.ID_PATTERN_OLD.test(options.moduleId)) { throw new Error( `Invalid moduleId '${options.moduleId}' for plugin '${options.pluginId}', must match the pattern ${constants.ID_PATTERN} (letters, digits, and dashes only, starting with a letter)` ); } function getRegistrations() { const extensionPoints = []; let init = void 0; options.register({ registerExtensionPoint(extOrOpts, impl) { if (init) { throw new Error("registerExtensionPoint called after registerInit"); } if (typeof extOrOpts === "object" && extOrOpts !== null && "extensionPoint" in extOrOpts) { extensionPoints.push({ extensionPoint: extOrOpts.extensionPoint, factory: extOrOpts.factory }); } else { extensionPoints.push({ extensionPoint: extOrOpts, factory: () => impl }); } }, registerInit(regInit) { if (init) { throw new Error("registerInit must only be called once"); } init = { deps: regInit.deps, func: regInit.init }; } }); if (!init) { throw new Error( `registerInit was not called by register in ${options.moduleId} module for ${options.pluginId}` ); } return [ { type: "module-v1.1", pluginId: options.pluginId, moduleId: options.moduleId, extensionPoints, init } ]; } return { $$type: "@backstage/BackendFeature", featureType: "registrations", version: "v1", getRegistrations }; } exports.createBackendModule = createBackendModule; //# sourceMappingURL=createBackendModule.cjs.js.map