diff --git a/lib/wasm/wasmLoader.ts b/lib/wasm/wasmLoader.ts index a5fdd51..8701f2a 100644 --- a/lib/wasm/wasmLoader.ts +++ b/lib/wasm/wasmLoader.ts @@ -65,18 +65,47 @@ export async function loadImageMagick(): Promise { // Initialize ImageMagick with WASM file from public directory // In production (static export), this will be served from /wasm/magick.wasm const wasmUrl = '/wasm/magick.wasm'; - await initializeImageMagick(wasmUrl); + + console.log('[ImageMagick] Attempting to load WASM from:', wasmUrl); + + // Test fetch the WASM file first to debug + try { + const response = await fetch(wasmUrl); + console.log('[ImageMagick] WASM fetch response:', { + ok: response.ok, + status: response.status, + contentType: response.headers.get('content-type'), + contentLength: response.headers.get('content-length'), + }); + + if (!response.ok) { + throw new Error(`Failed to fetch WASM file: ${response.status} ${response.statusText}`); + } + + const arrayBuffer = await response.arrayBuffer(); + console.log('[ImageMagick] WASM file size:', arrayBuffer.byteLength, 'bytes'); + + if (arrayBuffer.byteLength === 0) { + throw new Error('WASM file is empty'); + } + + // Now initialize with the buffer directly + await initializeImageMagick(arrayBuffer); + } catch (fetchError) { + console.error('[ImageMagick] Failed to fetch WASM:', fetchError); + throw fetchError; + } const ImageMagick = await import('@imagemagick/magick-wasm'); imagemagickInstance = ImageMagick; moduleState.imagemagick = true; - console.log('ImageMagick loaded and initialized successfully'); + console.log('[ImageMagick] Loaded and initialized successfully'); return imagemagickInstance; } catch (error) { - console.error('Failed to load ImageMagick:', error); - throw new Error('Failed to load ImageMagick WASM module'); + console.error('[ImageMagick] Failed to load:', error); + throw new Error(`Failed to load ImageMagick WASM module: ${error instanceof Error ? error.message : 'Unknown error'}`); } }