-
Notifications
You must be signed in to change notification settings - Fork 3
/
utils.ts
49 lines (41 loc) · 1.22 KB
/
utils.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
export const noop = () => {};
export const sleep = (ms: number) => new Promise((res) => setTimeout(res, ms));
export const getColorByUuid = (uuid?: string | null) => {
if (!uuid) {
return 'blue';
}
const colorIndex = parseInt(uuid, 32) % 5;
const color = ['red', 'yellow', 'green', 'purple', 'indigo'][colorIndex];
return color;
};
export const formatServerError = (err: any) => {
try {
const error = err?.response?.body?.error ?? {};
const {errors = {}, message, status} = error;
if (status === 422 && Object.keys(errors).length > 0) {
const messages = Object.keys(errors)
.map((field) => {
const description = errors[field];
if (description) {
return `${field} ${description}`;
} else {
return `invalid ${field}`;
}
})
.join(', ');
return `Error: ${messages}.`;
} else {
return (
message ||
err?.message ||
'Something went wrong. Please contact us or try again in a few minutes.'
);
}
} catch {
return (
err?.response?.body?.error?.message ||
err?.message ||
'Something went wrong. Please contact us or try again in a few minutes.'
);
}
};