UNPKG

@inworld/web-core

Version:
34 lines (33 loc) 1.08 kB
export const protoTimestamp = (date) => (date !== null && date !== void 0 ? date : new Date()).toISOString(); export const isIOSMobile = () => /iPad|iPhone|iPod/.test(navigator.userAgent); export const interpolate = (p) => 0.5 - Math.cos(p * Math.PI) / 2; export const safeJSONParse = (str) => { try { return JSON.parse(str); } catch (_a) { return undefined; } }; export const objectsAreEqual = (a, b, keys) => { for (const key of keys) { if (a[key] !== b[key]) { return false; } } return true; }; export const calculateTimeDifference = (from, to) => { const durationMilliseconds = to.getTime() - from.getTime(); let seconds = Math.floor(durationMilliseconds / 1000); let nanos = Math.round((durationMilliseconds / 1000 - seconds) * 1000000000); if (seconds < 0 && nanos > 0) { seconds += 1; nanos -= 1000000000; } else if (seconds > 0 && nanos < 0) { seconds -= 1; nanos += 1000000000; } return `${(seconds + nanos / 1000000000).toFixed(9)}s`; };