Skip to main content

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}