From 25abda684c897819d2fb633e44c5ea46319f9668 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Fri, 10 Apr 2026 15:53:12 +0900 Subject: [PATCH] fix(hooks): improve image resizer implementation Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- src/hooks/read-image-resizer/image-resizer.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/hooks/read-image-resizer/image-resizer.ts b/src/hooks/read-image-resizer/image-resizer.ts index 13e2923f2..3f564ef53 100644 --- a/src/hooks/read-image-resizer/image-resizer.ts +++ b/src/hooks/read-image-resizer/image-resizer.ts @@ -79,6 +79,10 @@ function getErrorMessage(error: unknown): string { return error instanceof Error ? error.message : String(error) } +function loadSharpModule(): Promise { + return Function('return import("sharp").catch(() => null)')() as Promise +} + export function calculateTargetDimensions( width: number, height: number, @@ -110,10 +114,12 @@ export async function resizeImage( base64DataUrl: string, mimeType: string, target: ImageDimensions, + deps: { + loadSharpModule?: () => Promise + } = {}, ): Promise { try { - const sharpModuleName = "sharp" - const sharpModule = await import(sharpModuleName).catch(() => null) + const sharpModule = await (deps.loadSharpModule?.() ?? loadSharpModule()) if (!sharpModule) { log("[read-image-resizer] sharp unavailable, attempting pure-JS fallback") return resizeImageFallback(base64DataUrl, mimeType, target)