-
Notifications
You must be signed in to change notification settings - Fork 1
/
utils.js
68 lines (57 loc) · 1.35 KB
/
utils.js
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
let _options = { logging_level: 3 };
function set_options(options) {
_options = Object.assign(_options, options);
}
// Logging levels: 1 = Error, 2 = Warning, 3 = Info, 4 = Debug
function log(msg, level, color) {
if(!level)
level = 0;
if(color && log_colors[color])
msg = log_colors[color] + msg + log_colors.Reset;
if(level <= _options.logging_level)
console.log(new Date().toLocaleString() + ' - ' + msg);
}
var log_colors = {
Reset: "\x1b[0m",
Bright: "\x1b[1m",
Dim: "\x1b[2m",
Underscore: "\x1b[4m",
Blink: "\x1b[5m",
Reverse: "\x1b[7m",
Hidden: "\x1b[8m",
Black: "\x1b[30m",
Red: "\x1b[31m",
Green: "\x1b[32m",
Yellow: "\x1b[33m",
Blue: "\x1b[34m",
Magenta: "\x1b[35m",
Cyan: "\x1b[36m",
White: "\x1b[37m",
BgBlack: "\x1b[40m",
BgRed: "\x1b[41m",
BgGreen: "\x1b[42m",
BgYellow: "\x1b[43m",
BgBlue: "\x1b[44m",
BgMagenta: "\x1b[45m",
BgCyan: "\x1b[46m",
BgWhite: "\x1b[47m"
}
function timeout(ms) { return new Promise(resolve => setTimeout(resolve, ms)); }
function tryParse(json) {
try {
return JSON.parse(json);
} catch(err) {
log('Error trying to parse JSON: ' + json, 3, 'Red');
return null;
}
}
function isTxError(err) {
return (err && err.name == 'RPCError' && err.jse_info && (err.jse_info.code == 10 || err.jse_info.code > 1000000));
}
module.exports = {
set_options,
log,
timeout,
tryParse,
isTxError
}