mirror of
https://github.com/moltbot/moltbot.git
synced 2026-04-20 21:23:23 +00:00
fix(media): lazy load file-type sniffing
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
import path from "node:path";
|
||||
import { fileTypeFromBuffer } from "file-type";
|
||||
import { type MediaKind, mediaKindFromMime } from "./constants.js";
|
||||
|
||||
let fileTypeModulePromise: Promise<typeof import("file-type")> | undefined;
|
||||
|
||||
function loadFileTypeModule(): Promise<typeof import("file-type")> {
|
||||
fileTypeModulePromise ??= import("file-type");
|
||||
return fileTypeModulePromise;
|
||||
}
|
||||
|
||||
// Map common mimes to preferred file extensions.
|
||||
const EXT_BY_MIME: Record<string, string> = {
|
||||
"image/heic": ".heic",
|
||||
@@ -76,6 +82,7 @@ async function sniffMime(buffer?: Buffer): Promise<string | undefined> {
|
||||
return undefined;
|
||||
}
|
||||
try {
|
||||
const { fileTypeFromBuffer } = await loadFileTypeModule();
|
||||
const type = await fileTypeFromBuffer(buffer);
|
||||
return type?.mime ?? undefined;
|
||||
} catch {
|
||||
|
||||
Reference in New Issue
Block a user