diff --git a/src/js_native_api.h b/src/js_native_api.h
index 2675da505c2368..00dedfbfc71c38 100644
--- a/src/js_native_api.h
+++ b/src/js_native_api.h
@@ -28,6 +28,9 @@
 #ifndef NAPI_EXTERN
   #ifdef _WIN32
     #define NAPI_EXTERN __declspec(dllexport)
+  #elif defined(__wasm32__)
+    #define NAPI_EXTERN __attribute__((visibility("default")))                \
+                        __attribute__((__import_module__("napi")))
   #else
     #define NAPI_EXTERN __attribute__((visibility("default")))
   #endif
diff --git a/src/node_api.h b/src/node_api.h
index a4d3cc60e9bb5c..7f48d8c8465520 100644
--- a/src/node_api.h
+++ b/src/node_api.h
@@ -5,6 +5,8 @@
   #ifdef _WIN32
     // Building native module against node
     #define NAPI_EXTERN __declspec(dllimport)
+  #elif defined(__wasm32__)
+    #define NAPI_EXTERN __attribute__((__import_module__("napi")))
   #endif
 #endif
 #include "js_native_api.h"
@@ -71,8 +73,18 @@ typedef struct {
     }                                                                 \
   EXTERN_C_END
 
+#ifdef __wasm32__
+#define NAPI_MODULE(modname, regfunc)                                          \
+  EXTERN_C_START                                                               \
+  NAPI_MODULE_EXPORT napi_value _napi_register(napi_env env,                   \
+                                               napi_value exports) {           \
+    return regfunc(env, exports);                                              \
+  }                                                                            \
+  EXTERN_C_END
+#else
 #define NAPI_MODULE(modname, regfunc)                                 \
   NAPI_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
+#endif
 
 #define NAPI_MODULE_INITIALIZER_BASE napi_register_module_v
 
@@ -196,6 +208,7 @@ NAPI_EXTERN napi_status napi_close_callback_scope(napi_env env,
 
 #if NAPI_VERSION >= 4
 
+#ifndef __wasm32__
 // Calling into JS from other threads
 NAPI_EXTERN napi_status
 napi_create_threadsafe_function(napi_env env,
@@ -231,6 +244,7 @@ napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func);
 
 NAPI_EXTERN napi_status
 napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func);
+#endif  // __wasm32__
 
 #endif  // NAPI_VERSION >= 4