in src/components/Plugins/PluginManager.tsx [203:236]
function register(manifest: Plugin, version: PluginVersionInfo) {
const alreadyRegistered =
plugins.findIndex((p) => p.name === manifest.name && p.config.slot === manifest.config.slot) > -1;
const slot = manifest.config.slot;
if (!slot || ALLOWED_SLOTS.indexOf(slot) === -1) {
console.warn(`Plugin '${manifest.name}' did not give valid slot to register.`);
return;
}
if (!alreadyRegistered) {
if (version && !isVersionEqualOrHigher(version.api, SUPPORTED_PLUGIN_API_VERSION)) {
console.warn(
`Plugin '${manifest.name}' is using unsupported version of plugin API. Please update plugin to use plugin API version ${SUPPORTED_PLUGIN_API_VERSION} or higher.`,
);
return;
}
if (version && !isVersionEqualOrHigher(version.api, RECOMMENDED_PLUGIN_API_VERSION)) {
console.warn(
`Plugin '${manifest.name}' is using older than recommended version of plugin API. Update plugin to use plugin API version ${RECOMMENDED_PLUGIN_API_VERSION} or higher for most recent features and fixes.`,
);
}
if (!version) {
console.warn(`Plugin '${manifest.name}' didn't provide plugin API version.`);
}
const newPlugin = { ...manifest, config: { visible: true, useApplicationStyles: true, ...manifest.config } };
setPlugins((items) => [...items, newPlugin]);
}
}