-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger.js
78 lines (70 loc) · 1.91 KB
/
logger.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
69
70
71
72
73
74
75
76
77
78
function isArray(what) {
return Object.prototype.toString.call(what) === '[object Array]';
}
function isString(x) {
return Object.prototype.toString.call(x) === "[object String]"
}
function date() {
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
var hour = currentDate.getHours()
var minutes = currentDate.getMinutes()
var seconds = currentDate.getSeconds()
return `${year}-${month}-${day}T${hour}:${minutes}:${seconds}`
}
module.exports = {
buffer: {},
match: false,
mute: false,
logRequest: function(json) {
if(this.match) {
this.matchRpcs(json)
return
}
if(this.mute) {
return
}
console.log('--- REQUEST --- ', date())
console.log(JSON.stringify(json))
console.log('----------------')
},
logResponse: function(json) {
if(this.match) {
this.matchRpcs(json)
return
}
if(this.mute) {
return
}
console.log('--- RESPONSE --- ', date())
console.log(JSON.stringify(json))
console.log('----------------')
},
matchRpcs: function(json) {
if(isArray(json)) {
for(const rpc of json) {
this.log(rpc.id, rpc)
}
}else {
this.log(json.id, json)
}
},
log: function(id, json) {
if(this.mute) {
return
}
if(this.buffer[id]) {
console.log('------------')
console.log('--- REQUEST ---')
console.log(JSON.stringify(this.buffer[id]))
console.log('--- RESPONSE ---')
console.log(JSON.stringify(json))
console.log('------------')
delete this.buffer[id]
}else {
this.buffer[id] = json
}
}
}