diff --git a/src/http/index.ts b/src/http/index.ts index e88ee63..2837335 100644 --- a/src/http/index.ts +++ b/src/http/index.ts @@ -1,4 +1,5 @@ export type { + ProxyOptions, Handler, Enhancer, Middleware, @@ -13,12 +14,6 @@ export type { ResponseErrorInit, } from './types'; export { configureFetch, applyMiddleware } from '@krutoo/fetch-tools'; -export { - type ProxyOptions, - log, - proxy, - defaultHeaders, - validateStatus, -} from '@krutoo/fetch-tools/middleware'; +export { log, proxy, defaultHeaders, validateStatus } from '@krutoo/fetch-tools/middleware'; export { StatusError, ResponseError } from './errors'; export { FetchUtil } from './utils'; diff --git a/src/http/types.ts b/src/http/types.ts index a31c350..a85c770 100644 --- a/src/http/types.ts +++ b/src/http/types.ts @@ -8,6 +8,7 @@ export type { FailLogData, LogHandler, LogHandlerFactory, + ProxyOptions, } from '@krutoo/fetch-tools/middleware'; export type URLSearchParamsInit = Record; diff --git a/src/log/errors.ts b/src/log/errors.ts index f370574..4c0cdd8 100644 --- a/src/log/errors.ts +++ b/src/log/errors.ts @@ -1,4 +1,4 @@ -import { ErrorDetails, BreadcrumbDetails } from './types'; +import type { ErrorDetails, BreadcrumbDetails } from './types'; /** * Ошибка с данными. diff --git a/src/preset/bun-handler/providers/handler-main.tsx b/src/preset/bun-handler/providers/handler-main.tsx index 568d59f..a6204fd 100644 --- a/src/preset/bun-handler/providers/handler-main.tsx +++ b/src/preset/bun-handler/providers/handler-main.tsx @@ -54,11 +54,11 @@ export function provideHandlerMain(resolve: Resolve) { const enhancer = applyMiddleware( // ВАЖНО: прерываем исходящие в рамках обработчика http-запросы async (request, next) => { - const response = await next(request); - - abortController.abort(); - - return response; + try { + return await next(request); + } finally { + abortController.abort(); + } }, ); diff --git a/src/preset/server/utils/get-serve-error-logging.ts b/src/preset/server/utils/get-serve-error-logging.ts index ffa53a5..7826ca6 100644 --- a/src/preset/server/utils/get-serve-error-logging.ts +++ b/src/preset/server/utils/get-serve-error-logging.ts @@ -12,18 +12,16 @@ export function getServeErrorLogging(logger: Logger): Middleware { logger.error( new DetailedError(String(error), { level: 'error', - context: [ - { - key: 'Incoming request details', - data: { - url: FetchUtil.withoutParams(request.url), - method: request.method, - headers: Object.fromEntries(request.headers.entries()), - params: Object.fromEntries(new URL(request.url).searchParams.entries()), - // @todo data - }, + context: { + key: 'Incoming request details', + data: { + url: FetchUtil.withoutParams(request.url), + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + params: Object.fromEntries(new URL(request.url).searchParams.entries()), + // @todo data }, - ], + }, }), ); }, diff --git a/src/preset/server/utils/get-serve-logging.ts b/src/preset/server/utils/get-serve-logging.ts index 8c97367..95e82d5 100644 --- a/src/preset/server/utils/get-serve-logging.ts +++ b/src/preset/server/utils/get-serve-logging.ts @@ -1,6 +1,5 @@ import type { Middleware } from '../../../http'; import type { Logger } from '../../../log'; -import { toMilliseconds } from '../../../utils'; import { getClientIp } from './get-client-ip'; /** @@ -10,7 +9,7 @@ import { getClientIp } from './get-client-ip'; */ export function getServeLogging(logger: Logger): Middleware { return async (request, next) => { - const start = process.hrtime.bigint(); + const start = performance.now(); const clientIp = getClientIp(request); logger.info({ @@ -22,7 +21,7 @@ export function getServeLogging(logger: Logger): Middleware { const response = await next(request); - const finish = process.hrtime.bigint(); + const finish = performance.now(); logger.info({ type: 'http.response[outgoing]', @@ -30,7 +29,7 @@ export function getServeLogging(logger: Logger): Middleware { method: request.method, status: response.status, remote_ip: clientIp, - latency: toMilliseconds(finish - start), + latency: finish - start, }); return response;