ferrijs_std/utils/
module.rs1use rquickjs::{
4 module::{Exports, ModuleDef},
5 Ctx, Object, Result, Value,
6};
7
8pub struct ModuleInfo<T: ModuleDef> {
9 pub name: &'static str,
10 pub module: T,
11}
12
13pub fn export_default<'js, F>(ctx: &Ctx<'js>, exports: &Exports<'js>, f: F) -> Result<()>
14where
15 F: FnOnce(&Object<'js>) -> Result<()>,
16{
17 let default = Object::new(ctx.clone())?;
18 f(&default)?;
19
20 for name in default.keys::<String>() {
21 let name = name?;
22 let value: Value = default.get(&name)?;
23 exports.export(name, value)?;
24 }
25
26 exports.export("default", default)?;
27
28 Ok(())
29}