From 362bce5bc47d6420fdb20e7bfc4228a8bd80c5d2 Mon Sep 17 00:00:00 2001 From: Devon Govett Date: Tue, 27 Feb 2024 22:28:30 -0500 Subject: [PATCH] fix wasm --- napi/src/lib.rs | 8 ++++---- node/src/lib.rs | 14 +++++++++----- wasm/index.mjs | 1 + wasm/wasm-node.mjs | 1 + 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/napi/src/lib.rs b/napi/src/lib.rs index e756f591..cc3ce78e 100644 --- a/napi/src/lib.rs +++ b/napi/src/lib.rs @@ -430,10 +430,10 @@ mod bundle { let opts = ctx.get::(0)?; let mut visitor = get_visitor(*ctx.env, &opts); - let resolver = get_named_property::(opts, "resolver")?; - let read = get_named_property::(resolver, "read")?; + let resolver = get_named_property::(&opts, "resolver")?; + let read = get_named_property::(&resolver, "read")?; let resolve = if resolver.has_named_property("resolve")? { - let resolve = get_named_property::(resolver, "resolve")?; + let resolve = get_named_property::(&resolver, "resolve")?; Some(ctx.env.create_reference(resolve)?) } else { None @@ -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)? }; diff --git a/node/src/lib.rs b/node/src/lib.rs index 16030b51..e429b0f2 100644 --- a/node/src/lib.rs +++ b/node/src/lib.rs @@ -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")] diff --git a/wasm/index.mjs b/wasm/index.mjs index 65743ae7..7120fd0d 100644 --- a/wasm/index.mjs +++ b/wasm/index.mjs @@ -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; diff --git a/wasm/wasm-node.mjs b/wasm/wasm-node.mjs index e361dc51..7e8c69f2 100644 --- a/wasm/wasm-node.mjs +++ b/wasm/wasm-node.mjs @@ -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);