use rquickjs::{
cstr,
module::{Declarations, Exports, ModuleDef},
Ctx, Function, Result,
};
use super::module::export_default;
pub struct UtilModule;
impl ModuleDef for UtilModule {
fn declare(declare: &Declarations<'_>) -> Result<()> {
declare.declare(stringify!(TextDecoder))?;
declare.declare(stringify!(TextEncoder))?;
declare.declare(cstr!("default").to_bytes())?;
Ok(())
}
fn evaluate<'js>(ctx: &Ctx<'js>, exports: &Exports<'js>) -> Result<()> {
export_default(ctx, exports, |default| {
let globals = ctx.globals();
let encoder: Function = globals.get(stringify!(TextEncoder))?;
let decoder: Function = globals.get(stringify!(TextDecoder))?;
default.set(stringify!(TextEncoder), encoder)?;
default.set(stringify!(TextDecoder), decoder)?;
Ok(())
})
}
}