blob: 327e594d6cf4bc571ac7176e5d777c1ca09153b8 (
plain)
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
|
/**
* Data manipulation utilities.
* @module app/utils/data_utils
*/
/**
* Convert an enum to a lookup
* @param {Object} dictionary: number -> string
* @return {Object} dictionary: string -> number
*/
export const enumLookup = (dict) =>
Object.entries(dict).reduce((lookup, pair) => {
lookup[pair[1]] = parseInt(pair[0]);
return lookup;
}, {});
/**
* Divide an array into N-item chunks
* @param {Array} arr array to be chunked
* @param {number} size items per chunk
* @return {Array} array of array chunks
*/
export const chunk = (arr, size) =>
arr.length > size
? [arr.slice(0, size), ...chunk(arr.slice(size), size)]
: [arr];
/**
* Delay during async operation
* @param {number} delay time to delay
* @return {Promise} promise that resolves after a delay
*/
export const delay = (delay = 1) =>
new Promise((resolve) => setTimeout(resolve, delay));
|