UNPKG

@adyen/adyen-platform-experience-web

Version:

![Platform Experience header](https://github.com/Adyen/adyen-platform-experience-web/assets/7926613/18094965-9e01-450e-8dc9-ea84e6b22c2b)

32 lines (31 loc) 1.03 kB
import { DEFAULT_INTERVAL_MS as c, MAX_INTERVAL_MS as b } from "./constants.js"; import { clamp as T } from "../../../utils/value/number.js"; import { struct as g } from "../../../utils/struct/main.js"; import { enumerable as o } from "../../../utils/struct/property.js"; import { boolOrFalse as F } from "../../../utils/value/bool.js"; const x = (u, n = c, f = !1) => { var i; let e = new AbortController(), t = T(0, ~~n, b), l = F(f); Number.isFinite(t) || (t = c); const a = ((i = document.timeline) == null ? void 0 : i.currentTime) ?? performance.now(), d = () => { e == null || e.abort(), e = void 0; }, p = (r) => { !e || e.signal.aborted || (s(r), u(r)); }, s = (r) => { let m = 0; if (!l) { const _ = r - a, A = Math.round(_ / t) * t; m = a + A + t - performance.now(); } setTimeout(() => requestAnimationFrame(p), m); }; return s(a), l = !1, g({ cancel: o(d), delay: o(n), signal: o(e.signal) }); }; export { x as createInterval, x as default };