UNPKG

@streambird/streambird-js

Version:
72 lines (69 loc) 2.25 kB
const PUBLIC_URL = 'https://js.streambird.io/sdk/dist/v1.0.20/streambird.js'; function getJSUrl() { try { if (process.env.STREAMBIRD_JS_SDK_URL) { return process.env.STREAMBIRD_JS_SDK_URL; } if (process.env.REACT_APP_STREAMBIRD_JS_SDK_URL) { return process.env.REACT_APP_STREAMBIRD_JS_SDK_URL; } if (process.env.NEXT_PUBLIC_STREAMBIRD_JS_SDK_URL) { return process.env.NEXT_PUBLIC_STREAMBIRD_JS_SDK_URL; } if (process.env.STORYBOOK_STREAMBIRD_JS_SDK_URL) { return process.env.STORYBOOK_STREAMBIRD_JS_SDK_URL; } return PUBLIC_URL; } catch (err) { return PUBLIC_URL; } } const STREAMBIRD_JS_URL = getJSUrl(); const findOrCreateScript = () => { const scripts = document.querySelectorAll(`script[src="${STREAMBIRD_JS_URL}"]`); if (scripts[0]) { return scripts[0]; } const script = document.createElement('script'); script.src = STREAMBIRD_JS_URL; document.head.appendChild(script); return script; }; const loadScript = () => { const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined'; if (!isBrowser) { return Promise.resolve(null); } return new Promise((resolve, reject) => { if (window.Streambird) { console.warn('Streambird.js has already been loaded'); resolve(window.Streambird); } const script = findOrCreateScript(); script.addEventListener('load', () => { if (window.Streambird) { resolve(window.Streambird); } else { reject(new Error('Streambird.js could not be loaded')); } }); script.addEventListener('error', () => { reject(new Error('Streambird.js could not be loaded')); }); }); }; const streambirdPromise = Promise.resolve().then(() => loadScript()); let loadCalled = false; streambirdPromise.catch((err) => { if (!loadCalled) { console.warn(err); } }); const loadStreambird = () => { loadCalled = true; return streambirdPromise; }; export { loadStreambird }; //# sourceMappingURL=index.esm.js.map