{"version":3,"file":"useDebouncePlugin.mjs","sources":["../../../../../../../package/hooks/useRequest/src/plugins/useDebouncePlugin.ts"],"sourcesContent":["import type { DebouncedFunc, DebounceSettings } from \"lodash-es\";\nimport { debounce } from \"lodash-es\";\nimport type { Plugin } from \"../types\";\nimport { onUnmounted } from \"vue\";\n\nconst useDebouncePlugin: Plugin<any, any[]> = (\n  fetchInstance,\n  { debounceWait, debounceLeading, debounceTrailing, debounceMaxWait }\n) => {\n  let debounced: DebouncedFunc<any>;\n\n  const options: DebounceSettings = {};\n  if (debounceLeading !== undefined) {\n    options.leading = debounceLeading;\n  }\n  if (debounceTrailing !== undefined) {\n    options.trailing = debounceTrailing;\n  }\n  if (debounceMaxWait !== undefined) {\n    options.maxWait = debounceMaxWait;\n  }\n\n  if (debounceWait) {\n    const _originRunAsync = fetchInstance.runAsync.bind(fetchInstance);\n    debounced = debounce(\n      (callback: () => any) => {\n        callback();\n      },\n      debounceWait,\n      options\n    );\n    fetchInstance.runAsync = (...args) => {\n      return new Promise((resolve, reject) => {\n        debounced(() => {\n          _originRunAsync(...args)\n            .then(resolve)\n            .catch(reject);\n        });\n      });\n    };\n\n    onUnmounted(() => {\n      debounced.cancel();\n      fetchInstance.runAsync = _originRunAsync;\n    });\n  }\n\n  if (!debounceWait) {\n    return {};\n  }\n\n  return {\n    onCancel: () => {\n      debounced?.cancel();\n    }\n  };\n};\n\nexport default useDebouncePlugin;\n"],"names":[],"mappings":";;;AAKM,MAAA,iBAAA,GAAwC,CAC5C,aACA,EAAA,EAAE,cAAc,eAAiB,EAAA,gBAAA,EAAkB,iBAChD,KAAA;AACH,EAAI,IAAA,SAAA,CAAA;AAEJ,EAAA,MAAM,UAA4B,EAAC,CAAA;AACnC,EAAA,IAAI,oBAAoB,KAAW,CAAA,EAAA;AACjC,IAAA,OAAA,CAAQ,OAAU,GAAA,eAAA,CAAA;AAAA,GACpB;AACA,EAAA,IAAI,qBAAqB,KAAW,CAAA,EAAA;AAClC,IAAA,OAAA,CAAQ,QAAW,GAAA,gBAAA,CAAA;AAAA,GACrB;AACA,EAAA,IAAI,oBAAoB,KAAW,CAAA,EAAA;AACjC,IAAA,OAAA,CAAQ,OAAU,GAAA,eAAA,CAAA;AAAA,GACpB;AAEA,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,MAAM,eAAkB,GAAA,aAAA,CAAc,QAAS,CAAA,IAAA,CAAK,aAAa,CAAA,CAAA;AACjE,IAAY,SAAA,GAAA,QAAA;AAAA,MACV,CAAC,QAAwB,KAAA;AACvB,QAAS,QAAA,EAAA,CAAA;AAAA,OACX;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,KACF,CAAA;AACA,IAAc,aAAA,CAAA,QAAA,GAAW,IAAI,IAAS,KAAA;AACpC,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACtC,QAAA,SAAA,CAAU,MAAM;AACd,UAAA,eAAA,CAAgB,GAAG,IAAI,CAAA,CACpB,KAAK,OAAO,CAAA,CACZ,MAAM,MAAM,CAAA,CAAA;AAAA,SAChB,CAAA,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KACH,CAAA;AAEA,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,SAAA,CAAU,MAAO,EAAA,CAAA;AACjB,MAAA,aAAA,CAAc,QAAW,GAAA,eAAA,CAAA;AAAA,KAC1B,CAAA,CAAA;AAAA,GACH;AAEA,EAAA,IAAI,CAAC,YAAc,EAAA;AACjB,IAAA,OAAO,EAAC,CAAA;AAAA,GACV;AAEA,EAAO,OAAA;AAAA,IACL,UAAU,MAAM;AACd,MAAW,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,MAAA,EAAA,CAAA;AAAA,KACb;AAAA,GACF,CAAA;AACF;;;;"}