Chocobozzz/PeerTube

View on GitHub
server/core/helpers/debounce.ts

Summary

Maintainability
A
0 mins
Test Coverage
export function Debounce (config: { timeoutMS: number }) {
  let timeoutRef: NodeJS.Timeout

  return function (_target, _key, descriptor: PropertyDescriptor) {
    const original = descriptor.value

    descriptor.value = function (...args: any[]) {
      clearTimeout(timeoutRef)

      timeoutRef = setTimeout(() => {
        original.apply(this, args)
      }, config.timeoutMS)
    }
  }
}