UNPKG

@tubular/time

Version:

Date/time, IANA timezones, leap seconds, TAI/UTC conversions, calendar with settable Julian/Gregorian switchover

56 lines 2.52 kB
export const zonePollerBrowser = { getLatestVersion(url) { return new Promise((resolve, reject) => { const head = document.querySelector('head'); const script = document.createElement('script'); const callbackName = 'tt_zp_callback_' + (1000000 + Math.floor(Math.random() * 9000000)); let version = ''; window[callbackName] = (data) => { if (typeof data === 'string') version = data; else version = new Error('Invalid data for tz version from ' + url); }; head.appendChild(script); script.onload = () => { script.remove(); window[callbackName] = undefined; if (version instanceof Error) reject(version); else resolve(version); }; script.onerror = () => { script.remove(); reject(new Error('Failed to retrieve latest tz version from ' + url)); }; script.src = `${url}?callback=${callbackName}`; }); }, getTimezones(url) { return new Promise((resolve, reject) => { const head = document.querySelector('head'); const script = document.createElement('script'); const w = window; head.appendChild(script); script.onload = () => { var _a, _b, _c; const zoneData = w.tbTime_timezone_small || w.tbTime_timezone_large || w.tbTime_timezone_large_alt; script.remove(); w.tbTime_tzcache_small = (_a = w.tbTime_timezone_small) !== null && _a !== void 0 ? _a : w.tbTime_tzcache_small; delete w.tbTime_timezone_small; w.tbTime_tzcache_large = (_b = w.tbTime_timezone_large) !== null && _b !== void 0 ? _b : w.tbTime_tzcache_large; delete w.tbTime_timezone_large; w.tbTime_tzcache_large_alt = (_c = w.tbTime_timezone_large_alt) !== null && _c !== void 0 ? _c : w.tbTime_tzcache_large_alt; delete w.tbTime_timezone_large_alt; resolve(zoneData); }; script.onerror = () => { script.remove(); reject(new Error('Failed to load timezone definitions from ' + url)); }; script.src = url; }); } }; //# sourceMappingURL=zone-poller-browser.js.map