@feedma/vue-gen-ui-resolver
Version:
A vue js version for dynamic resolution of gen ui components
2 lines (1 loc) • 2.5 kB
JavaScript
;var c=Object.create;var m=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var _=(t,o,r,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of p(o))!f.call(t,a)&&a!==r&&m(t,a,{get:()=>o[a],enumerable:!(s=d(o,a))||s.enumerable});return t};var g=(t,o,r)=>(r=t!=null?c(u(t)):{},_(o||!t||!t.__esModule?m(r,"default",{value:t,enumerable:!0}):r,t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),v={key:0,class:"error"},y=e.defineComponent({__name:"DynamicRemoteComponentLoader",props:{url:{},name:{},module:{},props:{}},setup(t){const o=t,r=e.ref(null),s=async()=>{const n=await import("__federation__");return n.__federation_method_getRemote&&n.__federation_method_setRemote?{getRemote:n.__federation_method_getRemote,setRemote:n.__federation_method_setRemote}:null},a=e.defineAsyncComponent({loader:async()=>{try{console.log("Loading remote component:",o.name,o.url,o.module);const n=await s();if(!n)throw new Error("Module federation is not configured. Please ensure @originjs/vite-plugin-federation is properly set up in your host application. The host application must configure the federation plugin and expose the federation runtime.");n.setRemote(o.name,{url:()=>Promise.resolve(o.url),format:"esm",from:"vite"});const l=await n.getRemote(o.name,o.module);return console.log("Remote component loaded successfully"),l}catch(n){const l=n instanceof Error?n.message:String(n);throw console.error("Error loading remote component:",n),r.value=l,n}},errorComponent:{template:'<div class="error">Failed to load remote component</div>'}});return(n,l)=>(e.openBlock(),e.createElementBlock("div",null,[r.value?(e.openBlock(),e.createElementBlock("div",v,[l[0]||(l[0]=e.createElementVNode("h3",null,"Error loading remote component:",-1)),e.createElementVNode("pre",null,e.toDisplayString(r.value),1)])):(e.openBlock(),e.createBlock(e.Suspense,{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(a),e.normalizeProps(e.guardReactiveProps(o.props)),null,16)]),fallback:e.withCtx(()=>l[1]||(l[1]=[e.createElementVNode("div",null,"Loading remote component...",-1)])),_:1}))]))}}),h=(t,o)=>{const r=t.__vccOpts||t;for(const[s,a]of o)r[s]=a;return r},i=h(y,[["__scopeId","data-v-196060d2"]]),R={install(t){t.component("DynamicRemoteComponentLoader",i)}};exports.DynamicRemoteComponentLoader=i;exports.default=R;