Skip to main content

workflow_node/node_sys/interface/
wasi_options.rs

1use js_sys::Object;
2use wasm_bindgen::prelude::*;
3
4#[wasm_bindgen]
5#[derive(Clone, Debug, PartialEq)]
6pub struct WasiOptions {
7    args: Option<Box<[JsValue]>>,
8    env: Option<Object>,
9    preopens: Object,
10}
11
12#[wasm_bindgen]
13impl WasiOptions {
14    #[wasm_bindgen(constructor)]
15    pub fn new_with_values(
16        args: Option<Box<[JsValue]>>,
17        env: Option<Object>,
18        preopens: Object,
19    ) -> WasiOptions {
20        WasiOptions {
21            args,
22            env,
23            preopens,
24        }
25    }
26
27    pub fn new(preopens: Object) -> WasiOptions {
28        let args = Default::default();
29        let env = Default::default();
30        WasiOptions::new_with_values(args, env, preopens)
31    }
32
33    #[wasm_bindgen(getter)]
34    pub fn args(&self) -> Option<Box<[JsValue]>> {
35        self.args.clone()
36    }
37
38    #[wasm_bindgen(setter)]
39    pub fn set_args(&mut self, value: Option<Box<[JsValue]>>) {
40        self.args = value;
41    }
42
43    #[wasm_bindgen(getter)]
44    pub fn env(&self) -> Option<Object> {
45        self.env.clone()
46    }
47
48    #[wasm_bindgen(setter)]
49    pub fn set_env(&mut self, value: Option<Object>) {
50        self.env = value;
51    }
52
53    #[wasm_bindgen(getter)]
54    pub fn preopens(&self) -> Object {
55        self.preopens.clone()
56    }
57
58    #[wasm_bindgen(setter)]
59    pub fn set_preopens(&mut self, value: Object) {
60        self.preopens = value;
61    }
62}