@scalar/api-reference
Version:
Generate beautiful API references from OpenAPI documents
40 lines (39 loc) • 1.1 kB
JavaScript
const createPluginManager = ({ plugins = [] }) => {
const registeredPlugins = /* @__PURE__ */ new Map();
plugins.forEach((plugin) => {
const pluginInstance = plugin();
registeredPlugins.set(pluginInstance.name, pluginInstance);
});
return {
/**
* Get all extensions with the given name from registered plugins
*/
getSpecificationExtensions: (name) => {
const extensions = [];
for (const plugin of registeredPlugins.values()) {
for (const extension of plugin.extensions) {
if (extension.name === name) {
extensions.push(extension);
}
}
}
return extensions;
},
/**
* Get all components for a specific view from registered plugins
*/
getViewComponents: (viewName) => {
const components = [];
for (const plugin of registeredPlugins.values()) {
const viewComponents = plugin.views?.[viewName];
if (viewComponents) {
components.push(...viewComponents);
}
}
return components;
}
};
};
export {
createPluginManager
};