function createExternalScript( src: string, onLoadCallback?: () => any | null ): HTMLScriptElement { const externalScript = document.createElement('script'); externalScript.setAttribute('type', 'text/javascript'); externalScript.setAttribute('language', 'javascript'); externalScript.setAttribute('src', src); externalScript.onload = () => { if (!!onLoadCallback) { onLoadCallback(); } }; return externalScript; } export default function insertExternalScript( src: string, rootElement: HTMLElement | null, onLoadCallback?: () => any | null ): HTMLScriptElement { const externalScript = createExternalScript(src, onLoadCallback); if (!!rootElement) { rootElement.insertAdjacentElement('afterend', externalScript); } return externalScript; }