-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlib.js
118 lines (117 loc) · 4.02 KB
/
lib.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
module.exports = {
loginService: (() => {
let loginCache;
return async(discovery) => {
if (!loginCache) loginCache = discovery('login');
try {
return await loginCache;
} catch (error) {
loginCache = false;
throw error;
}
};
})(),
requestGet(
url,
errorHttp,
errorEmpty,
headers,
protocol,
tls,
request
) {
return new Promise((resolve, reject) => {
request({
json: true,
method: 'GET',
url,
...tls,
...headers && {
headers: {
'x-forwarded-proto': headers['x-forwarded-proto'] || protocol,
'x-forwarded-host': headers['x-forwarded-host'] || headers.host
}
}
}, (error, response, body) => {
if (error) {
reject(error);
} else if (response.statusCode < 200 || response.statusCode >= 300) {
reject(errorHttp({
statusCode: response.statusCode,
statusText: response.statusText,
statusMessage: response.statusMessage,
httpVersion: response.httpVersion,
validation: response.body && response.body.validation,
debug: response.body && response.body.debug,
params: {
code: response.statusCode
},
...response.request && {
req: {
httpVersion: response.httpVersion,
url: response.request.href,
method: response.request.method
}
}
}));
} else if (body) {
resolve(body);
} else {
reject(errorEmpty());
}
});
});
},
requestPostForm(
url,
errorHttp,
errorEmpty,
headers,
protocol,
tls,
request,
form
) {
return new Promise((resolve, reject) => {
request({
method: 'POST',
url,
form,
...tls,
...headers && {
headers: {
'x-forwarded-proto': headers['x-forwarded-proto'] || protocol,
'x-forwarded-host': headers['x-forwarded-host'] || headers.host
}
}
}, (error, response, body) => {
if (error) {
reject(error);
} else if (response.statusCode < 200 || response.statusCode >= 300) {
reject(errorHttp({
statusCode: response.statusCode,
statusText: response.statusText,
statusMessage: response.statusMessage,
httpVersion: response.httpVersion,
validation: response.body && response.body.validation,
debug: response.body && response.body.debug,
params: {
code: response.statusCode
},
...response.request && {
req: {
httpVersion: response.httpVersion,
url: response.request.href,
method: response.request.method
}
}
}));
} else if (body) {
resolve(body);
} else {
reject(errorEmpty());
}
});
});
}
};