-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.js
More file actions
33 lines (28 loc) · 806 Bytes
/
utils.js
File metadata and controls
33 lines (28 loc) · 806 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
export const byId = (id) => document.getElementById(id);
export const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
export const debounce = (func, wait) => {
let timeout;
return (...args) => {
clearTimeout(timeout);
timeout = setTimeout(() => func(...args), wait);
};
};
export const throttle = (func, delay) => {
let inProgress = false;
return (...args) => {
if (inProgress) return;
inProgress = true;
setTimeout(() => {
func(...args);
inProgress = false;
}, delay);
};
};
export const setText = (element, value) => {
if (element) {
element.textContent = value;
}
};
export const createStatusSetter = (element) => {
return (message) => setText(element, message);
};