Nomad changes
All checks were successful
Deploy fil (kreuzberg) / deploy (push) Successful in 49s

This commit is contained in:
Henrik Jess Nielsen
2026-06-01 23:40:55 +02:00
parent 72b1a0a6ed
commit b4c07d3693
5723 changed files with 1130655 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
import { initWasm, TesseractWasmBackend } from "@kreuzberg/wasm";
class PluginManager {
private plugins: Map<string, any> = new Map();
async registerPlugin(name: string, plugin: any): Promise<void> {
console.log(`Registering plugin: ${name}`);
if (plugin.initialize) {
await plugin.initialize();
}
this.plugins.set(name, plugin);
console.log(`Plugin ${name} registered successfully`);
}
async unregisterPlugin(name: string): Promise<void> {
const plugin = this.plugins.get(name);
if (!plugin) {
console.warn(`Plugin ${name} not found`);
return;
}
if (plugin.cleanup) {
await plugin.cleanup();
}
this.plugins.delete(name);
console.log(`Plugin ${name} unregistered`);
}
listPlugins(): string[] {
return Array.from(this.plugins.keys());
}
async reloadPlugin(name: string): Promise<void> {
const plugin = this.plugins.get(name);
if (!plugin) {
console.warn(`Plugin ${name} not found`);
return;
}
console.log(`Reloading plugin: ${name}`);
await this.unregisterPlugin(name);
await this.registerPlugin(name, plugin);
}
}
async function demonstratePluginLifecycle() {
await initWasm();
const manager = new PluginManager();
const backend = new TesseractWasmBackend();
await manager.registerPlugin("tesseract", backend);
console.log("Active plugins:", manager.listPlugins());
await manager.reloadPlugin("tesseract");
await manager.unregisterPlugin("tesseract");
console.log("Active plugins:", manager.listPlugins());
}
demonstratePluginLifecycle().catch(console.error);