@tramvai/module-http-client 1.39.0 → 1.44.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/httpClient/httpClientFactory.d.ts +3 -2
- package/lib/index.browser.js +10 -81
- package/lib/index.d.ts +1 -1
- package/lib/index.es.js +7 -2
- package/lib/index.js +6 -1
- package/lib/papiClientModule.browser.d.ts +2 -0
- package/lib/papiClientModule.d.ts +2 -0
- package/package.json +10 -10
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { MakeRequest } from '@tinkoff/request-core';
|
|
2
2
|
import type { APP_INFO_TOKEN } from '@tramvai/core';
|
|
3
|
-
import type { API_CLIENT_PASS_HEADERS, HTTP_CLIENT_FACTORY } from '@tramvai/tokens-http-client';
|
|
3
|
+
import type { API_CLIENT_PASS_HEADERS, HTTP_CLIENT_AGENT, HTTP_CLIENT_FACTORY } from '@tramvai/tokens-http-client';
|
|
4
4
|
import type { LOGGER_TOKEN, CREATE_CACHE_TOKEN, ENV_MANAGER_TOKEN, REQUEST_MANAGER_TOKEN } from '@tramvai/tokens-common';
|
|
5
|
-
export declare const httpClientFactory: ({ logger, envManager, appInfo, requestManager, headersList, createCache, tinkoffRequestRegistry, }: {
|
|
5
|
+
export declare const httpClientFactory: ({ logger, envManager, appInfo, requestManager, headersList, createCache, tinkoffRequestRegistry, agent, }: {
|
|
6
6
|
logger: typeof LOGGER_TOKEN;
|
|
7
7
|
envManager: typeof ENV_MANAGER_TOKEN;
|
|
8
8
|
appInfo: typeof APP_INFO_TOKEN;
|
|
@@ -10,4 +10,5 @@ export declare const httpClientFactory: ({ logger, envManager, appInfo, requestM
|
|
|
10
10
|
headersList?: typeof API_CLIENT_PASS_HEADERS;
|
|
11
11
|
createCache?: typeof CREATE_CACHE_TOKEN;
|
|
12
12
|
tinkoffRequestRegistry: Map<string, MakeRequest>;
|
|
13
|
+
agent?: typeof HTTP_CLIENT_AGENT;
|
|
13
14
|
}) => typeof HTTP_CLIENT_FACTORY;
|
package/lib/index.browser.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
-
import { createToken
|
|
2
|
+
import { createToken } from '@tinkoff/dippy';
|
|
3
3
|
import { Module, provide, Scope, APP_INFO_TOKEN } from '@tramvai/core';
|
|
4
|
-
import { PAPI_SERVICE, HTTP_CLIENT_FACTORY, API_CLIENT_PASS_HEADERS, HTTP_CLIENT } from '@tramvai/tokens-http-client';
|
|
4
|
+
import { PAPI_SERVICE, HTTP_CLIENT_FACTORY, API_CLIENT_PASS_HEADERS, HTTP_CLIENT_AGENT, HTTP_CLIENT } from '@tramvai/tokens-http-client';
|
|
5
5
|
import { LOGGER_TOKEN, ENV_MANAGER_TOKEN, REQUEST_MANAGER_TOKEN, ENV_USED_TOKEN, CREATE_CACHE_TOKEN } from '@tramvai/tokens-common';
|
|
6
6
|
import isNil from '@tinkoff/utils/is/nil';
|
|
7
7
|
import omit from '@tinkoff/utils/object/omit';
|
|
@@ -10,10 +10,6 @@ import { mergeOptions, createTinkoffRequest, HttpClientAdapter } from '@tramvai/
|
|
|
10
10
|
import { SERVER_MODULE_PAPI_PUBLIC_URL } from '@tramvai/tokens-server';
|
|
11
11
|
import prop from '@tinkoff/utils/object/prop';
|
|
12
12
|
import { ApiService } from '@tramvai/http-client';
|
|
13
|
-
import find from '@tinkoff/utils/array/find';
|
|
14
|
-
import flatten from '@tinkoff/utils/array/flatten';
|
|
15
|
-
import { getPapiParameters } from '@tramvai/papi';
|
|
16
|
-
import { REQUEST, RESPONSE } from '@tramvai/module-common';
|
|
17
13
|
|
|
18
14
|
const fillHeaders = (deps) => (params) => {
|
|
19
15
|
return params;
|
|
@@ -59,7 +55,7 @@ const environmentDependentOptions = typeof window === 'undefined'
|
|
|
59
55
|
: {
|
|
60
56
|
defaultTimeout: 30000,
|
|
61
57
|
};
|
|
62
|
-
const httpClientFactory = ({ logger, envManager, appInfo, requestManager, headersList, createCache, tinkoffRequestRegistry, }) => {
|
|
58
|
+
const httpClientFactory = ({ logger, envManager, appInfo, requestManager, headersList, createCache, tinkoffRequestRegistry, agent, }) => {
|
|
63
59
|
return (options) => {
|
|
64
60
|
if (!options.name) {
|
|
65
61
|
throw Error(`Необходимо передать уникальное поле "name" для экземпляра HTTP клиента!`);
|
|
@@ -68,6 +64,7 @@ const httpClientFactory = ({ logger, envManager, appInfo, requestManager, header
|
|
|
68
64
|
const forceDisabledCircuitBreaker = envManager.get('HTTP_CLIENT_CIRCUIT_BREAKER_DISABLED');
|
|
69
65
|
const adapterOptions = mergeOptions({
|
|
70
66
|
logger,
|
|
67
|
+
agent,
|
|
71
68
|
method: 'GET',
|
|
72
69
|
createCache: createCache
|
|
73
70
|
? (cacheOptions) => createCache('memory', cacheOptions)
|
|
@@ -129,7 +126,7 @@ const httpClientFactory = ({ logger, envManager, appInfo, requestManager, header
|
|
|
129
126
|
};
|
|
130
127
|
};
|
|
131
128
|
|
|
132
|
-
class PapiService
|
|
129
|
+
class PapiService extends ApiService {
|
|
133
130
|
constructor({ httpClientFactory, baseUrl }) {
|
|
134
131
|
const httpClient = httpClientFactory({
|
|
135
132
|
name: 'papi',
|
|
@@ -159,7 +156,7 @@ PapiClientModule = __decorate([
|
|
|
159
156
|
provide({
|
|
160
157
|
provide: PAPI_SERVICE,
|
|
161
158
|
scope: Scope.SINGLETON,
|
|
162
|
-
useClass: PapiService
|
|
159
|
+
useClass: PapiService,
|
|
163
160
|
deps: {
|
|
164
161
|
httpClientFactory: HTTP_CLIENT_FACTORY,
|
|
165
162
|
baseUrl: SERVER_MODULE_PAPI_PUBLIC_URL,
|
|
@@ -193,6 +190,10 @@ HttpClientModule = __decorate([
|
|
|
193
190
|
token: API_CLIENT_PASS_HEADERS,
|
|
194
191
|
optional: true,
|
|
195
192
|
},
|
|
193
|
+
agent: {
|
|
194
|
+
token: HTTP_CLIENT_AGENT,
|
|
195
|
+
optional: true,
|
|
196
|
+
},
|
|
196
197
|
},
|
|
197
198
|
}),
|
|
198
199
|
provide({
|
|
@@ -259,76 +260,4 @@ HttpClientModule = __decorate([
|
|
|
259
260
|
})
|
|
260
261
|
], HttpClientModule);
|
|
261
262
|
|
|
262
|
-
class PapiService {
|
|
263
|
-
constructor({ papi, di }) {
|
|
264
|
-
this.papi = flatten(papi || []);
|
|
265
|
-
this.di = di;
|
|
266
|
-
}
|
|
267
|
-
async request({ path, query, body }) {
|
|
268
|
-
var _a;
|
|
269
|
-
const papiRoute = find((papi) => getPapiParameters(papi).path === `/${path}`, this.papi);
|
|
270
|
-
if (!papiRoute) {
|
|
271
|
-
throw new Error(`papi handler '${path}' not found`);
|
|
272
|
-
}
|
|
273
|
-
const papi = getPapiParameters(papiRoute);
|
|
274
|
-
let rootDeps = {};
|
|
275
|
-
if (papi.rootDeps) {
|
|
276
|
-
rootDeps = this.di.getOfDeps(papi.rootDeps);
|
|
277
|
-
rootDeps = papi.mapRootDeps ? papi.mapRootDeps(rootDeps) : rootDeps;
|
|
278
|
-
}
|
|
279
|
-
const childDI = createChildContainer(this.di);
|
|
280
|
-
const req = { headers: { host: 'localhost' }, cookies: {}, query, body };
|
|
281
|
-
const res = {};
|
|
282
|
-
childDI.register({
|
|
283
|
-
provide: REQUEST,
|
|
284
|
-
useValue: req,
|
|
285
|
-
});
|
|
286
|
-
childDI.register({
|
|
287
|
-
provide: RESPONSE,
|
|
288
|
-
useValue: res,
|
|
289
|
-
});
|
|
290
|
-
const payload = await getPapiParameters(papiRoute).handler({
|
|
291
|
-
...rootDeps,
|
|
292
|
-
...childDI.getOfDeps((_a = papi.deps) !== null && _a !== void 0 ? _a : {}),
|
|
293
|
-
req,
|
|
294
|
-
res,
|
|
295
|
-
});
|
|
296
|
-
return { payload, status: 200, headers: {} };
|
|
297
|
-
}
|
|
298
|
-
get(path, payload, config) {
|
|
299
|
-
return this.request({
|
|
300
|
-
path,
|
|
301
|
-
...payload,
|
|
302
|
-
...config,
|
|
303
|
-
method: 'GET',
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
post(path, payload, config) {
|
|
307
|
-
return this.request({
|
|
308
|
-
path,
|
|
309
|
-
requestType: 'json',
|
|
310
|
-
...payload,
|
|
311
|
-
...config,
|
|
312
|
-
method: 'POST',
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
put(path, payload, config) {
|
|
316
|
-
return this.request({
|
|
317
|
-
path,
|
|
318
|
-
requestType: 'json',
|
|
319
|
-
...payload,
|
|
320
|
-
...config,
|
|
321
|
-
method: 'PUT',
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
delete(path, payload, config) {
|
|
325
|
-
return this.request({
|
|
326
|
-
path,
|
|
327
|
-
...payload,
|
|
328
|
-
...config,
|
|
329
|
-
method: 'DELETE',
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
|
|
334
263
|
export { HttpClientModule, PapiService, fillHeaderIp, fillHeaders, formatError, httpClientFactory };
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { HttpClientModule } from './httpClientModule';
|
|
2
2
|
export { httpClientFactory } from './httpClient/httpClientFactory';
|
|
3
|
-
export { PapiService } from './
|
|
3
|
+
export { PapiService } from './papiClientModule';
|
|
4
4
|
export { fillHeaderIp, fillHeaders } from './utils/fillHeaders';
|
|
5
5
|
export { formatError } from './utils/errors';
|
package/lib/index.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
2
|
import { createChildContainer, createToken } from '@tinkoff/dippy';
|
|
3
3
|
import { Module, provide, Scope, DI_TOKEN, APP_INFO_TOKEN } from '@tramvai/core';
|
|
4
|
-
import { PAPI_SERVICE, HTTP_CLIENT_FACTORY, API_CLIENT_PASS_HEADERS, HTTP_CLIENT } from '@tramvai/tokens-http-client';
|
|
4
|
+
import { PAPI_SERVICE, HTTP_CLIENT_FACTORY, API_CLIENT_PASS_HEADERS, HTTP_CLIENT_AGENT, HTTP_CLIENT } from '@tramvai/tokens-http-client';
|
|
5
5
|
import { LOGGER_TOKEN, ENV_MANAGER_TOKEN, REQUEST_MANAGER_TOKEN, ENV_USED_TOKEN, CREATE_CACHE_TOKEN } from '@tramvai/tokens-common';
|
|
6
6
|
import isNil from '@tinkoff/utils/is/nil';
|
|
7
7
|
import omit from '@tinkoff/utils/object/omit';
|
|
@@ -84,7 +84,7 @@ const environmentDependentOptions = typeof window === 'undefined'
|
|
|
84
84
|
: {
|
|
85
85
|
defaultTimeout: 30000,
|
|
86
86
|
};
|
|
87
|
-
const httpClientFactory = ({ logger, envManager, appInfo, requestManager, headersList, createCache, tinkoffRequestRegistry, }) => {
|
|
87
|
+
const httpClientFactory = ({ logger, envManager, appInfo, requestManager, headersList, createCache, tinkoffRequestRegistry, agent, }) => {
|
|
88
88
|
return (options) => {
|
|
89
89
|
if (!options.name) {
|
|
90
90
|
throw Error(`Необходимо передать уникальное поле "name" для экземпляра HTTP клиента!`);
|
|
@@ -93,6 +93,7 @@ const httpClientFactory = ({ logger, envManager, appInfo, requestManager, header
|
|
|
93
93
|
const forceDisabledCircuitBreaker = envManager.get('HTTP_CLIENT_CIRCUIT_BREAKER_DISABLED');
|
|
94
94
|
const adapterOptions = mergeOptions({
|
|
95
95
|
logger,
|
|
96
|
+
agent,
|
|
96
97
|
method: 'GET',
|
|
97
98
|
createCache: createCache
|
|
98
99
|
? (cacheOptions) => createCache('memory', cacheOptions)
|
|
@@ -268,6 +269,10 @@ HttpClientModule = __decorate([
|
|
|
268
269
|
token: API_CLIENT_PASS_HEADERS,
|
|
269
270
|
optional: true,
|
|
270
271
|
},
|
|
272
|
+
agent: {
|
|
273
|
+
token: HTTP_CLIENT_AGENT,
|
|
274
|
+
optional: true,
|
|
275
|
+
},
|
|
271
276
|
},
|
|
272
277
|
}),
|
|
273
278
|
provide({
|
package/lib/index.js
CHANGED
|
@@ -98,7 +98,7 @@ const environmentDependentOptions = typeof window === 'undefined'
|
|
|
98
98
|
: {
|
|
99
99
|
defaultTimeout: 30000,
|
|
100
100
|
};
|
|
101
|
-
const httpClientFactory = ({ logger, envManager, appInfo, requestManager, headersList, createCache, tinkoffRequestRegistry, }) => {
|
|
101
|
+
const httpClientFactory = ({ logger, envManager, appInfo, requestManager, headersList, createCache, tinkoffRequestRegistry, agent, }) => {
|
|
102
102
|
return (options) => {
|
|
103
103
|
if (!options.name) {
|
|
104
104
|
throw Error(`Необходимо передать уникальное поле "name" для экземпляра HTTP клиента!`);
|
|
@@ -107,6 +107,7 @@ const httpClientFactory = ({ logger, envManager, appInfo, requestManager, header
|
|
|
107
107
|
const forceDisabledCircuitBreaker = envManager.get('HTTP_CLIENT_CIRCUIT_BREAKER_DISABLED');
|
|
108
108
|
const adapterOptions = tinkoffRequestHttpClientAdapter.mergeOptions({
|
|
109
109
|
logger,
|
|
110
|
+
agent,
|
|
110
111
|
method: 'GET',
|
|
111
112
|
createCache: createCache
|
|
112
113
|
? (cacheOptions) => createCache('memory', cacheOptions)
|
|
@@ -282,6 +283,10 @@ exports.HttpClientModule = tslib.__decorate([
|
|
|
282
283
|
token: tokensHttpClient.API_CLIENT_PASS_HEADERS,
|
|
283
284
|
optional: true,
|
|
284
285
|
},
|
|
286
|
+
agent: {
|
|
287
|
+
token: tokensHttpClient.HTTP_CLIENT_AGENT,
|
|
288
|
+
optional: true,
|
|
289
|
+
},
|
|
285
290
|
},
|
|
286
291
|
}),
|
|
287
292
|
core.provide({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/module-http-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.44.4",
|
|
4
4
|
"initialVersion": "0.58.99",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -25,21 +25,21 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@tramvai/http-client": "0.1.23",
|
|
28
|
-
"@tramvai/tinkoff-request-http-client-adapter": "0.8.
|
|
29
|
-
"@tramvai/tokens-http-client": "1.
|
|
30
|
-
"@tramvai/tokens-common": "1.
|
|
31
|
-
"@tramvai/tokens-server": "1.
|
|
28
|
+
"@tramvai/tinkoff-request-http-client-adapter": "0.8.197",
|
|
29
|
+
"@tramvai/tokens-http-client": "1.44.4",
|
|
30
|
+
"@tramvai/tokens-common": "1.44.4",
|
|
31
|
+
"@tramvai/tokens-server": "1.44.4"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@tinkoff/request-core": "^0.8.9"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@tinkoff/utils": "^2.1.2",
|
|
38
|
-
"@tramvai/core": "1.
|
|
39
|
-
"@tramvai/module-common": "1.
|
|
40
|
-
"@tramvai/papi": "1.
|
|
41
|
-
"@tramvai/test-helpers": "1.
|
|
42
|
-
"@tramvai/test-mocks": "1.
|
|
38
|
+
"@tramvai/core": "1.44.4",
|
|
39
|
+
"@tramvai/module-common": "1.44.4",
|
|
40
|
+
"@tramvai/papi": "1.44.4",
|
|
41
|
+
"@tramvai/test-helpers": "1.44.4",
|
|
42
|
+
"@tramvai/test-mocks": "1.44.4",
|
|
43
43
|
"@tinkoff/dippy": "0.7.35",
|
|
44
44
|
"node-fetch": "^2.6.1",
|
|
45
45
|
"tslib": "^2.0.3"
|