brotli_dec_wasm/
lib.rs

1pub mod err;
2pub mod stream;
3mod utils;
4
5use brotli_decompressor::BrotliDecompress;
6use wasm_bindgen::prelude::*;
7
8/// No error reporting included.
9/// To get the detailed error code, use [`stream::BrotliDecStream`].
10#[wasm_bindgen]
11pub fn brotli_dec(input: Box<[u8]>) -> Result<Box<[u8]>, JsError> {
12    utils::set_panic_hook();
13    let mut output = Vec::new();
14    match BrotliDecompress(&mut input.as_ref(), &mut output) {
15        Ok(_) => Ok(output.into_boxed_slice()),
16        Err(_) => Err(JsError::new("Brotli decompress failed")),
17    }
18}
19
20/// See [`brotli_dec`].
21///
22/// For drop-in replacement of `brotli-wasm`.
23#[wasm_bindgen(js_name = decompress)]
24pub fn brotli_dec_alt(buf: Box<[u8]>) -> Result<Box<[u8]>, JsError> {
25    brotli_dec(buf)
26}