UNPKG

dynamic-import-polyfill

Version:
2 lines (1 loc) 726 B
function e({modulePath:e=".",importFunctionName:t="__import__"}={}){try{self[t]=new Function("u","return import(u)")}catch(o){const r=new URL(e,location),n=e=>{URL.revokeObjectURL(e.src),e.remove()};self[t]=e=>new Promise((o,a)=>{const c=new URL(e,r);if(self[t].moduleMap[c])return o(self[t].moduleMap[c]);const l=new Blob([`import * as m from '${c}';`,`${t}.moduleMap['${c}']=m;`],{type:"text/javascript"}),m=Object.assign(document.createElement("script"),{type:"module",src:URL.createObjectURL(l),onerror(){a(new Error(`Failed to import: ${e}`)),n(m)},onload(){o(self[t].moduleMap[c]),n(m)}});document.head.appendChild(m)}),self[t].moduleMap={}}}var t=Object.freeze({initialize:e});export default t;export{e as initialize};