|
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