convert-js 1.0.0-alpha.15

Convert rust wasm from/to js
Documentation
use wasm_bindgen::JsValue;

use crate::ToJs;

pub struct JsObject(js_sys::Object);

impl JsObject {
    #[inline]
    pub fn new() -> Self {
        Self(js_sys::Object::new())
    }

    #[inline]
    pub fn into_inner(self) -> js_sys::Object {
        self.0
    }

    #[inline]
    pub fn into_js_value(self) -> JsValue {
        self.0.into()
    }

    #[inline]
    pub fn with_prop<K: ToJs, V: ToJs>(self, key: &K, v: &V) -> Self {
        self.set_prop(key, v);
        self
    }

    #[inline]
    pub fn set_prop<K: ToJs, V: ToJs>(&self, key: &K, v: &V) -> &Self {
        if let Some(v) = v.to_js_property_value() {
            let k = key.to_js();
            js_sys::Reflect::set(&self.0, &k, &v).unwrap();
        }

        self
    }
}