{"version":3,"file":"hel-loader.mjs","sources":["../../../../packages/utils/hel-loader.ts"],"sourcesContent":["import * as Vue from 'vue'\nimport { defineAsyncComponent } from 'vue'\nimport { preFetchLib, bindVueRuntime } from 'hel-micro-wujie'\nimport { isClient } from '@vueuse/core'\n\nbindVueRuntime({ Vue })\n\nconst loadRemoteComponents = ({\n  libName,\n  libUrl,\n  libVersion,\n  componentNames,\n}: {\n  libName: string\n  libUrl: string\n  libVersion: string\n  componentNames: string[]\n}) => {\n  const components: Array<ReturnType<typeof defineAsyncComponent>> = []\n  let lib: any = null\n\n  if (!isClient) return components\n\n  componentNames.forEach(n => {\n    components.push(defineAsyncComponent(() => {\n      return new Promise(async (resolve, reject) => {\n        if (!lib) {\n          try {\n            lib = await preFetchLib(libName, {\n              custom: {\n                host: libUrl,\n              },\n              versionId: libVersion,\n            })\n          } catch(e) {\n            reject('loadRemoteComponents: ' + e)\n          }\n        }\n        resolve(lib[n])\n      })\n    }))\n  })\n  return components\n}\n\nconst loadRemoteOthers = async ({\n  libName,\n  libUrl,\n  libVersion,\n  names,\n}: {\n  libName: string\n  libUrl: string\n  libVersion: string\n  names: string[]\n}) => {\n  const others: any[] = []\n\n  if (!isClient) return others\n\n  const lib = await preFetchLib(libName, {\n    custom: {\n      host: libUrl,\n    },\n    versionId: libVersion,\n  })\n  names.forEach(n => {\n    others.push(lib[n])\n  })\n  return others\n}\n\nexport {\n  loadRemoteComponents,\n  loadRemoteOthers,\n}\n"],"names":[],"mappings":";;;;;AAKA,cAAA,CAAe,EAAE,GAAA,EAAA,CAAA,CAAA;AAEjB,MAAM,uBAAuB,CAAC;AAAA,EAC5B,OAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,CAMI,KAAA;AACJ,EAAA,MAAM,UAA6D,GAAA,EAAA,CAAA;AACnE,EAAA,IAAI,GAAW,GAAA,IAAA,CAAA;AAEf,EAAA,IAAI,CAAC,QAAA;AAAU,IAAO,OAAA,UAAA,CAAA;AAEtB,EAAA,cAAA,CAAe,QAAQ,CAAK,CAAA,KAAA;AAC1B,IAAW,UAAA,CAAA,IAAA,CAAK,qBAAqB,MAAM;AACzC,MAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,EAAS,MAAW,KAAA;AAC5C,QAAA,IAAI,CAAC,GAAK,EAAA;AACR,UAAI,IAAA;AACF,YAAM,GAAA,GAAA,MAAM,YAAY,OAAS,EAAA;AAAA,cAC/B,MAAQ,EAAA;AAAA,gBACN,IAAM,EAAA,MAAA;AAAA,eAAA;AAAA,cAER,SAAW,EAAA,UAAA;AAAA,aAAA,CAAA,CAAA;AAAA,WAAA,CAAA,OAEP,CAAN,EAAA;AACA,YAAA,MAAA,CAAO,wBAA2B,GAAA,CAAA,CAAA,CAAA;AAAA,WAAA;AAAA,SAAA;AAGtC,QAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAIlB,EAAO,OAAA,UAAA,CAAA;AAAA,EAAA;AAGT,MAAM,mBAAmB,OAAO;AAAA,EAC9B,OAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,CAMI,KAAA;AACJ,EAAA,MAAM,MAAgB,GAAA,EAAA,CAAA;AAEtB,EAAA,IAAI,CAAC,QAAA;AAAU,IAAO,OAAA,MAAA,CAAA;AAEtB,EAAM,MAAA,GAAA,GAAM,MAAM,WAAA,CAAY,OAAS,EAAA;AAAA,IACrC,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,MAAA;AAAA,KAAA;AAAA,IAER,SAAW,EAAA,UAAA;AAAA,GAAA,CAAA,CAAA;AAEb,EAAA,KAAA,CAAM,QAAQ,CAAK,CAAA,KAAA;AACjB,IAAA,MAAA,CAAO,KAAK,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAElB,EAAO,OAAA,MAAA,CAAA;AAAA;;;;"}