78 lines
2.2 KiB
Markdown
78 lines
2.2 KiB
Markdown
# Unregister Plugins
|
|
|
|
Remove registered plugins from the WASM runtime using individual unregister or bulk clear operations.
|
|
|
|
```typescript title="WASM"
|
|
import init, {
|
|
registerDocumentExtractor,
|
|
unregisterDocumentExtractor,
|
|
listDocumentExtractors,
|
|
clearDocumentExtractors,
|
|
registerOcrBackend,
|
|
unregisterOcrBackend,
|
|
listOcrBackends,
|
|
clearOcrBackends,
|
|
registerPostProcessor,
|
|
unregisterPostProcessor,
|
|
listPostProcessors,
|
|
clearPostProcessors,
|
|
registerRenderer,
|
|
unregisterRenderer,
|
|
listRenderers,
|
|
clearRenderers,
|
|
registerValidator,
|
|
unregisterValidator,
|
|
listValidators,
|
|
clearValidators,
|
|
} from "kreuzberg-wasm";
|
|
|
|
await init();
|
|
|
|
// Example: register a custom document extractor
|
|
const extractor = {
|
|
extractBytes: async (bytes, mimeType, config) => {
|
|
return JSON.stringify({ text: "test", page_count: 1 });
|
|
},
|
|
supportedMimeTypes: () => JSON.stringify(["application/x-test"]),
|
|
};
|
|
|
|
registerDocumentExtractor(extractor);
|
|
console.log("Registered extractors:", listDocumentExtractors());
|
|
|
|
// Individual unregistration by plugin name
|
|
try {
|
|
unregisterDocumentExtractor("wasm_bridge");
|
|
console.log("Extractor unregistered");
|
|
} catch (error) {
|
|
console.error("Unregister failed:", error);
|
|
}
|
|
|
|
// Clear all plugins of a type
|
|
clearPostProcessors();
|
|
console.log("After clearPostProcessors:", listPostProcessors());
|
|
|
|
clearOcrBackends();
|
|
console.log("After clearOcrBackends:", listOcrBackends());
|
|
|
|
clearRenderers();
|
|
console.log("After clearRenderers:", listRenderers());
|
|
|
|
clearValidators();
|
|
console.log("After clearValidators:", listValidators());
|
|
|
|
// Selective re-registration: clear and register only desired plugins
|
|
clearPostProcessors();
|
|
const myProcessor = {
|
|
processingStage: () => "post-extraction",
|
|
process: (result) => result, // Pass-through
|
|
};
|
|
registerPostProcessor(myProcessor);
|
|
console.log("After selective re-register:", listPostProcessors());
|
|
|
|
// Unregister specific plugin by name
|
|
unregisterPostProcessor("wasm_bridge");
|
|
console.log("After selective unregister:", listPostProcessors());
|
|
```
|
|
|
|
Use `unregister*` to remove individual plugins by name, or `clear*` for bulk removal of all plugins of a type. All custom plugins are registered with the default name `"wasm_bridge"` managed by the bridge.
|