UNPKG

@mntm/stats

Version:

A package for integrating analytics tools

29 lines (28 loc) 871 B
import { safeDocument, safeWindow } from './dom.js'; // Internal export const loadScript = (src) => { return new Promise((resolve, reject) => { // Wait execute const onSuccess = () => safeWindow.setTimeout(resolve, 0); const onFail = () => safeWindow.setTimeout(reject, 0); // Dont block event loop safeWindow.requestAnimationFrame(() => { safeDocument.body.appendChild(Object.assign(safeDocument.createElement('script'), { src, type: 'text/javascript', async: true, onload: onSuccess, onabort: onFail, onerror: onFail })); }); }); }; export const thenable = (ready, fn) => { return ready.then(() => { fn(); return true; }).catch(() => { return false; }); };