workflow_node/require.rs
1use wasm_bindgen::prelude::*;
2use workflow_core::runtime;
3
4#[wasm_bindgen]
5extern "C" {
6 /// Binding to the Node.js `require` function for loading a module by name.
7 #[wasm_bindgen(js_name = require)]
8 pub fn require_impl(s: &str) -> JsValue;
9}
10
11/// Loads a Node.js module via `require`, returning [`JsValue::UNDEFINED`] when
12/// running in a web (browser) environment where `require` is unavailable.
13pub fn require(s: &str) -> JsValue {
14 if runtime::is_web() {
15 JsValue::UNDEFINED
16 } else {
17 require_impl(s)
18 }
19}