From c86c9cfea0dc0949f3e8582b75356214186c5e09 Mon Sep 17 00:00:00 2001 From: krutoo Date: Mon, 11 Mar 2024 14:26:47 +0500 Subject: [PATCH] #38 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - обновлены пакеты axios и middleware-axios (major) - правки типов в тестах - preset/node: правки типов в утилитах (major) --- package-lock.json | 32 ++++++++--------- package.json | 4 +-- src/preset/isomorphic/providers/index.ts | 6 ++-- .../node/utils/axios-tracing-middleware.ts | 9 +++-- .../axios/middleware/__test__/cookie.test.ts | 34 +++++++++---------- .../axios/middleware/__test__/log.test.ts | 8 ++--- 6 files changed, 48 insertions(+), 45 deletions(-) diff --git a/package-lock.json b/package-lock.json index 00da733..4053f94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "dotenv": "^16.3.1", "express": "^4.18.2", "jsesc": "^3.0.2", - "middleware-axios": "^2.1.5", + "middleware-axios": "^2.1.6", "pino": "^8.14.1", "pino-pretty": "^9.1.1", "prom-client": "^14.2.0", @@ -62,7 +62,7 @@ }, "peerDependencies": { "@reduxjs/toolkit": "^1.9.5", - "axios": "^1.4.0", + "axios": "^1.6.7", "react": "^17.0 || ^18.0", "react-dom": "^17.0 || ^18.0", "react-redux": "^8.0.5", @@ -5607,12 +5607,12 @@ } }, "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "peer": true, "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -12507,9 +12507,9 @@ } }, "node_modules/middleware-axios": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/middleware-axios/-/middleware-axios-2.1.5.tgz", - "integrity": "sha512-hxhl1QuS5HpTb2jihJh+uMOrdCKNxsO/fZvNjPmOuqkD88TtrqUyW4xnWRXe3Lod2OFJqivzC9XggNptwFo0SQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/middleware-axios/-/middleware-axios-2.1.6.tgz", + "integrity": "sha512-gV4WTLchPq2sCghenJgh5eI41jKLjVaSwEctQ94ikYPBwSboBa7CK4ZN7c5bXV1wlx1ONSQZ2jjMmLq2Kp+Tag==", "peerDependencies": { "axios": "^1.2.0-alpha.1" } @@ -19961,12 +19961,12 @@ "dev": true }, "axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "peer": true, "requires": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -25099,9 +25099,9 @@ } }, "middleware-axios": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/middleware-axios/-/middleware-axios-2.1.5.tgz", - "integrity": "sha512-hxhl1QuS5HpTb2jihJh+uMOrdCKNxsO/fZvNjPmOuqkD88TtrqUyW4xnWRXe3Lod2OFJqivzC9XggNptwFo0SQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/middleware-axios/-/middleware-axios-2.1.6.tgz", + "integrity": "sha512-gV4WTLchPq2sCghenJgh5eI41jKLjVaSwEctQ94ikYPBwSboBa7CK4ZN7c5bXV1wlx1ONSQZ2jjMmLq2Kp+Tag==", "requires": {} }, "mime": { diff --git a/package.json b/package.json index f866fab..a6c62b9 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "dotenv": "^16.3.1", "express": "^4.18.2", "jsesc": "^3.0.2", - "middleware-axios": "^2.1.5", + "middleware-axios": "^2.1.6", "pino": "^8.14.1", "pino-pretty": "^9.1.1", "prom-client": "^14.2.0", @@ -70,7 +70,7 @@ }, "peerDependencies": { "@reduxjs/toolkit": "^1.9.5", - "axios": "^1.4.0", + "axios": "^1.6.7", "react": "^17.0 || ^18.0", "react-dom": "^17.0 || ^18.0", "react-redux": "^8.0.5", diff --git a/src/preset/isomorphic/providers/index.ts b/src/preset/isomorphic/providers/index.ts index 762394e..0f2b76c 100644 --- a/src/preset/isomorphic/providers/index.ts +++ b/src/preset/isomorphic/providers/index.ts @@ -49,13 +49,13 @@ export function provideAxiosFactory(resolve: Resolve) { const middleware = resolve(KnownToken.Axios.middleware); return (config: CreateAxiosDefaults = {}) => { - const client = create(config as any); // @todo убрать as any + const instance = create(config); for (const item of middleware) { - client.use(item); + instance.use(item); } - return client; + return instance; }; } diff --git a/src/preset/node/utils/axios-tracing-middleware.ts b/src/preset/node/utils/axios-tracing-middleware.ts index 22e640f..cb44ab2 100644 --- a/src/preset/node/utils/axios-tracing-middleware.ts +++ b/src/preset/node/utils/axios-tracing-middleware.ts @@ -1,4 +1,4 @@ -import type { AxiosDefaults, AxiosRequestConfig } from 'axios'; +import type { AxiosInstance, AxiosRequestConfig, HeadersDefaults } from 'axios'; import type { Middleware } from 'middleware-axios'; import { Context, Tracer, SpanStatusCode } from '@opentelemetry/api'; import { SemanticAttributes } from '@opentelemetry/semantic-conventions'; @@ -24,8 +24,11 @@ export function axiosTracingMiddleware(tracer: Tracer, rootContext: Context): Mi ...config.params, }), 'request.headers': JSON.stringify({ - ...defaults.headers[method.toLowerCase() as 'get'], + // @todo непонятно как доставать заголовки из defaults потому что там на одном уровне заголовки и таблицы заголовков + ...defaults.headers.common, + ...defaults.headers[method.toLowerCase() as keyof HeadersDefaults], ...config.headers, + // @todo возможно стоит убрать cookie/Cookie }), // если нашли id - добавляем в теги @@ -59,7 +62,7 @@ export function axiosTracingMiddleware(tracer: Tracer, rootContext: Context): Mi */ export function getRequestInfo( config: AxiosRequestConfig, - defaults: AxiosDefaults, + defaults: AxiosInstance['defaults'], ): { method: string; url: string; diff --git a/src/utils/axios/middleware/__test__/cookie.test.ts b/src/utils/axios/middleware/__test__/cookie.test.ts index c23e8ef..a2316e1 100644 --- a/src/utils/axios/middleware/__test__/cookie.test.ts +++ b/src/utils/axios/middleware/__test__/cookie.test.ts @@ -1,4 +1,4 @@ -import { AxiosDefaults, InternalAxiosRequestConfig } from 'axios'; +import { AxiosHeaders, AxiosInstance, InternalAxiosRequestConfig } from 'axios'; import { Next } from 'middleware-axios'; import { cookieMiddleware } from '../cookie'; import { createCookieStore } from '../../../../http'; @@ -23,15 +23,15 @@ describe('cookieMiddleware', () => { headers: {}, }), ); - const defaults: AxiosDefaults = { + const defaults: AxiosInstance['defaults'] = { headers: { - get: {}, - post: {}, - put: {}, - delete: {}, - patch: {}, - common: {}, - head: {}, + get: new AxiosHeaders(), + post: new AxiosHeaders(), + put: new AxiosHeaders(), + delete: new AxiosHeaders(), + patch: new AxiosHeaders(), + common: new AxiosHeaders(), + head: new AxiosHeaders(), }, }; @@ -73,15 +73,15 @@ describe('cookieMiddleware', () => { } as any, }), ); - const defaults: AxiosDefaults = { + const defaults: AxiosInstance['defaults'] = { headers: { - get: {}, - post: {}, - put: {}, - delete: {}, - patch: {}, - common: {}, - head: {}, + get: new AxiosHeaders(), + post: new AxiosHeaders(), + put: new AxiosHeaders(), + delete: new AxiosHeaders(), + patch: new AxiosHeaders(), + common: new AxiosHeaders(), + head: new AxiosHeaders(), }, }; diff --git a/src/utils/axios/middleware/__test__/log.test.ts b/src/utils/axios/middleware/__test__/log.test.ts index 5f0c657..0c0fb4c 100644 --- a/src/utils/axios/middleware/__test__/log.test.ts +++ b/src/utils/axios/middleware/__test__/log.test.ts @@ -1,4 +1,4 @@ -import { AxiosRequestConfig, AxiosDefaults, AxiosResponse } from 'axios'; +import { AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios'; import { Next } from 'middleware-axios'; import { logMiddleware, LogMiddlewareHandler } from '../log'; @@ -31,7 +31,7 @@ describe('logMiddleware', () => { it('should works properly without error', async () => { const config: AxiosRequestConfig = {}; - const defaults: AxiosDefaults = { + const defaults: AxiosInstance['defaults'] = { headers: {} as any, baseURL: 'https://sima.com/', }; @@ -62,7 +62,7 @@ describe('logMiddleware', () => { it('should works properly with error', async () => { const config: AxiosRequestConfig = {}; - const defaults: AxiosDefaults = { + const defaults: AxiosInstance['defaults'] = { headers: {} as any, baseURL: 'https://sima.com/', }; @@ -87,7 +87,7 @@ describe('logMiddleware', () => { it('should handle handler factory', async () => { const config: AxiosRequestConfig = {}; - const defaults: AxiosDefaults = { + const defaults: AxiosInstance['defaults'] = { headers: {} as any, baseURL: 'https://sima.com/', };