import type { ExtractionConfig } from "@kreuzberg/wasm";
import { extractBytes, initWasm } from "@kreuzberg/wasm";

async function extractWithConditionalConfig(fileSize: number) {
  await initWasm();

  const config: ExtractionConfig = {};

  if (fileSize > 10 * 1024 * 1024) {
    config.chunking = {
      maxChars: 500,
      chunkOverlap: 50,
    };
  }

  if (fileSize < 1 * 1024 * 1024) {
    config.images = {
      extractImages: true,
      targetDpi: 300,
    };
  }

  config.ocr = {
    enabled: fileSize < 50 * 1024 * 1024,
  };

  const bytes = new Uint8Array(await fetch("document.pdf").then((r) => r.arrayBuffer()));

  const result = await extractBytes(bytes, "application/pdf", config);

  return result;
}

extractWithConditionalConfig(5 * 1024 * 1024).then((_r) => console.log("Done"));
