UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

60 lines (46 loc) 1.45 kB
import { createLogger } from "../logger"; export const logger = createLogger({ category: "ImaDomUtils", subsystem: "Player/ImaDomUtils", }); const { log_debug, log_error, log_verbose } = logger; const removeElement = (node) => { if (node) { const parentNode = node.parentNode; if (parentNode) { parentNode.removeChild(node); } } }; // TODO: This should probably be loaded to root of project before player init export const loadIMAScript = async () => { return new Promise((resolve) => { // If ima script is already loaded, resolve const imaScript = document.getElementById("ima-script"); if (imaScript) { log_verbose("loadIMAScript: IMA script already loaded"); return resolve(true); } const script = document.createElement("script"); if (__DEV__) { script.src = "https://imasdk.googleapis.com/js/sdkloader/ima3_debug.js"; } else { script.src = "https://imasdk.googleapis.com/js/sdkloader/ima3.js"; } script.async = true; script.id = "ima-script"; script.onload = () => { removeElement(script); log_debug("loadIMAScript: Loaded ima script", script.src); resolve(true); }; script.onerror = (_e) => { removeElement(script); log_error("loadIMAScript: Failed to load ima script", script.src); resolve(false); }; if (document.head) { document.head.appendChild(script); } }); };