]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - debounce.ts
77d99a894ce9fbda77a98d5c34301efa138481e0
[github/Chocobozzz/PeerTube.git] / debounce.ts
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 }