total restructure: isolate functionality to core so web works

This commit is contained in:
nicwands
2026-03-19 17:25:43 -04:00
parent f9e7fe1208
commit eea1cccf16
20 changed files with 635 additions and 247 deletions

View File

@@ -0,0 +1,32 @@
export default class PluginRegistry {
constructor(environment = 'web') {
this.plugins = new Map()
this.environment = environment
}
register(plugin) {
if (!plugin.id) {
throw new Error('Plugin must have an id')
}
const environments = plugin.environments || ['electron', 'web']
if (!environments.includes(this.environment)) {
return
}
this.plugins.set(plugin.id, plugin)
}
get(id) {
return this.plugins.get(id)
}
list() {
return Array.from(this.plugins.values()).map((plugin) => ({
id: plugin.id,
name: plugin.name,
description: plugin.description,
configSchema: plugin.configSchema,
}))
}
}