diff --git a/Cargo.toml b/Cargo.toml index 9fbfee9..0423983 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" time = "0.3" [target.'cfg(target_arch = "wasm32")'.dependencies] -wasm-bindgen = "0.2" +js-sys = "0.3.57" diff --git a/src/lib.rs b/src/lib.rs index 0154fa5..c52cb88 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,18 +1,13 @@ use time::OffsetDateTime; #[cfg(target_arch = "wasm32")] -#[wasm_bindgen::prelude::wasm_bindgen(inline_js = r#" -export function unix_millis_now() { - return Date.now(); -}"#)] -extern "C" { - fn unix_millis_now() -> f64; +pub fn now_utc() -> OffsetDateTime { + return OffsetDateTime::from_unix_timestamp_nanos((js_sys::Date::now() * 1_000_000f64) as i128) + .expect("current time outside supported range"); } +#[cfg(not(target_arch = "wasm32"))] +#[inline(always)] pub fn now_utc() -> OffsetDateTime { - #[cfg(target_arch = "wasm32")] - return OffsetDateTime::from_unix_timestamp_nanos((unix_millis_now() * 1_000_000f64) as i128) - .expect("time outside supported range"); - #[cfg(not(target_arch = "wasm32"))] return OffsetDateTime::now_utc(); }