(url)
| 154 | } |
| 155 | |
| 156 | function httpGetJson(url) { |
| 157 | return new Promise((resolvePromise, rejectPromise) => { |
| 158 | const req = http.get(url, (res) => { |
| 159 | let body = '' |
| 160 | res.setEncoding('utf8') |
| 161 | res.on('data', (chunk) => { |
| 162 | body += chunk |
| 163 | }) |
| 164 | res.on('end', () => { |
| 165 | if ((res.statusCode ?? 500) >= 400) { |
| 166 | rejectPromise(new Error(`${url} returned HTTP ${res.statusCode}: ${body}`)) |
| 167 | return |
| 168 | } |
| 169 | try { |
| 170 | resolvePromise(JSON.parse(body)) |
| 171 | } catch (err) { |
| 172 | rejectPromise(err) |
| 173 | } |
| 174 | }) |
| 175 | }) |
| 176 | req.on('error', rejectPromise) |
| 177 | req.setTimeout(1000, () => { |
| 178 | req.destroy(new Error(`Timed out requesting ${url}`)) |
| 179 | }) |
| 180 | }) |
| 181 | } |
| 182 | |
| 183 | function formatIndex(index) { |
| 184 | return String(index).padStart(5, '0') |
no test coverage detected