piral-lazy
Version:
Plugin for lazy loading third-party framework components in Piral.
2 lines (1 loc) • 1.27 kB
JavaScript
var piralLazy=(()=>{var c=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var u=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,t)=>(typeof require<"u"?require:n)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var L=(e,n)=>{for(var t in n)c(e,t,{get:n[t],enumerable:!0})},g=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of h(n))!P.call(e,r)&&r!==t&&c(e,r,{get:()=>n[r],enumerable:!(i=m(n,r))||i.enumerable});return e};var z=e=>g(c({},"__esModule",{value:!0}),e);var w={};L(w,{createLazyApi:()=>D});var p=u("react"),l=u("piral-core");function D(){return e=>n=>{let t={},i=r=>{let o=t[r];if(!o)throw new Error(`The given dependency "${r}" cannot be found. Please add it first using "defineDependency"`);return o.result??(o.result=o.loader())};return{defineDependency(r,o){t[r]={loader:o,result:void 0}},fromLazy(r,o=[]){return(0,p.lazy)(()=>Promise.all(o.map(i)).then(y=>{let s=o.reduce((a,d,f)=>(a[d]=y[f],a),{});return r().then(a=>(0,l.withApi)(e,a,n,"unknown")).then(a=>({default:d=>(0,p.createElement)(a,{deps:s,...d})}))}))}}}}return z(w);})();