tav-ui
Version:
1 lines • 2.34 kB
Source Map (JSON)
{"version":3,"file":"useScript2.mjs","sources":["../../../../../../packages/hooks/web/useScript.ts"],"sourcesContent":["import { onMounted, onUnmounted, ref } from 'vue'\n\ninterface ScriptOptions {\n src: string\n}\n\nexport function useScript(opts: ScriptOptions) {\n const isLoading = ref(false)\n const error = ref(false)\n const success = ref(false)\n let script: HTMLScriptElement\n\n const promise = new Promise((resolve, reject) => {\n onMounted(() => {\n script = document.createElement('script')\n script.type = 'text/javascript'\n script.onload = function () {\n isLoading.value = false\n success.value = true\n error.value = false\n resolve('')\n }\n\n script.onerror = function (err) {\n isLoading.value = false\n success.value = false\n error.value = true\n reject(err)\n }\n\n script.src = opts.src\n document.head.appendChild(script)\n })\n })\n\n onUnmounted(() => {\n script && script.remove()\n })\n\n return {\n isLoading,\n error,\n success,\n toPromise: () => promise,\n }\n}\n"],"names":[],"mappings":";;AACO,SAAS,SAAS,CAAC,IAAI,EAAE;AAChC,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,EAAE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,EAAE,IAAI,MAAM,CAAC;AACb,EAAE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACnD,IAAI,SAAS,CAAC,MAAM;AACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;AACtC,MAAM,MAAM,CAAC,MAAM,GAAG,WAAW;AACjC,QAAQ,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;AAChC,QAAQ,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;AAC7B,QAAQ,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AAC5B,QAAQ,OAAO,CAAC,EAAE,CAAC,CAAC;AACpB,OAAO,CAAC;AACR,MAAM,MAAM,CAAC,OAAO,GAAG,SAAS,GAAG,EAAE;AACrC,QAAQ,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;AAChC,QAAQ,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9B,QAAQ,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AAC3B,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,OAAO,CAAC;AACR,MAAM,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAC5B,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACxC,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,EAAE,WAAW,CAAC,MAAM;AACpB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;AAC9B,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI,SAAS,EAAE,MAAM,OAAO;AAC5B,GAAG,CAAC;AACJ;;;;"}