-
Notifications
You must be signed in to change notification settings - Fork 0
/
utility.ts
34 lines (28 loc) · 909 Bytes
/
utility.ts
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
const sleep = (o_o: number): Promise<void> =>
new Promise((O_O) => setTimeout(O_O, Math.ceil(o_o)));
const shake = (base: number, rangePercentage: number): number => {
const n = base * rangePercentage;
return base + Math.floor(Math.random() * n * 2 + 1) - n;
};
export const wait = async (ms: number): Promise<void> => {
const o_o = shake(ms, 0.1);
console.info(`Waiting ${o_o} ms`);
await sleep(o_o);
};
export const convertToCSV = (obj: any, headers?: string[]) => {
const array = typeof obj != 'object' ? JSON.parse(obj) : obj;
let str = '';
if (headers) {
str += headers.join(',') + '\r\n';
}
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
if (line != '') line += ',';
line += array[i][index];
}
str += line + '\r\n';
}
return str;
};
export const trimName = (x: string) => x.split(/[\s']/).join('-');