|
14 | 14 | * limitations under the License. |
15 | 15 | */ |
16 | 16 |
|
17 | | -import { AbortableRequest, Response, Headers } from './http' |
18 | | -import { REQUEST_TIMEOUT_MS } from './config' |
19 | | -import { getLogger } from '@optimizely/js-sdk-logging' |
| 17 | +import { AbortableRequest, Response, Headers } from './http'; |
| 18 | +import { REQUEST_TIMEOUT_MS } from './config'; |
| 19 | +import { getLogger } from '@optimizely/js-sdk-logging'; |
20 | 20 |
|
21 | | -const logger = getLogger('DatafileManager') |
| 21 | +const logger = getLogger('DatafileManager'); |
22 | 22 |
|
23 | | -const GET_METHOD = 'GET' |
24 | | -const READY_STATE_DONE = 4 |
| 23 | +const GET_METHOD = 'GET'; |
| 24 | +const READY_STATE_DONE = 4; |
25 | 25 |
|
26 | 26 | function parseHeadersFromXhr(req: XMLHttpRequest): Headers { |
27 | | - const allHeadersString = req.getAllResponseHeaders() |
| 27 | + const allHeadersString = req.getAllResponseHeaders(); |
28 | 28 |
|
29 | 29 | if (allHeadersString === null) { |
30 | | - return {} |
| 30 | + return {}; |
31 | 31 | } |
32 | 32 |
|
33 | | - const headerLines = allHeadersString.split('\r\n') |
34 | | - const headers: Headers = {} |
| 33 | + const headerLines = allHeadersString.split('\r\n'); |
| 34 | + const headers: Headers = {}; |
35 | 35 | headerLines.forEach(headerLine => { |
36 | | - const separatorIndex = headerLine.indexOf(': ') |
| 36 | + const separatorIndex = headerLine.indexOf(': '); |
37 | 37 | if (separatorIndex > -1) { |
38 | | - const headerName = headerLine.slice(0, separatorIndex) |
39 | | - const headerValue = headerLine.slice(separatorIndex + 2) |
| 38 | + const headerName = headerLine.slice(0, separatorIndex); |
| 39 | + const headerValue = headerLine.slice(separatorIndex + 2); |
40 | 40 | if (headerValue.length > 0) { |
41 | | - headers[headerName] = headerValue |
| 41 | + headers[headerName] = headerValue; |
42 | 42 | } |
43 | 43 | } |
44 | | - }) |
45 | | - return headers |
| 44 | + }); |
| 45 | + return headers; |
46 | 46 | } |
47 | 47 |
|
48 | 48 | function setHeadersInXhr(headers: Headers, req: XMLHttpRequest): void { |
49 | 49 | Object.keys(headers).forEach(headerName => { |
50 | | - const header = headers[headerName] |
51 | | - req.setRequestHeader(headerName, header!) |
52 | | - }) |
| 50 | + const header = headers[headerName]; |
| 51 | + req.setRequestHeader(headerName, header!); |
| 52 | + }); |
53 | 53 | } |
54 | 54 |
|
55 | 55 | export function makeGetRequest(reqUrl: string, headers: Headers): AbortableRequest { |
56 | | - const req = new XMLHttpRequest() |
| 56 | + const req = new XMLHttpRequest(); |
57 | 57 |
|
58 | 58 | const responsePromise: Promise<Response> = new Promise((resolve, reject) => { |
59 | | - req.open(GET_METHOD, reqUrl, true) |
| 59 | + req.open(GET_METHOD, reqUrl, true); |
60 | 60 |
|
61 | | - setHeadersInXhr(headers, req) |
| 61 | + setHeadersInXhr(headers, req); |
62 | 62 |
|
63 | | - req.onreadystatechange = () => { |
| 63 | + req.onreadystatechange = (): void => { |
64 | 64 | if (req.readyState === READY_STATE_DONE) { |
65 | | - const statusCode = req.status |
| 65 | + const statusCode = req.status; |
66 | 66 | if (statusCode === 0) { |
67 | | - reject(new Error('Request error')) |
68 | | - return |
| 67 | + reject(new Error('Request error')); |
| 68 | + return; |
69 | 69 | } |
70 | 70 |
|
71 | | - const headers = parseHeadersFromXhr(req) |
| 71 | + const headers = parseHeadersFromXhr(req); |
72 | 72 | const resp: Response = { |
73 | 73 | statusCode: req.status, |
74 | 74 | body: req.responseText, |
75 | 75 | headers, |
76 | | - } |
77 | | - resolve(resp) |
| 76 | + }; |
| 77 | + resolve(resp); |
78 | 78 | } |
79 | | - } |
| 79 | + }; |
80 | 80 |
|
81 | | - req.timeout = REQUEST_TIMEOUT_MS |
| 81 | + req.timeout = REQUEST_TIMEOUT_MS; |
82 | 82 |
|
83 | | - req.ontimeout = () => { |
84 | | - logger.error('Request timed out') |
85 | | - } |
| 83 | + req.ontimeout = (): void => { |
| 84 | + logger.error('Request timed out'); |
| 85 | + }; |
86 | 86 |
|
87 | | - req.send() |
88 | | - }) |
| 87 | + req.send(); |
| 88 | + }); |
89 | 89 |
|
90 | 90 | return { |
91 | 91 | responsePromise, |
92 | | - abort() { |
93 | | - req.abort() |
| 92 | + abort(): void { |
| 93 | + req.abort(); |
94 | 94 | }, |
95 | | - } |
| 95 | + }; |
96 | 96 | } |
0 commit comments