Files
fil/docs/snippets/wasm/utils/mime-detection.ts

31 lines
970 B
TypeScript
Raw Normal View History

2026-06-01 23:40:55 +02:00
import { extractBytes, initWasm } from "@kreuzberg/wasm";
async function detectAndExtract(bytes: Uint8Array) {
await initWasm();
const magic = bytes.slice(0, 8);
const magicStr = Array.from(magic)
.map((b) => b.toString(16).padStart(2, "0"))
.join("");
console.log("Magic bytes:", magicStr);
let mimeType = "application/octet-stream";
if (magicStr.startsWith("25504446")) mimeType = "application/pdf";
else if (magicStr.startsWith("504b0304")) mimeType = "application/zip";
else if (magicStr.startsWith("ffd8ff")) mimeType = "image/jpeg";
else if (magicStr.startsWith("89504e47")) mimeType = "image/png";
else if (magicStr.startsWith("474946")) mimeType = "image/gif";
console.log("Detected MIME type:", mimeType);
const result = await extractBytes(bytes, mimeType);
return result;
}
const testBytes = new Uint8Array([0x25, 0x50, 0x44, 0x46]);
detectAndExtract(testBytes)
.then((r) => console.log(r))
.catch(console.error);