@mornya/dynamic-load-libs
Version:
The project of Dynamic Loadable script and style library.
1 lines • 2.15 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.script=function script(d){return new Promise(function(e,t){var r,n,i,o=document.getElementById(d.id);o&&!d.isReload?e(!1):(d.isReload&&null!=o&&o.remove(),(n=document.createElement("script")).id=d.id,n.type=null!=(r=d.type)?r:"text/javascript",d.text?(n.innerText=d.text,document.getElementsByTagName("head")[0].appendChild(n),e(!0)):(i=!1,d.src&&(n.src=d.src),n.async=!0,n.onreadystatechange=function(){"loaded"!==this.readyState&&"complete"!==this.readyState||!i?i=!0:this.onload()},n.onload=function(){return e(!0)},n.onerror=function(){null!=o&&o.remove(),t(new Error("Failed to load script: ".concat(d.src)))},void 0!==d.noModule&&(n.noModule=d.noModule),void 0!==d.nonce&&(n.nonce=d.nonce),void 0!==d.crossOrigin&&(n.crossOrigin=d.crossOrigin),void 0!==d.integrity&&(n.integrity=d.integrity),void 0!==d.referrerPolicy&&(n.referrerPolicy=d.referrerPolicy),document.getElementsByTagName("head")[0].appendChild(n)))})},exports.style=function style(d){return new Promise(function(e,t){var r,n,i,o=document.getElementById(d.id);o&&!d.isReload?e(!1):d.text?((i=document.createElement("style")).id=d.id,i.innerText=d.text,void 0!==d.media&&(i.media=d.media),void 0!==d.nonce&&(i.nonce=d.nonce),document.getElementsByTagName("head")[0].appendChild(i),e(!0)):(n=!1,(i=document.createElement("link")).type=null!=(r=d.type)?r:"text/css",i.rel=d.isAlternate?"alternate stylesheet":"stylesheet",i.id=d.id,d.src&&(i.href=d.src),i.onreadystatechange=function(){"loaded"!==this.readyState&&"complete"!==this.readyState||!n?n=!0:this.onload()},i.onload=function(){return e(!0)},i.onerror=function(){null!=o&&o.remove(),t(new Error("Failed to load style: ".concat(d.src)))},void 0!==d.media&&(i.media=d.media),void 0!==d.imageSizes&&null!=(r=d.type)&&r.startsWith("image/")&&(i.imageSizes=d.imageSizes),void 0!==d.preloadAs&&void 0!==d.type&&(i.rel="preload",i.as=d.preloadAs),void 0!==d.crossOrigin&&(i.crossOrigin=d.crossOrigin),void 0!==d.integrity&&(i.integrity=d.integrity),void 0!==d.referrerPolicy&&(i.referrerPolicy=d.referrerPolicy),document.getElementsByTagName("head")[0].appendChild(i))})};