Access error.response.statusCode safely (#2133)

This commit is contained in:
Kamil Kisiela 2023-04-27 10:40:43 +02:00 committed by GitHub
parent ce20d1cbf8
commit ddf8d0620a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -6,12 +6,6 @@ import * as Sentry from '@sentry/node';
import { writeDuration } from './metrics';
import { joinIntoSingleMessage, operationsOrder, registryOrder } from './serializer';
function hasResponse(error: unknown): error is {
response: GotResponse;
} {
return error instanceof Error && 'response' in error;
}
export interface ClickHouseConfig {
protocol: string;
host: string;
@ -153,8 +147,7 @@ async function writeCsv(
})
.catch(error => {
stopTimer({
status:
hasResponse(error) && error.response.statusCode ? error.response.statusCode : 'unknown',
status: getStatusCodeFromError(error) ?? 'unknown',
});
Sentry.captureException(error, {
level: 'error',
@ -173,3 +166,15 @@ async function writeCsv(
return Promise.reject(error);
});
}
function hasResponse(error: unknown): error is {
response: GotResponse;
} {
return error instanceof Error && 'response' in error && typeof error.response === 'object';
}
function getStatusCodeFromError(error: unknown) {
if (hasResponse(error)) {
return error.response?.statusCode;
}
}