]>
Commit | Line | Data |
---|---|---|
0c9668f7 C |
1 | export function Debounce (config: { timeoutMS: number }) { |
2 | let timeoutRef: NodeJS.Timeout | |
3 | ||
4 | return function (_target, _key, descriptor: PropertyDescriptor) { | |
5 | const original = descriptor.value | |
6 | ||
7 | descriptor.value = function (...args: any[]) { | |
8 | clearTimeout(timeoutRef) | |
9 | ||
10 | timeoutRef = setTimeout(() => { | |
11 | original.apply(this, args) | |
12 | ||
13 | }, config.timeoutMS) | |
14 | } | |
15 | } | |
16 | } |