(url: URL, ignoreHTTPSErrors: boolean, onLog?: (data: string) => void, onStdErr?: (data: string) => void)
| 207 | } |
| 208 | |
| 209 | async function httpStatusCode(url: URL, ignoreHTTPSErrors: boolean, onLog?: (data: string) => void, onStdErr?: (data: string) => void): Promise<number> { |
| 210 | return new Promise(resolve => { |
| 211 | onLog?.(`HTTP GET: ${url}`); |
| 212 | httpRequest({ |
| 213 | url: url.toString(), |
| 214 | headers: { Accept: '*/*' }, |
| 215 | rejectUnauthorized: !ignoreHTTPSErrors |
| 216 | }, res => { |
| 217 | res.resume(); |
| 218 | const statusCode = res.statusCode ?? 0; |
| 219 | onLog?.(`HTTP Status: ${statusCode}`); |
| 220 | resolve(statusCode); |
| 221 | }, error => { |
| 222 | if ((error as NodeJS.ErrnoException).code === 'DEPTH_ZERO_SELF_SIGNED_CERT') |
| 223 | onStdErr?.(`[WebServer] Self-signed certificate detected. Try adding ignoreHTTPSErrors: true to config.webServer.`); |
| 224 | onLog?.(`Error while checking if ${url} is available: ${error.message}`); |
| 225 | resolve(0); |
| 226 | }); |
| 227 | }); |
| 228 | } |
| 229 | |
| 230 | export function decorateServer(server: net.Server) { |
| 231 | const sockets = new Set<net.Socket>(); |
no test coverage detected
searching dependent graphs…