{"version":3,"file":"useThrottlePlugin.mjs","sources":["../../../../../../../package/hooks/useRequest/src/plugins/useThrottlePlugin.ts"],"sourcesContent":["import type { DebouncedFunc, ThrottleSettings } from \"lodash-es\";\nimport { throttle } from \"lodash-es\";\nimport type { Plugin } from \"../types\";\n\nconst useThrottlePlugin: Plugin<any, any[]> = (\n  fetchInstance,\n  { throttleWait, throttleLeading, throttleTrailing }\n) => {\n  let throttled: DebouncedFunc<any>;\n\n  const options: ThrottleSettings = {};\n  if (throttleLeading !== undefined) {\n    options.leading = throttleLeading;\n  }\n  if (throttleTrailing !== undefined) {\n    options.trailing = throttleTrailing;\n  }\n\n  if (throttleWait) {\n    const _originRunAsync = fetchInstance.runAsync.bind(fetchInstance);\n\n    throttled = throttle(\n      (callback: () => void) => {\n        callback();\n      },\n      throttleWait,\n      options\n    );\n\n    // throttle runAsync should be promise\n    // https://github.com/lodash/lodash/issues/4400#issuecomment-834800398\n    fetchInstance.runAsync = (...args) => {\n      return new Promise((resolve, reject) => {\n        throttled?.(() => {\n          _originRunAsync(...args)\n            .then(resolve)\n            .catch(reject);\n        });\n      });\n    };\n  }\n\n  if (!throttleWait) {\n    return {};\n  }\n\n  return {\n    onCancel: () => {\n      throttled?.cancel();\n    }\n  };\n};\n\nexport default useThrottlePlugin;\n"],"names":[],"mappings":";;AAIA,MAAM,oBAAwC,CAC5C,aAAA,EACA,EAAE,YAAc,EAAA,eAAA,EAAiB,kBAC9B,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;AAEA,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,MAAM,eAAkB,GAAA,aAAA,CAAc,QAAS,CAAA,IAAA,CAAK,aAAa,CAAA,CAAA;AAEjE,IAAY,SAAA,GAAA,QAAA;AAAA,MACV,CAAC,QAAyB,KAAA;AACxB,QAAS,QAAA,EAAA,CAAA;AAAA,OACX;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,KACF,CAAA;AAIA,IAAc,aAAA,CAAA,QAAA,GAAW,IAAI,IAAS,KAAA;AACpC,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACtC,QAAA,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAY,MAAM;AAChB,UAAA,eAAA,CAAgB,GAAG,IAAI,CAAA,CACpB,KAAK,OAAO,CAAA,CACZ,MAAM,MAAM,CAAA,CAAA;AAAA,SACjB,CAAA,CAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH,CAAA;AAAA,GACF;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;;;;"}