-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.js
More file actions
40 lines (35 loc) · 909 Bytes
/
utils.js
File metadata and controls
40 lines (35 loc) · 909 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
34
35
36
37
38
39
40
import dedent from 'dedent'
// PROBLEM TEMPLATE NICE-IFICATION
// ============================================================
function dedentStringsInProblems(problems) {
return problems.map(prob => {
prob.given = dedent(prob.given)
prob.answer = dedent(prob.answer)
return prob
});
}
// DEBOUNCE UI EVENTS
// --------------------------------------------------------------------------------
function debounce(func, wait, immediate) {
let timeout;
return function () {
const context = this;
const args = arguments;
const later = function () {
timeout = null;
if (!immediate) {
func.apply(context, args);
}
};
const callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) {
func.apply(context, args);
}
};
}
module.exports = {
dedentStringsInProblems,
debounce
}