25 lines
551 B
JavaScript
25 lines
551 B
JavaScript
class UtilityService {
|
|
_debounce_timeouts = {}
|
|
|
|
uuid() {
|
|
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
|
|
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
|
|
)
|
|
}
|
|
|
|
debounce(handler = () => {}, delay = 500) {
|
|
let timeout = null
|
|
|
|
return (...args) => {
|
|
clearTimeout(timeout)
|
|
|
|
timeout = setTimeout(() => {
|
|
handler(...args)
|
|
}, delay)
|
|
}
|
|
}
|
|
}
|
|
|
|
const utility = new UtilityService()
|
|
export { utility }
|