Spaces:
Running
Running
File size: 1,232 Bytes
ce72224 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | /**
* Plugin Manager
* Verwaltet das automatische Laden und Initialisieren von Plugins
*/
const plugins = new Map()
export function registerPlugin(name, plugin) {
plugins.set(name, plugin)
console.log(`✓ Plugin registered: ${name}`)
}
export function getPlugin(name) {
return plugins.get(name)
}
export function getAllPlugins() {
return Array.from(plugins.values())
}
export async function initializePlugins() {
console.log('🔌 Initializing plugin system...')
// Globale Plugin API bereitstellen
window.PluginAPI = {
register: registerPlugin,
get: getPlugin,
getAll: getAllPlugins,
// Event Emitter für Plugins
on: (event, callback) => {
window.addEventListener(event, callback)
},
off: (event, callback) => {
window.removeEventListener(event, callback)
},
emit: (event, data) => {
window.dispatchEvent(new CustomEvent(event, { detail: data }))
},
}
console.log('✓ Plugin API ready')
}
// Plugin Hook System
export const PluginHooks = {
PLUGIN_INIT: 'onPluginInit',
MESSAGE_SENT: 'onMessageSent',
RESPONSE_RECEIVED: 'onResponseReceived',
ERROR: 'onError',
}
|