@jmodule/helper
Version:
JModule使用助手
2 lines • 2.1 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(self,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};async function r(e,t){const r=await fetch(t),[n]=(r.headers.get("Content-Type")||"").split(";");n.includes("html")||console.warn(`资源 ${t} 实际类型为 ${n}, 期望是 'text/html', 请注意检查`);const o=((e,t)=>{const r=(new DOMParser).parseFromString(e,"text/html"),n={},o=/(\bimport\b[\r\n\s]+[^'"]*\bfrom\b[\r\n\s]+['"])([^'"]+)(['"])/gm;return{js:[...r.scripts].map((e=>{let r;if(e.attributes.getNamedItem("src")&&(r=e.attributes.getNamedItem("src")?.value),e.textContent){if("importmap"===e.type)return;if("module"===e.type){const n=e.textContent.replace(o,((e,r,n,o)=>r&&n&&o?`${r}${new URL(n,t).href}${o}`:e));r=URL.createObjectURL(new Blob([n],{type:"text/javascript"}))}else r=URL.createObjectURL(new Blob([e.textContent],{type:"text/javascript"}))}return r&&(n[r]=function(e){const t={};return[...e].forEach((e=>t[e.name]=e.value)),t}(e.attributes)),r})).filter((e=>!!e)),css:[...r.querySelectorAll('style, link[rel="stylesheet"]')].map((e=>"LINK"===e.tagName?e.attributes.getNamedItem("href")?.value:"STYLE"===e.tagName&&e.textContent?URL.createObjectURL(new Blob([e.textContent],{type:"text/css"})):void 0)),jsAttributes:n}})(await r.text(),t),a=`(window.JModuleManager && window.JModuleManager.defaultJModule || window.JModule).applyResource(${JSON.stringify(o)}, "${e.url}")`;return URL.createObjectURL(new Blob([a],{type:"text/javascript"}))}return e.r(t),e.d(t,{default:function(){return r}}),t}()}));
//# sourceMappingURL=resource.html.js.map