diff --git a/codecs/jxl/dec/jxl_dec.d.ts b/codecs/jxl/dec/jxl_dec.d.ts index c2721da9..8fe96424 100644 --- a/codecs/jxl/dec/jxl_dec.d.ts +++ b/codecs/jxl/dec/jxl_dec.d.ts @@ -1,5 +1,5 @@ interface JXLModule extends EmscriptenWasm.Module { - decode(data: BufferSource): ImageData; + decode(data: BufferSource): ImageData | null; } -export default function(opts: EmscriptenWasm.ModuleOpts): JXLModule; +export default function(opts: EmscriptenWasm.ModuleOpts): Promise; diff --git a/codecs/jxl/enc/jxl_enc.d.ts b/codecs/jxl/enc/jxl_enc.d.ts index 39a5b63c..9e45a01f 100644 --- a/codecs/jxl/enc/jxl_enc.d.ts +++ b/codecs/jxl/enc/jxl_enc.d.ts @@ -1,8 +1,7 @@ -import { EncodeOptions } from '../../src/codecs/jxl/encoder-meta'; +import { EncodeOptions } from '../../../src/codecs/jxl/encoder-meta'; interface JXLModule extends EmscriptenWasm.Module { - encode(data: BufferSource, width: number, height: number, options: EncodeOptions): Uint8Array; + encode(data: BufferSource, width: number, height: number, options: EncodeOptions): Uint8Array | null; } - -export default function(opts: EmscriptenWasm.ModuleOpts): JXLModule; +export default function(opts: EmscriptenWasm.ModuleOpts): Promise; diff --git a/src/codecs/jxl/decoder.ts b/src/codecs/jxl/decoder.ts index c7628856..997ebae2 100644 --- a/src/codecs/jxl/decoder.ts +++ b/src/codecs/jxl/decoder.ts @@ -8,5 +8,9 @@ export async function decode(data: ArrayBuffer): Promise { if (!emscriptenModule) emscriptenModule = initEmscriptenModule(jxl_dec, wasmUrl); const module = await emscriptenModule; - return module.decode(data); + const result = module.decode(data); + if (!result) { + throw new Error('Decoding error'); + } + return result; } diff --git a/src/codecs/jxl/encoder.ts b/src/codecs/jxl/encoder.ts index a06e21b0..7a5ceb93 100644 --- a/src/codecs/jxl/encoder.ts +++ b/src/codecs/jxl/encoder.ts @@ -10,6 +10,9 @@ export async function encode(data: ImageData, options: EncodeOptions): Promise