@alugha/ima
Version:
A library for asynchronously loading the Google IMA SDK with static typing for the SDK
20 lines (19 loc) • 591 B
JavaScript
import loadScript from "./loadScript";
const imaSdkSrc = "https://imasdk.googleapis.com/js/sdkloader/ima3.js";
let pendingPromise = null;
const promiseFinished = () => {
pendingPromise = null;
};
const loadImaSdk = () => {
const w = window;
if (w.google && w.google.ima) {
return Promise.resolve(w.google.ima);
}
if (pendingPromise) {
return pendingPromise;
}
pendingPromise = loadScript(imaSdkSrc).then(() => w.google.ima);
pendingPromise.then(promiseFinished).catch(promiseFinished);
return pendingPromise;
};
export default loadImaSdk;