Files
sausage/host/cred-script/vendor/llrt_utils_watts/src/module.rs
T

30 lines
705 B
Rust

// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
use rquickjs::{
module::{Exports, ModuleDef},
Ctx, Object, Result, Value,
};
pub struct ModuleInfo<T: ModuleDef> {
pub name: &'static str,
pub module: T,
}
pub fn export_default<'js, F>(ctx: &Ctx<'js>, exports: &Exports<'js>, f: F) -> Result<()>
where
F: FnOnce(&Object<'js>) -> Result<()>,
{
let default = Object::new(ctx.clone())?;
f(&default)?;
for name in default.keys::<String>() {
let name = name?;
let value: Value = default.get(&name)?;
exports.export(name, value)?;
}
exports.export("default", default)?;
Ok(())
}