@backstage/backend-app-api
Version:
Core API used by Backstage backend apps
51 lines (48 loc) • 2 kB
JavaScript
;
function createAllowBootFailurePredicate(config) {
const defaultPluginBootFailure = config?.getOptionalString("backend.startup.default.onPluginBootFailure") ?? "abort";
const defaultModuleBootFailure = config?.getOptionalString(
"backend.startup.default.onPluginModuleBootFailure"
) ?? "abort";
const pluginOverrides = /* @__PURE__ */ new Map();
const moduleOverrides = /* @__PURE__ */ new Map();
const pluginsConfig = config?.getOptionalConfig("backend.startup.plugins");
if (pluginsConfig) {
for (const pluginId of pluginsConfig.keys()) {
const pluginConfig = pluginsConfig.getConfig(pluginId);
const pluginBootFailure = pluginConfig.getOptionalString(
"onPluginBootFailure"
);
if (pluginBootFailure) {
pluginOverrides.set(pluginId, pluginBootFailure);
}
const modulesConfig = pluginConfig.getOptionalConfig("modules");
if (modulesConfig) {
const moduleMap = /* @__PURE__ */ new Map();
for (const moduleId of modulesConfig.keys()) {
const moduleConfig = modulesConfig.getConfig(moduleId);
const moduleBootFailure = moduleConfig.getOptionalString(
"onPluginModuleBootFailure"
);
if (moduleBootFailure) {
moduleMap.set(moduleId, moduleBootFailure);
}
}
if (moduleMap.size > 0) {
moduleOverrides.set(pluginId, moduleMap);
}
}
}
}
return (pluginId, moduleId) => {
if (moduleId !== void 0) {
const moduleMap = moduleOverrides.get(pluginId);
const moduleBootFailure = moduleMap?.get(moduleId) ?? defaultModuleBootFailure;
return moduleBootFailure === "continue";
}
const pluginBootFailure = pluginOverrides.get(pluginId) ?? defaultPluginBootFailure;
return pluginBootFailure === "continue";
};
}
exports.createAllowBootFailurePredicate = createAllowBootFailurePredicate;
//# sourceMappingURL=createAllowBootFailurePredicate.cjs.js.map