rquickjs_extra_utils/
module.rs

1// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2// Copyright Emile Fugulin for modifications.
3// SPDX-License-Identifier: Apache-2.0
4// Source: https://github.com/awslabs/llrt/blob/07eb540a204dcdce44143220876630804f381ca6/llrt_utils/src/module.rs
5use rquickjs::{module::Exports, Ctx, Object, Result, Value};
6
7pub fn export_default<'js, F>(ctx: &Ctx<'js>, exports: &Exports<'js>, f: F) -> Result<()>
8where
9    F: FnOnce(&Object<'js>) -> Result<()>,
10{
11    let default = Object::new(ctx.clone())?;
12    f(&default)?;
13
14    for name in default.keys::<String>() {
15        let name = name?;
16        let value: Value = default.get(&name)?;
17        exports.export(name, value)?;
18    }
19
20    exports.export("default", default)?;
21
22    Ok(())
23}