@vtex/api 6.48.1-beta.2 → 6.48.1-beta.3
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/GraphQLClient.d.ts +1 -1
- package/lib/HttpClient/HttpClient.d.ts +2 -3
- package/lib/HttpClient/HttpClient.js +14 -14
- package/lib/HttpClient/agents.d.ts +2 -5
- package/lib/HttpClient/agents.js +4 -10
- package/lib/HttpClient/index.js +2 -7
- package/lib/HttpClient/middlewares/cache.d.ts +1 -1
- package/lib/HttpClient/middlewares/cache.js +36 -38
- package/lib/HttpClient/middlewares/cancellationToken.d.ts +1 -1
- package/lib/HttpClient/middlewares/cancellationToken.js +1 -2
- package/lib/HttpClient/middlewares/inflight.d.ts +1 -1
- package/lib/HttpClient/middlewares/inflight.js +3 -6
- package/lib/HttpClient/middlewares/memoization.d.ts +1 -1
- package/lib/HttpClient/middlewares/memoization.js +8 -9
- package/lib/HttpClient/middlewares/metrics.js +7 -8
- package/lib/HttpClient/middlewares/notFound.d.ts +1 -1
- package/lib/HttpClient/middlewares/notFound.js +2 -4
- package/lib/HttpClient/middlewares/recorder.js +1 -2
- package/lib/HttpClient/middlewares/request/HttpAgentSingleton.js +1 -1
- package/lib/HttpClient/middlewares/request/index.d.ts +1 -1
- package/lib/HttpClient/middlewares/request/index.js +10 -13
- package/lib/HttpClient/middlewares/request/setupAxios/index.d.ts +1 -0
- package/lib/HttpClient/middlewares/request/setupAxios/index.js +4 -5
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.js +5 -6
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.js +0 -1
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.js +8 -8
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.js +8 -10
- package/lib/HttpClient/middlewares/tracing.js +10 -11
- package/lib/HttpClient/typings.d.ts +2 -2
- package/lib/caches/DiskCache.js +2 -2
- package/lib/caches/LRUCache.d.ts +2 -2
- package/lib/caches/LRUDiskCache.d.ts +1 -1
- package/lib/caches/LRUDiskCache.js +2 -2
- package/lib/caches/MultilayeredCache.d.ts +2 -2
- package/lib/caches/MultilayeredCache.js +6 -6
- package/lib/caches/index.js +2 -6
- package/lib/caches/typings.d.ts +5 -5
- package/lib/clients/IOClient.d.ts +1 -1
- package/lib/clients/IOClients.d.ts +1 -1
- package/lib/clients/apps/AppClient.js +1 -1
- package/lib/clients/apps/AppGraphQLClient.js +1 -1
- package/lib/clients/apps/Billing.d.ts +1 -1
- package/lib/clients/apps/Builder.d.ts +7 -7
- package/lib/clients/apps/Builder.js +1 -1
- package/lib/clients/apps/MessagesGraphQL.d.ts +1 -1
- package/lib/clients/apps/MessagesGraphQL.js +3 -3
- package/lib/clients/apps/Settings.js +3 -3
- package/lib/clients/apps/catalogGraphQL/index.d.ts +4 -4
- package/lib/clients/apps/catalogGraphQL/index.js +4 -4
- package/lib/clients/apps/index.js +2 -6
- package/lib/clients/external/ID.d.ts +4 -4
- package/lib/clients/external/PaymentProvider.d.ts +2 -2
- package/lib/clients/external/index.js +2 -6
- package/lib/clients/index.js +2 -6
- package/lib/clients/infra/Apps.d.ts +27 -32
- package/lib/clients/infra/Apps.js +16 -16
- package/lib/clients/infra/Assets.d.ts +5 -6
- package/lib/clients/infra/Assets.js +11 -11
- package/lib/clients/infra/BillingMetrics.d.ts +1 -1
- package/lib/clients/infra/Events.d.ts +1 -1
- package/lib/clients/infra/Events.js +1 -1
- package/lib/clients/infra/Housekeeper.d.ts +3 -3
- package/lib/clients/infra/Registry.d.ts +17 -23
- package/lib/clients/infra/Registry.js +3 -3
- package/lib/clients/infra/Router.d.ts +8 -8
- package/lib/clients/infra/Sphinx.d.ts +2 -2
- package/lib/clients/infra/VBase.d.ts +14 -15
- package/lib/clients/infra/VBase.js +2 -2
- package/lib/clients/infra/Workspaces.d.ts +7 -7
- package/lib/clients/infra/index.js +2 -6
- package/lib/clients/janus/JanusClient.d.ts +1 -1
- package/lib/clients/janus/LicenseManager.js +1 -1
- package/lib/clients/janus/Segment.d.ts +3 -3
- package/lib/clients/janus/Segment.js +2 -2
- package/lib/clients/janus/Session.d.ts +2 -2
- package/lib/clients/janus/Tenant.d.ts +1 -1
- package/lib/clients/janus/index.js +2 -6
- package/lib/constants.d.ts +1 -1
- package/lib/constants.js +1 -1
- package/lib/errors/ResolverError.js +1 -1
- package/lib/errors/index.js +2 -6
- package/lib/index.js +2 -6
- package/lib/metrics/MetricsAccumulator.d.ts +2 -2
- package/lib/metrics/MetricsAccumulator.js +9 -9
- package/lib/responses.d.ts +4 -4
- package/lib/service/index.js +6 -7
- package/lib/service/loaders.js +6 -8
- package/lib/service/logger/console.js +4 -7
- package/lib/service/logger/index.js +2 -6
- package/lib/service/logger/logger.js +2 -2
- package/lib/service/logger/metricsLogger.js +10 -10
- package/lib/service/master.js +6 -7
- package/lib/service/metrics/requestMetricsMiddleware.js +13 -14
- package/lib/service/tracing/TracerSingleton.js +9 -9
- package/lib/service/tracing/metrics/MetricNames.js +12 -12
- package/lib/service/tracing/metrics/instruments.js +7 -14
- package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.js +5 -5
- package/lib/service/tracing/tracingMiddlewares.js +15 -18
- package/lib/service/worker/index.js +23 -24
- package/lib/service/worker/listeners.js +1 -2
- package/lib/service/worker/runtime/Service.js +1 -1
- package/lib/service/worker/runtime/builtIn/handlers.js +3 -6
- package/lib/service/worker/runtime/builtIn/middlewares.js +3 -5
- package/lib/service/worker/runtime/events/index.d.ts +1 -1
- package/lib/service/worker/runtime/events/index.js +10 -11
- package/lib/service/worker/runtime/events/middlewares/body.js +2 -2
- package/lib/service/worker/runtime/events/middlewares/context.js +1 -1
- package/lib/service/worker/runtime/events/router.js +2 -3
- package/lib/service/worker/runtime/graphql/index.js +7 -8
- package/lib/service/worker/runtime/graphql/middlewares/error.js +5 -5
- package/lib/service/worker/runtime/graphql/middlewares/query.js +6 -7
- package/lib/service/worker/runtime/graphql/middlewares/response.js +1 -1
- package/lib/service/worker/runtime/graphql/middlewares/run.js +2 -3
- package/lib/service/worker/runtime/graphql/middlewares/updateSchema.js +3 -4
- package/lib/service/worker/runtime/graphql/middlewares/upload.js +1 -1
- package/lib/service/worker/runtime/graphql/schema/index.d.ts +1 -1
- package/lib/service/worker/runtime/graphql/schema/index.js +7 -8
- package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.d.ts +2 -2
- package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.js +3 -4
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.js +1 -1
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.js +1 -1
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.js +2 -2
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslateTo.js +2 -2
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.js +1 -1
- package/lib/service/worker/runtime/graphql/schema/typeDefs/index.js +1 -2
- package/lib/service/worker/runtime/graphql/schema/typeDefs/sanitizedString.js +2 -2
- package/lib/service/worker/runtime/graphql/typings.d.ts +3 -3
- package/lib/service/worker/runtime/graphql/utils/cacheControl.js +1 -2
- package/lib/service/worker/runtime/graphql/utils/error.js +9 -10
- package/lib/service/worker/runtime/graphql/utils/pathname.js +2 -3
- package/lib/service/worker/runtime/graphql/utils/translations.d.ts +1 -1
- package/lib/service/worker/runtime/graphql/utils/translations.js +4 -7
- package/lib/service/worker/runtime/http/index.d.ts +2 -2
- package/lib/service/worker/runtime/http/index.js +20 -22
- package/lib/service/worker/runtime/http/middlewares/context.js +5 -7
- package/lib/service/worker/runtime/http/middlewares/error.js +1 -1
- package/lib/service/worker/runtime/http/middlewares/rateLimit.js +1 -1
- package/lib/service/worker/runtime/http/middlewares/setCookie.js +5 -5
- package/lib/service/worker/runtime/http/middlewares/settings.d.ts +1 -1
- package/lib/service/worker/runtime/http/middlewares/settings.js +9 -13
- package/lib/service/worker/runtime/http/middlewares/timings.js +3 -3
- package/lib/service/worker/runtime/http/router.js +2 -3
- package/lib/service/worker/runtime/http/routes.js +5 -8
- package/lib/service/worker/runtime/method.d.ts +2 -2
- package/lib/service/worker/runtime/method.js +1 -1
- package/lib/service/worker/runtime/statusTrack.d.ts +1 -1
- package/lib/service/worker/runtime/statusTrack.js +5 -10
- package/lib/service/worker/runtime/typings.d.ts +10 -10
- package/lib/service/worker/runtime/utils/compose.d.ts +2 -2
- package/lib/service/worker/runtime/utils/compose.js +2 -4
- package/lib/service/worker/runtime/utils/context.d.ts +2 -2
- package/lib/service/worker/runtime/utils/context.js +4 -5
- package/lib/service/worker/runtime/utils/recorder.js +1 -1
- package/lib/service/worker/runtime/utils/toArray.js +1 -2
- package/lib/tracing/UserLandTracer.js +2 -3
- package/lib/tracing/errorReporting/ErrorReport.js +13 -13
- package/lib/tracing/index.js +1 -1
- package/lib/tracing/utils.js +4 -5
- package/lib/utils/MineWinsConflictsResolver.d.ts +4 -4
- package/lib/utils/MineWinsConflictsResolver.js +10 -10
- package/lib/utils/app.js +23 -39
- package/lib/utils/appsStaleIfError.d.ts +0 -1
- package/lib/utils/appsStaleIfError.js +9 -17
- package/lib/utils/billingOptions.js +1 -2
- package/lib/utils/binding.js +2 -4
- package/lib/utils/buildFullPath.d.ts +11 -0
- package/lib/utils/buildFullPath.js +54 -0
- package/lib/utils/domain.js +1 -1
- package/lib/utils/error.js +4 -5
- package/lib/utils/index.js +2 -6
- package/lib/utils/log.js +2 -3
- package/lib/utils/message.js +5 -8
- package/lib/utils/renameBy.js +1 -2
- package/lib/utils/retry.js +6 -8
- package/lib/utils/status.js +1 -2
- package/lib/utils/tenant.js +2 -4
- package/lib/utils/time.d.ts +1 -1
- package/lib/utils/time.js +14 -23
- package/package.json +2 -2
|
@@ -13,7 +13,7 @@ interface MutateOptions<Variables extends object> {
|
|
|
13
13
|
variables: Variables;
|
|
14
14
|
throwOnError?: boolean;
|
|
15
15
|
}
|
|
16
|
-
export type Serializable = object | boolean | string | number;
|
|
16
|
+
export declare type Serializable = object | boolean | string | number;
|
|
17
17
|
export interface GraphQLResponse<T extends Serializable> {
|
|
18
18
|
data?: T;
|
|
19
19
|
errors?: GraphQLError[];
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
2
|
import { AxiosResponse } from 'axios';
|
|
4
3
|
import { IncomingMessage } from 'http';
|
|
5
4
|
import { IOContext } from '../service/worker/runtime/typings';
|
|
6
5
|
import { InstanceOptions, IOResponse, RequestConfig } from './typings';
|
|
7
|
-
type ClientOptions = IOContext & Partial<InstanceOptions>;
|
|
6
|
+
declare type ClientOptions = IOContext & Partial<InstanceOptions>;
|
|
8
7
|
export declare class HttpClient {
|
|
9
8
|
name: string;
|
|
10
9
|
private logger;
|
|
@@ -26,7 +25,7 @@ export declare class HttpClient {
|
|
|
26
25
|
postRaw: <T = void>(url: string, data?: any, config?: RequestConfig) => Promise<IOResponse<T>>;
|
|
27
26
|
patch: <T = void>(url: string, data?: any, config?: RequestConfig) => Promise<T>;
|
|
28
27
|
head: (url: string, config?: RequestConfig) => Promise<IOResponse<void>>;
|
|
29
|
-
delete: <T = void>(url: string, config?: RequestConfig) => Promise<IOResponse<T>>;
|
|
28
|
+
delete: <T = void>(url: string, config?: RequestConfig | undefined) => Promise<IOResponse<T>>;
|
|
30
29
|
protected request: (config: RequestConfig) => Promise<AxiosResponse>;
|
|
31
30
|
private getConfig;
|
|
32
31
|
}
|
|
@@ -44,7 +44,7 @@ class HttpClient {
|
|
|
44
44
|
return v;
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
|
-
const bodyHash =
|
|
47
|
+
const bodyHash = crypto_1.createHash('md5').update(JSON.stringify(data, deterministicReplacer)).digest('hex');
|
|
48
48
|
const cacheableConfig = this.getConfig(url, {
|
|
49
49
|
...config,
|
|
50
50
|
data,
|
|
@@ -107,14 +107,14 @@ class HttpClient {
|
|
|
107
107
|
this.logger = logger;
|
|
108
108
|
this.cacheableType = cacheableType;
|
|
109
109
|
this.memoizable = memoizable;
|
|
110
|
-
const limit = concurrency && concurrency > 0 &&
|
|
110
|
+
const limit = concurrency && concurrency > 0 && p_limit_1.default(concurrency) || undefined;
|
|
111
111
|
const headers = {
|
|
112
112
|
...defaultHeaders,
|
|
113
113
|
'Accept-Encoding': 'gzip',
|
|
114
114
|
'User-Agent': userAgent,
|
|
115
115
|
...host ? { [constants_1.FORWARDED_HOST_HEADER]: host } : null,
|
|
116
|
-
...tenant ? { [constants_1.TENANT_HEADER]:
|
|
117
|
-
...binding ? { [constants_1.BINDING_HEADER]:
|
|
116
|
+
...tenant ? { [constants_1.TENANT_HEADER]: tenant_1.formatTenantHeaderValue(tenant) } : null,
|
|
117
|
+
...binding ? { [constants_1.BINDING_HEADER]: binding_1.formatBindingHeaderValue(binding) } : null,
|
|
118
118
|
...locale ? { [constants_1.LOCALE_HEADER]: locale } : null,
|
|
119
119
|
...operationId ? { 'x-vtex-operation-id': operationId } : null,
|
|
120
120
|
...product ? { [constants_1.PRODUCT_HEADER]: product } : null,
|
|
@@ -125,21 +125,21 @@ class HttpClient {
|
|
|
125
125
|
headers['Authorization'] = `${authType} ${authToken}`; // tslint:disable-line
|
|
126
126
|
}
|
|
127
127
|
const memoizedCache = new Map();
|
|
128
|
-
this.runMiddlewares =
|
|
129
|
-
|
|
128
|
+
this.runMiddlewares = koa_compose_1.default([
|
|
129
|
+
tracing_1.createHttpClientTracingMiddleware({ tracer, logger, clientName: this.name, hasDiskCacheMiddleware: !!diskCache, hasMemoryCacheMiddleware: !!memoryCache }),
|
|
130
130
|
...(opts.middlewares || []),
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
...recorder ? [
|
|
135
|
-
|
|
131
|
+
request_1.defaultsMiddleware({ baseURL, rawHeaders: headers, params, timeout, retries, verbose, exponentialTimeoutCoefficient, initialBackoffDelay, exponentialBackoffCoefficient, httpsAgent }),
|
|
132
|
+
metrics_1.metricsMiddleware({ metrics, serverTiming, name }),
|
|
133
|
+
memoization_1.memoizationMiddleware({ memoizedCache }),
|
|
134
|
+
...recorder ? [recorder_1.recorderMiddleware(recorder)] : [],
|
|
135
|
+
cancellationToken_1.cancellationToken(cancellation),
|
|
136
136
|
inflight_1.singleFlightMiddleware,
|
|
137
137
|
notFound_1.acceptNotFoundMiddleware,
|
|
138
|
-
...memoryCache ? [
|
|
139
|
-
...diskCache ? [
|
|
138
|
+
...memoryCache ? [cache_1.cacheMiddleware({ type: cache_1.CacheType.Memory, storage: memoryCache, asyncSet: asyncSetCache })] : [],
|
|
139
|
+
...diskCache ? [cache_1.cacheMiddleware({ type: cache_1.CacheType.Disk, storage: diskCache, asyncSet: asyncSetCache })] : [],
|
|
140
140
|
notFound_1.notFoundFallbackMiddleware,
|
|
141
141
|
request_1.routerCacheMiddleware,
|
|
142
|
-
|
|
142
|
+
request_1.requestMiddleware(limit),
|
|
143
143
|
]);
|
|
144
144
|
}
|
|
145
145
|
}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
import HttpAgent, { HttpOptions as AgentHttpOptions, HttpsAgent, HttpsOptions as AgentHttpsOptions } from 'agentkeepalive';
|
|
2
|
-
|
|
3
|
-
export declare const
|
|
4
|
-
type HttpsOptions = Omit<AgentHttpsOptions, 'freeSocketTimeout' | 'keepAlive' | 'maxFreeSockets'>;
|
|
5
|
-
export declare const createHttpsAgent: (opts?: HttpsOptions) => HttpsAgent;
|
|
6
|
-
export {};
|
|
2
|
+
export declare const createHttpAgent: (opts?: Pick<AgentHttpOptions, "freeSocketKeepAliveTimeout" | "timeout" | "socketActiveTTL" | "keepAliveMsecs" | "maxSockets"> | undefined) => HttpAgent;
|
|
3
|
+
export declare const createHttpsAgent: (opts?: Pick<AgentHttpsOptions, "freeSocketKeepAliveTimeout" | "timeout" | "socketActiveTTL" | "keepAliveMsecs" | "maxSockets" | "rejectUnauthorized" | "maxCachedSessions" | "host" | "port" | "path" | "socket" | "checkServerIdentity" | "servername" | "session" | "minDHSize" | "lookup" | "ca" | "cert" | "sigalgs" | "ciphers" | "clientCertEngine" | "crl" | "dhparam" | "ecdhCurve" | "honorCipherOrder" | "key" | "privateKeyEngine" | "privateKeyIdentifier" | "maxVersion" | "minVersion" | "passphrase" | "pfx" | "secureOptions" | "secureProtocol" | "sessionIdContext" | "secureContext" | "enableTrace" | "requestCert" | "ALPNProtocols" | "SNICallback"> | undefined) => HttpsAgent;
|
package/lib/HttpClient/agents.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
9
5
|
}) : (function(o, m, k, k2) {
|
|
10
6
|
if (k2 === undefined) k2 = k;
|
|
11
7
|
o[k2] = m[k];
|
|
@@ -18,26 +14,24 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
18
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
15
|
if (mod && mod.__esModule) return mod;
|
|
20
16
|
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
18
|
__setModuleDefault(result, mod);
|
|
23
19
|
return result;
|
|
24
20
|
};
|
|
25
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
22
|
exports.createHttpsAgent = exports.createHttpAgent = void 0;
|
|
27
23
|
const agentkeepalive_1 = __importStar(require("agentkeepalive"));
|
|
28
|
-
|
|
24
|
+
exports.createHttpAgent = (opts) => new agentkeepalive_1.default({
|
|
29
25
|
...opts,
|
|
30
26
|
freeSocketTimeout: 30 * 1000,
|
|
31
27
|
keepAlive: true,
|
|
32
28
|
maxFreeSockets: 256,
|
|
33
29
|
socketActiveTTL: 120 * 1000,
|
|
34
30
|
});
|
|
35
|
-
exports.
|
|
36
|
-
const createHttpsAgent = (opts) => new agentkeepalive_1.HttpsAgent({
|
|
31
|
+
exports.createHttpsAgent = (opts) => new agentkeepalive_1.HttpsAgent({
|
|
37
32
|
...opts,
|
|
38
33
|
freeSocketTimeout: 30 * 1000,
|
|
39
34
|
keepAlive: true,
|
|
40
35
|
maxFreeSockets: 256,
|
|
41
36
|
socketActiveTTL: 120 * 1000,
|
|
42
37
|
});
|
|
43
|
-
exports.createHttpsAgent = createHttpsAgent;
|
package/lib/HttpClient/index.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
9
5
|
}) : (function(o, m, k, k2) {
|
|
10
6
|
if (k2 === undefined) k2 = k;
|
|
11
7
|
o[k2] = m[k];
|
|
12
8
|
}));
|
|
13
9
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !
|
|
10
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
15
11
|
};
|
|
16
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.inflightUrlWithQuery = exports.inflightURL = exports.CacheType = void 0;
|
|
18
13
|
__exportStar(require("./HttpClient"), exports);
|
|
19
14
|
__exportStar(require("./typings"), exports);
|
|
20
15
|
__exportStar(require("./GraphQLClient"), exports);
|
|
@@ -28,7 +28,7 @@ export interface Cached {
|
|
|
28
28
|
responseType?: string;
|
|
29
29
|
responseEncoding?: BufferEncoding;
|
|
30
30
|
}
|
|
31
|
-
export type CacheableRequestConfig = RequestConfig & {
|
|
31
|
+
export declare type CacheableRequestConfig = RequestConfig & {
|
|
32
32
|
url: string;
|
|
33
33
|
cacheable: CacheType;
|
|
34
34
|
memoizable: boolean;
|
|
@@ -5,7 +5,7 @@ const constants_1 = require("../../constants");
|
|
|
5
5
|
const tracing_1 = require("../../tracing");
|
|
6
6
|
const RANGE_HEADER_QS_KEY = '__range_header';
|
|
7
7
|
const cacheableStatusCodes = [200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501]; // https://tools.ietf.org/html/rfc7231#section-6.1
|
|
8
|
-
|
|
8
|
+
exports.cacheKey = (config) => {
|
|
9
9
|
const { baseURL = '', url = '', params, headers } = config;
|
|
10
10
|
const locale = headers === null || headers === void 0 ? void 0 : headers[constants_1.LOCALE_HEADER];
|
|
11
11
|
const encodedBaseURL = baseURL.replace(/\//g, '\\');
|
|
@@ -19,7 +19,6 @@ const cacheKey = (config) => {
|
|
|
19
19
|
}
|
|
20
20
|
return key;
|
|
21
21
|
};
|
|
22
|
-
exports.cacheKey = cacheKey;
|
|
23
22
|
const parseCacheHeaders = (headers) => {
|
|
24
23
|
const { 'cache-control': cacheControl = '', etag, age: ageStr } = headers;
|
|
25
24
|
const cacheDirectives = cacheControl.split(',').map(d => d.trim());
|
|
@@ -54,8 +53,8 @@ const CacheTypeNames = {
|
|
|
54
53
|
[CacheType.Disk]: 'disk',
|
|
55
54
|
[CacheType.Any]: 'any',
|
|
56
55
|
};
|
|
57
|
-
|
|
58
|
-
const CACHE_RESULT_TAG = type === CacheType.Disk ? "http.cache.disk" /*
|
|
56
|
+
exports.cacheMiddleware = ({ type, storage, asyncSet }) => {
|
|
57
|
+
const CACHE_RESULT_TAG = type === CacheType.Disk ? "http.cache.disk" /* HTTP_DISK_CACHE_RESULT */ : "http.cache.memory" /* HTTP_MEMORY_CACHE_RESULT */;
|
|
59
58
|
const cacheType = CacheTypeNames[type];
|
|
60
59
|
return async (ctx, next) => {
|
|
61
60
|
var _a, _b;
|
|
@@ -63,14 +62,14 @@ const cacheMiddleware = ({ type, storage, asyncSet }) => {
|
|
|
63
62
|
return await next();
|
|
64
63
|
}
|
|
65
64
|
const { rootSpan: span, tracer, logger } = (_a = ctx.tracing) !== null && _a !== void 0 ? _a : {};
|
|
66
|
-
const key =
|
|
65
|
+
const key = exports.cacheKey(ctx.config);
|
|
67
66
|
const segmentToken = (_b = ctx.config.headers) === null || _b === void 0 ? void 0 : _b[constants_1.SEGMENT_HEADER];
|
|
68
67
|
const keyWithSegment = key + segmentToken;
|
|
69
68
|
span === null || span === void 0 ? void 0 : span.log({
|
|
70
|
-
event: "cache-key-created" /*
|
|
71
|
-
["cache-type" /*
|
|
72
|
-
["key" /*
|
|
73
|
-
["key-with-segment" /*
|
|
69
|
+
event: "cache-key-created" /* CACHE_KEY_CREATE */,
|
|
70
|
+
["cache-type" /* CACHE_TYPE */]: cacheType,
|
|
71
|
+
["key" /* KEY */]: key,
|
|
72
|
+
["key-with-segment" /* KEY_WITH_SEGMENT */]: keyWithSegment,
|
|
74
73
|
});
|
|
75
74
|
const cacheReadSpan = createCacheSpan(cacheType, 'read', tracer, span);
|
|
76
75
|
let cached = undefined;
|
|
@@ -92,12 +91,12 @@ const cacheMiddleware = ({ type, storage, asyncSet }) => {
|
|
|
92
91
|
}
|
|
93
92
|
const now = Date.now();
|
|
94
93
|
span === null || span === void 0 ? void 0 : span.log({
|
|
95
|
-
event: "local-cache-hit-info" /*
|
|
96
|
-
["cache-type" /*
|
|
97
|
-
["etag" /*
|
|
98
|
-
["expiration-time" /*
|
|
99
|
-
["response-type" /*
|
|
100
|
-
["response-encoding" /*
|
|
94
|
+
event: "local-cache-hit-info" /* LOCAL_CACHE_HIT_INFO */,
|
|
95
|
+
["cache-type" /* CACHE_TYPE */]: cacheType,
|
|
96
|
+
["etag" /* ETAG */]: cachedEtag,
|
|
97
|
+
["expiration-time" /* EXPIRATION_TIME */]: (expiration - now) / 1000,
|
|
98
|
+
["response-type" /* RESPONSE_TYPE */]: responseType,
|
|
99
|
+
["response-encoding" /* RESPONSE_ENCONDING */]: responseEncoding,
|
|
101
100
|
});
|
|
102
101
|
if (expiration > now) {
|
|
103
102
|
ctx.response = response;
|
|
@@ -106,10 +105,10 @@ const cacheMiddleware = ({ type, storage, asyncSet }) => {
|
|
|
106
105
|
revalidated: 0,
|
|
107
106
|
router: 0,
|
|
108
107
|
};
|
|
109
|
-
span === null || span === void 0 ? void 0 : span.setTag(CACHE_RESULT_TAG, "HIT" /*
|
|
108
|
+
span === null || span === void 0 ? void 0 : span.setTag(CACHE_RESULT_TAG, "HIT" /* HIT */);
|
|
110
109
|
return;
|
|
111
110
|
}
|
|
112
|
-
span === null || span === void 0 ? void 0 : span.setTag(CACHE_RESULT_TAG, "STALE" /*
|
|
111
|
+
span === null || span === void 0 ? void 0 : span.setTag(CACHE_RESULT_TAG, "STALE" /* STALE */);
|
|
113
112
|
const validateStatus = addNotModified(ctx.config.validateStatus);
|
|
114
113
|
if (cachedEtag && validateStatus(response.status)) {
|
|
115
114
|
ctx.config.headers = {
|
|
@@ -120,7 +119,7 @@ const cacheMiddleware = ({ type, storage, asyncSet }) => {
|
|
|
120
119
|
}
|
|
121
120
|
}
|
|
122
121
|
else {
|
|
123
|
-
span === null || span === void 0 ? void 0 : span.setTag(CACHE_RESULT_TAG, "MISS" /*
|
|
122
|
+
span === null || span === void 0 ? void 0 : span.setTag(CACHE_RESULT_TAG, "MISS" /* MISS */);
|
|
124
123
|
}
|
|
125
124
|
await next();
|
|
126
125
|
if (!ctx.response) {
|
|
@@ -140,19 +139,19 @@ const cacheMiddleware = ({ type, storage, asyncSet }) => {
|
|
|
140
139
|
const { forceMaxAge } = ctx.config;
|
|
141
140
|
const maxAge = forceMaxAge && cacheableStatusCodes.includes(status) ? Math.max(forceMaxAge, headerMaxAge) : headerMaxAge;
|
|
142
141
|
span === null || span === void 0 ? void 0 : span.log({
|
|
143
|
-
event: "cache-config" /*
|
|
144
|
-
["cache-type" /*
|
|
145
|
-
["age" /*
|
|
146
|
-
["calculated-max-age" /*
|
|
147
|
-
["max-age" /*
|
|
148
|
-
["force-max-age" /*
|
|
149
|
-
["etag" /*
|
|
150
|
-
["no-cache" /*
|
|
151
|
-
["no-store" /*
|
|
142
|
+
event: "cache-config" /* CACHE_CONFIG */,
|
|
143
|
+
["cache-type" /* CACHE_TYPE */]: cacheType,
|
|
144
|
+
["age" /* AGE */]: age,
|
|
145
|
+
["calculated-max-age" /* CALCULATED_MAX_AGE */]: maxAge,
|
|
146
|
+
["max-age" /* MAX_AGE */]: headerMaxAge,
|
|
147
|
+
["force-max-age" /* FORCE_MAX_AGE */]: forceMaxAge,
|
|
148
|
+
["etag" /* ETAG */]: etag,
|
|
149
|
+
["no-cache" /* NO_CACHE */]: noCache,
|
|
150
|
+
["no-store" /* NO_STORE */]: noStore,
|
|
152
151
|
});
|
|
153
152
|
// Indicates this should NOT be cached and this request will not be considered a miss.
|
|
154
153
|
if (!forceMaxAge && (noStore || (noCache && !etag))) {
|
|
155
|
-
span === null || span === void 0 ? void 0 : span.log({ event: "no-local-cache-save" /*
|
|
154
|
+
span === null || span === void 0 ? void 0 : span.log({ event: "no-local-cache-save" /* NO_LOCAL_CACHE_SAVE */, ["cache-type" /* CACHE_TYPE */]: cacheType });
|
|
156
155
|
return;
|
|
157
156
|
}
|
|
158
157
|
const shouldCache = maxAge || etag;
|
|
@@ -189,14 +188,14 @@ const cacheMiddleware = ({ type, storage, asyncSet }) => {
|
|
|
189
188
|
else {
|
|
190
189
|
await storageSet();
|
|
191
190
|
span === null || span === void 0 ? void 0 : span.log({
|
|
192
|
-
event: "local-cache-saved" /*
|
|
193
|
-
["cache-type" /*
|
|
194
|
-
["key-set" /*
|
|
195
|
-
["age" /*
|
|
196
|
-
["etag" /*
|
|
197
|
-
["expiration-time" /*
|
|
198
|
-
["response-encoding" /*
|
|
199
|
-
["response-type" /*
|
|
191
|
+
event: "local-cache-saved" /* LOCAL_CACHE_SAVED */,
|
|
192
|
+
["cache-type" /* CACHE_TYPE */]: cacheType,
|
|
193
|
+
["key-set" /* KEY_SET */]: setKey,
|
|
194
|
+
["age" /* AGE */]: currentAge,
|
|
195
|
+
["etag" /* ETAG */]: etag,
|
|
196
|
+
["expiration-time" /* EXPIRATION_TIME */]: (expiration - Date.now()) / 1000,
|
|
197
|
+
["response-encoding" /* RESPONSE_ENCONDING */]: responseEncoding,
|
|
198
|
+
["response-type" /* RESPONSE_TYPE */]: responseType,
|
|
200
199
|
});
|
|
201
200
|
}
|
|
202
201
|
}
|
|
@@ -209,10 +208,9 @@ const cacheMiddleware = ({ type, storage, asyncSet }) => {
|
|
|
209
208
|
}
|
|
210
209
|
return;
|
|
211
210
|
}
|
|
212
|
-
span === null || span === void 0 ? void 0 : span.log({ event: "no-local-cache-save" /*
|
|
211
|
+
span === null || span === void 0 ? void 0 : span.log({ event: "no-local-cache-save" /* NO_LOCAL_CACHE_SAVE */, ["cache-type" /* CACHE_TYPE */]: cacheType });
|
|
213
212
|
};
|
|
214
213
|
};
|
|
215
|
-
exports.cacheMiddleware = cacheMiddleware;
|
|
216
214
|
const createCacheSpan = (cacheType, operation, tracer, parentSpan) => {
|
|
217
215
|
if (tracer && tracer.isTraceSampled && cacheType === 'disk') {
|
|
218
216
|
return tracer.startSpan(`${operation}-disk-cache`, { childOf: parentSpan });
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Cancellation } from '../../service/worker/runtime/typings';
|
|
2
2
|
import { MiddlewareContext } from '../typings';
|
|
3
|
-
export declare const cancellationToken: (cancellation?: Cancellation) => (ctx: MiddlewareContext, next: () => Promise<void>) => Promise<void>;
|
|
3
|
+
export declare const cancellationToken: (cancellation?: Cancellation | undefined) => (ctx: MiddlewareContext, next: () => Promise<void>) => Promise<void>;
|
|
@@ -43,7 +43,7 @@ const handleCancellation = (ctx, cancellation) => {
|
|
|
43
43
|
},
|
|
44
44
|
};
|
|
45
45
|
};
|
|
46
|
-
|
|
46
|
+
exports.cancellationToken = (cancellation) => async (ctx, next) => {
|
|
47
47
|
const { config: { method } } = ctx;
|
|
48
48
|
if (!cancellation) {
|
|
49
49
|
return await next();
|
|
@@ -71,4 +71,3 @@ const cancellationToken = (cancellation) => async (ctx, next) => {
|
|
|
71
71
|
onRequestFinish();
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
|
-
exports.cancellationToken = cancellationToken;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InflightKeyGenerator, MiddlewareContext } from '../typings';
|
|
2
|
-
export type Inflight = Required<Pick<MiddlewareContext, 'cacheHit' | 'response'>>;
|
|
2
|
+
export declare type Inflight = Required<Pick<MiddlewareContext, 'cacheHit' | 'response'>>;
|
|
3
3
|
export declare const singleFlightMiddleware: (ctx: MiddlewareContext, next: () => Promise<void>) => Promise<void>;
|
|
4
4
|
export declare const inflightURL: InflightKeyGenerator;
|
|
5
5
|
export declare const inflightUrlWithQuery: InflightKeyGenerator;
|
|
@@ -4,7 +4,7 @@ exports.inflightUrlWithQuery = exports.inflightURL = exports.singleFlightMiddlew
|
|
|
4
4
|
const qs_1 = require("qs");
|
|
5
5
|
const inflight = new Map();
|
|
6
6
|
let metricsAdded = false;
|
|
7
|
-
|
|
7
|
+
exports.singleFlightMiddleware = async (ctx, next) => {
|
|
8
8
|
const { inflightKey } = ctx.config;
|
|
9
9
|
if (!inflightKey) {
|
|
10
10
|
return await next();
|
|
@@ -47,8 +47,5 @@ const singleFlightMiddleware = async (ctx, next) => {
|
|
|
47
47
|
await promise;
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
exports.
|
|
51
|
-
|
|
52
|
-
exports.inflightURL = inflightURL;
|
|
53
|
-
const inflightUrlWithQuery = ({ baseURL, url, params }) => baseURL + url + (0, qs_1.stringify)(params, { arrayFormat: 'repeat', addQueryPrefix: true });
|
|
54
|
-
exports.inflightUrlWithQuery = inflightUrlWithQuery;
|
|
50
|
+
exports.inflightURL = ({ baseURL, url }) => baseURL + url;
|
|
51
|
+
exports.inflightUrlWithQuery = ({ baseURL, url, params }) => baseURL + url + qs_1.stringify(params, { arrayFormat: 'repeat', addQueryPrefix: true });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MiddlewareContext } from '../typings';
|
|
2
|
-
export type Memoized = Required<Pick<MiddlewareContext, 'cacheHit' | 'response'>>;
|
|
2
|
+
export declare type Memoized = Required<Pick<MiddlewareContext, 'cacheHit' | 'response'>>;
|
|
3
3
|
interface MemoizationOptions {
|
|
4
4
|
memoizedCache: Map<string, Promise<Memoized>>;
|
|
5
5
|
}
|
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.memoizationMiddleware = void 0;
|
|
4
4
|
const cache_1 = require("./cache");
|
|
5
|
-
|
|
5
|
+
exports.memoizationMiddleware = ({ memoizedCache }) => {
|
|
6
6
|
return async (ctx, next) => {
|
|
7
7
|
var _a;
|
|
8
|
-
if (!
|
|
8
|
+
if (!cache_1.isLocallyCacheable(ctx.config, cache_1.CacheType.Any) || !ctx.config.memoizable) {
|
|
9
9
|
return next();
|
|
10
10
|
}
|
|
11
11
|
const span = (_a = ctx.tracing) === null || _a === void 0 ? void 0 : _a.rootSpan;
|
|
12
|
-
const key =
|
|
12
|
+
const key = cache_1.cacheKey(ctx.config);
|
|
13
13
|
const isMemoized = !!memoizedCache.has(key);
|
|
14
|
-
span === null || span === void 0 ? void 0 : span.log({ event: "cache-key-created" /*
|
|
14
|
+
span === null || span === void 0 ? void 0 : span.log({ event: "cache-key-created" /* CACHE_KEY_CREATE */, ["cache-type" /* CACHE_TYPE */]: 'memoization', ["key" /* KEY */]: key });
|
|
15
15
|
if (isMemoized) {
|
|
16
|
-
span === null || span === void 0 ? void 0 : span.setTag("http.cache.memoization" /*
|
|
16
|
+
span === null || span === void 0 ? void 0 : span.setTag("http.cache.memoization" /* HTTP_MEMOIZATION_CACHE_RESULT */, "HIT" /* HIT */);
|
|
17
17
|
const memoized = await memoizedCache.get(key);
|
|
18
18
|
ctx.memoizedHit = isMemoized;
|
|
19
19
|
ctx.response = memoized.response;
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
|
-
span === null || span === void 0 ? void 0 : span.setTag("http.cache.memoization" /*
|
|
23
|
+
span === null || span === void 0 ? void 0 : span.setTag("http.cache.memoization" /* HTTP_MEMOIZATION_CACHE_RESULT */, "MISS" /* MISS */);
|
|
24
24
|
const promise = new Promise(async (resolve, reject) => {
|
|
25
25
|
try {
|
|
26
26
|
await next();
|
|
@@ -28,11 +28,11 @@ const memoizationMiddleware = ({ memoizedCache }) => {
|
|
|
28
28
|
cacheHit: ctx.cacheHit,
|
|
29
29
|
response: ctx.response,
|
|
30
30
|
});
|
|
31
|
-
span === null || span === void 0 ? void 0 : span.log({ event: "memoization-cache-saved" /*
|
|
31
|
+
span === null || span === void 0 ? void 0 : span.log({ event: "memoization-cache-saved" /* MEMOIZATION_CACHE_SAVED */, ["key-set" /* KEY_SET */]: key });
|
|
32
32
|
}
|
|
33
33
|
catch (err) {
|
|
34
34
|
reject(err);
|
|
35
|
-
span === null || span === void 0 ? void 0 : span.log({ event: "memoization-cache-saved-error" /*
|
|
35
|
+
span === null || span === void 0 ? void 0 : span.log({ event: "memoization-cache-saved-error" /* MEMOIZATION_CACHE_SAVED_ERROR */, ["key-set" /* KEY_SET */]: key });
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
memoizedCache.set(key, promise);
|
|
@@ -40,4 +40,3 @@ const memoizationMiddleware = ({ memoizedCache }) => {
|
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
|
-
exports.memoizationMiddleware = memoizationMiddleware;
|
|
@@ -7,9 +7,9 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
const retry_1 = require("../../utils/retry");
|
|
8
8
|
const status_1 = require("../../utils/status");
|
|
9
9
|
const axios_1 = require("axios");
|
|
10
|
-
|
|
10
|
+
exports.metricsMiddleware = ({ metrics, serverTiming, name }) => {
|
|
11
11
|
const serverTimingStart = process.hrtime();
|
|
12
|
-
const serverTimingLabel =
|
|
12
|
+
const serverTimingLabel = utils_1.shrinkTimings(utils_1.formatTimingName({
|
|
13
13
|
hopNumber: 0,
|
|
14
14
|
source: process.env.VTEX_APP_NAME,
|
|
15
15
|
target: name || 'unknown',
|
|
@@ -25,7 +25,7 @@ const metricsMiddleware = ({ metrics, serverTiming, name }) => {
|
|
|
25
25
|
}
|
|
26
26
|
await next();
|
|
27
27
|
if (ctx.config.metric && ctx.response && ctx.response.status) {
|
|
28
|
-
status =
|
|
28
|
+
status = status_1.statusLabel(ctx.response.status);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
catch (err) {
|
|
@@ -43,7 +43,7 @@ const metricsMiddleware = ({ metrics, serverTiming, name }) => {
|
|
|
43
43
|
status = 'timeout';
|
|
44
44
|
}
|
|
45
45
|
else if (err.response && err.response.status) {
|
|
46
|
-
status =
|
|
46
|
+
status = status_1.statusLabel(err.response.status);
|
|
47
47
|
}
|
|
48
48
|
else if (isCancelled) {
|
|
49
49
|
status = 'cancelled';
|
|
@@ -89,9 +89,9 @@ const metricsMiddleware = ({ metrics, serverTiming, name }) => {
|
|
|
89
89
|
...extensions,
|
|
90
90
|
...errorCode || errorStatus ? { errorCode, errorStatus } : null,
|
|
91
91
|
millis: end
|
|
92
|
-
?
|
|
92
|
+
? utils_1.hrToMillis(end)
|
|
93
93
|
: extensions.revalidated || extensions.router || status !== 'success'
|
|
94
|
-
?
|
|
94
|
+
? utils_1.hrToMillis(process.hrtime(start))
|
|
95
95
|
: '(from cache)',
|
|
96
96
|
status: ctx.response && ctx.response.status,
|
|
97
97
|
headers: ctx.response && ctx.response.headers,
|
|
@@ -105,7 +105,7 @@ const metricsMiddleware = ({ metrics, serverTiming, name }) => {
|
|
|
105
105
|
}
|
|
106
106
|
if (serverTiming) {
|
|
107
107
|
// Timings in the client's perspective
|
|
108
|
-
const dur =
|
|
108
|
+
const dur = utils_1.hrToMillis(process.hrtime(serverTimingStart));
|
|
109
109
|
if (!serverTiming[serverTimingLabel] || Number(serverTiming[serverTimingLabel]) < dur) {
|
|
110
110
|
serverTiming[serverTimingLabel] = `${dur}`;
|
|
111
111
|
}
|
|
@@ -113,4 +113,3 @@ const metricsMiddleware = ({ metrics, serverTiming, name }) => {
|
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
115
|
};
|
|
116
|
-
exports.metricsMiddleware = metricsMiddleware;
|
|
@@ -2,6 +2,6 @@ import { AxiosRequestConfig } from 'axios';
|
|
|
2
2
|
import { MiddlewareContext } from '../typings';
|
|
3
3
|
export declare const acceptNotFoundMiddleware: (ctx: MiddlewareContext, next: () => Promise<void>) => Promise<void>;
|
|
4
4
|
export declare const notFoundFallbackMiddleware: (ctx: MiddlewareContext, next: () => Promise<void>) => Promise<void>;
|
|
5
|
-
export type IgnoreNotFoundRequestConfig = AxiosRequestConfig & {
|
|
5
|
+
export declare type IgnoreNotFoundRequestConfig = AxiosRequestConfig & {
|
|
6
6
|
nullIfNotFound?: boolean;
|
|
7
7
|
};
|
|
@@ -5,19 +5,17 @@ const addNotFound = (validateStatus) => (status) => validateStatus(status) || st
|
|
|
5
5
|
function nullIfNotFound(config) {
|
|
6
6
|
return config && config.nullIfNotFound;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
exports.acceptNotFoundMiddleware = async (ctx, next) => {
|
|
9
9
|
const { config } = ctx;
|
|
10
10
|
if (nullIfNotFound(config)) {
|
|
11
11
|
ctx.config.validateStatus = addNotFound(config.validateStatus);
|
|
12
12
|
}
|
|
13
13
|
await next();
|
|
14
14
|
};
|
|
15
|
-
exports.
|
|
16
|
-
const notFoundFallbackMiddleware = async (ctx, next) => {
|
|
15
|
+
exports.notFoundFallbackMiddleware = async (ctx, next) => {
|
|
17
16
|
await next();
|
|
18
17
|
const { config } = ctx;
|
|
19
18
|
if (nullIfNotFound(config) && ctx.response && ctx.response.status === 404) {
|
|
20
19
|
ctx.response.data = null;
|
|
21
20
|
}
|
|
22
21
|
};
|
|
23
|
-
exports.notFoundFallbackMiddleware = notFoundFallbackMiddleware;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.recorderMiddleware = void 0;
|
|
4
4
|
const axios_1 = require("axios");
|
|
5
|
-
|
|
5
|
+
exports.recorderMiddleware = (recorder) => async (ctx, next) => {
|
|
6
6
|
var _a;
|
|
7
7
|
if ((_a = ctx.config) === null || _a === void 0 ? void 0 : _a.ignoreRecorder) {
|
|
8
8
|
await next();
|
|
@@ -24,4 +24,3 @@ const recorderMiddleware = (recorder) => async (ctx, next) => {
|
|
|
24
24
|
throw err;
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
|
-
exports.recorderMiddleware = recorderMiddleware;
|
|
@@ -5,7 +5,7 @@ const agents_1 = require("../../agents");
|
|
|
5
5
|
class HttpAgentSingleton {
|
|
6
6
|
static getHttpAgent() {
|
|
7
7
|
if (!HttpAgentSingleton.httpAgent) {
|
|
8
|
-
HttpAgentSingleton.httpAgent =
|
|
8
|
+
HttpAgentSingleton.httpAgent = agents_1.createHttpAgent();
|
|
9
9
|
}
|
|
10
10
|
return HttpAgentSingleton.httpAgent;
|
|
11
11
|
}
|
|
@@ -15,4 +15,4 @@ export interface DefaultMiddlewareArgs {
|
|
|
15
15
|
}
|
|
16
16
|
export declare const defaultsMiddleware: ({ baseURL, rawHeaders, params, timeout, retries, verbose, exponentialTimeoutCoefficient, initialBackoffDelay, exponentialBackoffCoefficient, httpsAgent }: DefaultMiddlewareArgs) => (ctx: MiddlewareContext, next: () => Promise<void>) => Promise<void>;
|
|
17
17
|
export declare const routerCacheMiddleware: (ctx: MiddlewareContext, next: () => Promise<void>) => Promise<void>;
|
|
18
|
-
export declare const requestMiddleware: (limit?: Limit) => (ctx: MiddlewareContext, next: () => Promise<void>) => Promise<void>;
|
|
18
|
+
export declare const requestMiddleware: (limit?: Limit | undefined) => (ctx: MiddlewareContext, next: () => Promise<void>) => Promise<void>;
|