# Custom Plugin Usage Pattern Demonstrate the pattern for using registered plugins during document extraction. ```typescript title="WASM" import init, { extractBytes, registerPostProcessor } from "kreuzberg-wasm"; await init(); // Register a custom post-processor const customProcessor = { processingStage: () => "post-extraction", process: (result) => { console.log("Post-processor: enriching extraction result"); return { ...result, metadata: { ...result.metadata, enriched: true, processorApplied: "customProcessor", }, }; }, }; registerPostProcessor(customProcessor); // Extract document with registered plugin async function extractWithPlugins(fileBytes, mimeType) { const config = { ocr: null, chunking: null, enableQualityProcessing: false, }; // Extraction automatically applies registered post-processors const result = await extractBytes(fileBytes, mimeType, config); console.log("Extraction complete"); console.log("Plugins applied:", result.metadata?.enriched); return result; } // Usage const pdfBytes = new Uint8Array([ /* PDF content */ ]); const result = await extractWithPlugins(pdfBytes, "application/pdf"); console.log("Final result:", result); ``` The extraction pipeline automatically applies all registered plugins in the correct order.