vue-admin-core
Version:
A Component Library for Vue 3
1 lines • 2.56 kB
Source Map (JSON)
{"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;;;;"}