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