antenna-client-web 0.1.1

Web-over-WASM platform implementation for the antenna P2P mesh protocol.
Documentation
use antenna_client_shared::IceServerConfig;
use wasm_bindgen::prelude::*;

pub(crate) fn build_rtc_config(servers: &[IceServerConfig]) -> web_sys::RtcConfiguration {
    let config = web_sys::RtcConfiguration::new();
    let arr = js_sys::Array::new();
    for server in servers {
        arr.push(&ice_server_to_js(server));
    }
    config.set_ice_servers(&arr);
    config
}

fn ice_server_to_js(server: &IceServerConfig) -> web_sys::RtcIceServer {
    let ice = web_sys::RtcIceServer::new();
    let urls = js_sys::Array::new();
    for url in &server.urls {
        urls.push(&JsValue::from_str(url));
    }
    ice.set_urls(&urls);
    if let Some(username) = &server.username {
        ice.set_username(username);
    }
    if let Some(credential) = &server.credential {
        ice.set_credential(credential);
    }
    ice
}