{"version":3,"file":"useRequestImplement.mjs","sources":["../../../../../../package/hooks/useRequest/src/useRequestImplement.ts"],"sourcesContent":["import { onMounted, onUnmounted, toValue } from \"vue\";\n\nimport Fetch from \"./Fetch\";\nimport type { Options, Plugin, Result, Service } from \"./types\";\nimport { isEmpty } from \"lodash-es\";\n\nfunction useRequestImplement<TData, TParams extends any[]>(\n  service: Service<TData, TParams>,\n  options: Options<TData, TParams> = {},\n  plugins: Plugin<TData, TParams>[] = []\n) {\n  const { manual = false, ...rest } = options;\n\n  const fetchOptions = {\n    manual,\n    ...rest\n  };\n\n  const initState = plugins.map((p) => p?.onInit?.(fetchOptions)).filter(Boolean);\n\n  const fetchInstance = new Fetch<TData, TParams>(\n    service,\n    fetchOptions,\n    Object.assign({}, ...initState)\n  );\n\n  fetchInstance.options = fetchOptions;\n  // run all plugins hooks\n  fetchInstance.pluginImpls = plugins.map((p) => p(fetchInstance, fetchOptions));\n\n  onMounted(() => {\n    if (!manual) {\n      let params: any[] = toValue(options.defaultParams || []);\n      if (!isEmpty(toValue(fetchInstance.params))) {\n        params = toValue(fetchInstance.params);\n      }\n      // @ts-ignore\n      fetchInstance.run(...params);\n    }\n  });\n\n  onUnmounted(() => {\n    fetchInstance.cancel();\n  });\n\n  return {\n    loading: fetchInstance.loading,\n    data: fetchInstance.data,\n    error: fetchInstance.error,\n    params: fetchInstance.params || [],\n    cancel: fetchInstance.cancel.bind(fetchInstance),\n    refresh: fetchInstance.refresh.bind(fetchInstance),\n    refreshAsync: fetchInstance.refreshAsync.bind(fetchInstance),\n    run: fetchInstance.run.bind(fetchInstance),\n    runAsync: fetchInstance.runAsync.bind(fetchInstance),\n    mutate: fetchInstance.mutate.bind(fetchInstance)\n  } as Result<TData, TParams>;\n}\n\nexport default useRequestImplement;\n"],"names":[],"mappings":";;;;AAMA,SAAS,oBACP,OACA,EAAA,OAAA,GAAmC,EACnC,EAAA,OAAA,GAAoC,EACpC,EAAA;AACA,EAAA,MAAM,EAAE,MAAA,GAAS,KAAO,EAAA,GAAG,MAAS,GAAA,OAAA,CAAA;AAEpC,EAAA,MAAM,YAAe,GAAA;AAAA,IACnB,MAAA;AAAA,IACA,GAAG,IAAA;AAAA,GACL,CAAA;AAEA,EAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,CAAG,KAAA;AAlBpC,IAAA,IAAA,EAAA,CAAA;AAkBuC,IAAA,OAAA,CAAA,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAG,WAAH,IAAY,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,CAAA,EAAA,YAAA,CAAA,CAAA;AAAA,GAAa,CAAA,CAAE,OAAO,OAAO,CAAA,CAAA;AAE9E,EAAA,MAAM,gBAAgB,IAAI,KAAA;AAAA,IACxB,OAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAO,CAAA,MAAA,CAAO,EAAC,EAAG,GAAG,SAAS,CAAA;AAAA,GAChC,CAAA;AAEA,EAAA,aAAA,CAAc,OAAU,GAAA,YAAA,CAAA;AAExB,EAAc,aAAA,CAAA,WAAA,GAAc,QAAQ,GAAI,CAAA,CAAC,MAAM,CAAE,CAAA,aAAA,EAAe,YAAY,CAAC,CAAA,CAAA;AAE7E,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA,IAAI,MAAgB,GAAA,OAAA,CAAQ,OAAQ,CAAA,aAAA,IAAiB,EAAE,CAAA,CAAA;AACvD,MAAA,IAAI,CAAC,OAAQ,CAAA,OAAA,CAAQ,aAAc,CAAA,MAAM,CAAC,CAAG,EAAA;AAC3C,QAAS,MAAA,GAAA,OAAA,CAAQ,cAAc,MAAM,CAAA,CAAA;AAAA,OACvC;AAEA,MAAc,aAAA,CAAA,GAAA,CAAI,GAAG,MAAM,CAAA,CAAA;AAAA,KAC7B;AAAA,GACD,CAAA,CAAA;AAED,EAAA,WAAA,CAAY,MAAM;AAChB,IAAA,aAAA,CAAc,MAAO,EAAA,CAAA;AAAA,GACtB,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,SAAS,aAAc,CAAA,OAAA;AAAA,IACvB,MAAM,aAAc,CAAA,IAAA;AAAA,IACpB,OAAO,aAAc,CAAA,KAAA;AAAA,IACrB,MAAA,EAAQ,aAAc,CAAA,MAAA,IAAU,EAAC;AAAA,IACjC,MAAQ,EAAA,aAAA,CAAc,MAAO,CAAA,IAAA,CAAK,aAAa,CAAA;AAAA,IAC/C,OAAS,EAAA,aAAA,CAAc,OAAQ,CAAA,IAAA,CAAK,aAAa,CAAA;AAAA,IACjD,YAAc,EAAA,aAAA,CAAc,YAAa,CAAA,IAAA,CAAK,aAAa,CAAA;AAAA,IAC3D,GAAK,EAAA,aAAA,CAAc,GAAI,CAAA,IAAA,CAAK,aAAa,CAAA;AAAA,IACzC,QAAU,EAAA,aAAA,CAAc,QAAS,CAAA,IAAA,CAAK,aAAa,CAAA;AAAA,IACnD,MAAQ,EAAA,aAAA,CAAc,MAAO,CAAA,IAAA,CAAK,aAAa,CAAA;AAAA,GACjD,CAAA;AACF;;;;"}