forked from parse-community/parse-server
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHTTPResponse.js
More file actions
49 lines (42 loc) · 1.04 KB
/
HTTPResponse.js
File metadata and controls
49 lines (42 loc) · 1.04 KB
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 default class HTTPResponse {
constructor(response, body) {
let _text, _data;
this.status = response.statusCode;
this.headers = response.headers || {};
this.cookies = this.headers["set-cookie"];
if (typeof body == 'string') {
_text = body;
} else if (Buffer.isBuffer(body)) {
this.buffer = body;
} else if (typeof body == 'object') {
_data = body;
}
let getText = () => {
if (!_text && this.buffer) {
_text = this.buffer.toString('utf-8');
} else if (!_text && _data) {
_text = JSON.stringify(_data);
}
return _text;
}
let getData = () => {
if (!_data) {
try {
_data = JSON.parse(getText());
} catch (e) {}
}
return _data;
}
Object.defineProperty(this, 'body', {
get: () => { return body }
});
Object.defineProperty(this, 'text', {
enumerable: true,
get: getText
});
Object.defineProperty(this, 'data', {
enumerable: true,
get: getData
});
}
}