Skip to content

Commit

Permalink
fix wasm
Browse files Browse the repository at this point in the history
  • Loading branch information
devongovett committed Feb 28, 2024
1 parent a493a8b commit 362bce5
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 9 deletions.
8 changes: 4 additions & 4 deletions napi/src/lib.rs
Expand Up @@ -430,10 +430,10 @@ mod bundle {
let opts = ctx.get::<JsObject>(0)?;
let mut visitor = get_visitor(*ctx.env, &opts);

let resolver = get_named_property::<JsObject>(opts, "resolver")?;
let read = get_named_property::<JsFunction>(resolver, "read")?;
let resolver = get_named_property::<JsObject>(&opts, "resolver")?;
let read = get_named_property::<JsFunction>(&resolver, "read")?;
let resolve = if resolver.has_named_property("resolve")? {
let resolve = get_named_property::<JsFunction>(resolver, "resolve")?;
let resolve = get_named_property::<JsFunction>(&resolver, "resolve")?;
Some(ctx.env.create_reference(resolve)?)
} else {
None
Expand Down Expand Up @@ -507,7 +507,7 @@ mod bundle {
return Err(napi::Error::from(error));
}
if result.is_null() {
return Err(napi::Error::new(napi::Status::GenericFailure, "No result".into()));
return Err(napi::Error::new(napi::Status::GenericFailure, "No result".to_string()));
}

value = unsafe { JsUnknown::from_raw(env.raw(), result)? };
Expand Down
14 changes: 9 additions & 5 deletions node/src/lib.rs
Expand Up @@ -41,12 +41,16 @@ fn init(mut exports: JsObject) -> napi::Result<()> {

#[cfg(target_arch = "wasm32")]
#[no_mangle]
pub unsafe fn napi_register_wasm_v1(raw_env: napi::sys::napi_env, raw_exports: napi::sys::napi_value) {
use napi::{Env, JsObject, NapiValue};
pub fn register_module() {
unsafe fn register(raw_env: napi::sys::napi_env, raw_exports: napi::sys::napi_value) -> napi::Result<()> {
use napi::{Env, JsObject, NapiValue};

let env = Env::from_raw(raw_env);
let exports = JsObject::from_raw_unchecked(raw_env, raw_exports);
init(exports);
let env = Env::from_raw(raw_env);
let exports = JsObject::from_raw_unchecked(raw_env, raw_exports);
init(exports)
}

napi::bindgen_prelude::register_module_exports(register)
}

#[cfg(target_arch = "wasm32")]
Expand Down
1 change: 1 addition & 0 deletions wasm/index.mjs
Expand Up @@ -28,6 +28,7 @@ export default async function init(input) {
}
}))
.then(({instance}) => {
instance.exports.register_module();
env = new Environment(instance);
bundleAsyncInternal = createBundleAsync(env);
wasm = env.exports;
Expand Down
1 change: 1 addition & 0 deletions wasm/wasm-node.mjs
Expand Up @@ -15,6 +15,7 @@ let instance = new WebAssembly.Instance(wasmModule, {
},
},
});
instance.exports.register_module();
let env = new Environment(instance);
let wasm = env.exports;
let bundleAsyncInternal = createBundleAsync(env);
Expand Down

0 comments on commit 362bce5

Please sign in to comment.