Packages
oaspec
0.55.0
0.68.0
0.67.0
0.66.0
0.65.0
0.64.0
0.63.0
0.62.0
0.61.0
0.60.0
0.59.0
0.58.1
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.3
0.6.1
0.6.0
0.5.0
0.4.0
0.3.0
0.1.3
Generate Gleam code from OpenAPI 3.x specifications
Current section
Files
Jump to
Current section
Files
src/oaspec_ffi.mjs
// JavaScript-target counterparts for the helpers exposed in
// oaspec_ffi.erl. Only functions actually called from cross-target
// Gleam modules need a JS implementation; the BEAM-only CLI helpers
// (find_executable, run_executable, is_stdout_tty, no_color_set) are
// not declared with a JS @external and therefore do not need a JS
// version here.
export function monotonic_ms() {
// performance.now() is monotonic (unaffected by system clock changes)
// and available in modern Node (>= 16) and all browsers. Fall back to
// Date.now() if performance is somehow unavailable; the elapsed-time
// semantics tolerate the slight loss of monotonicity for the brief
// intervals oaspec actually measures.
const ms =
typeof performance !== "undefined" &&
typeof performance.now === "function"
? performance.now()
: Date.now();
return Math.trunc(ms);
}