Skip to content

Commit fd2731d

Browse files
chore: generated code for commit a4346a72. [skip ci]
algolia/api-clients-automation@a4346a7 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Clément Vannicatte <[email protected]>
1 parent 9a46652 commit fd2731d

File tree

17 files changed

+118
-138
lines changed

17 files changed

+118
-138
lines changed

bundlesize.config.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"files": [
33
{
44
"path": "packages/algoliasearch/dist/algoliasearch.umd.js",
5-
"maxSize": "8.35KB"
5+
"maxSize": "8.30KB"
66
},
77
{
88
"path": "packages/algoliasearch/dist/lite/lite.umd.js",
9-
"maxSize": "3.90KB"
9+
"maxSize": "3.85KB"
1010
},
1111
{
1212
"path": "packages/client-abtesting/dist/client-abtesting.umd.js",
@@ -18,15 +18,15 @@
1818
},
1919
{
2020
"path": "packages/client-insights/dist/client-insights.umd.js",
21-
"maxSize": "3.85KB"
21+
"maxSize": "3.80KB"
2222
},
2323
{
2424
"path": "packages/client-personalization/dist/client-personalization.umd.js",
25-
"maxSize": "4.00KB"
25+
"maxSize": "3.95KB"
2626
},
2727
{
2828
"path": "packages/client-query-suggestions/dist/client-query-suggestions.umd.js",
29-
"maxSize": "4.05KB"
29+
"maxSize": "4.00KB"
3030
},
3131
{
3232
"path": "packages/client-search/dist/client-search.umd.js",
@@ -38,7 +38,7 @@
3838
},
3939
{
4040
"path": "packages/predict/dist/predict.umd.js",
41-
"maxSize": "3.90KB"
41+
"maxSize": "3.85KB"
4242
},
4343
{
4444
"path": "packages/recommend/dist/recommend.umd.js",

packages/algoliasearch/lite/src/liteClient.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,14 @@ export function createLiteClient({
124124

125125
const requestPath = '/1{path}'.replace('{path}', path);
126126
const headers: Headers = {};
127-
const queryParameters: QueryParameters = parameters || {};
127+
const queryParameters: QueryParameters = parameters ? parameters : {};
128128

129129
const request: Request = {
130130
method: 'POST',
131131
path: requestPath,
132132
queryParameters,
133133
headers,
134-
data: body,
134+
data: body ? body : {},
135135
};
136136

137137
return transporter.request(request, requestOptions);

packages/client-abtesting/src/abtestingClient.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ export function createAbtestingClient({
155155

156156
const requestPath = '/1{path}'.replace('{path}', path);
157157
const headers: Headers = {};
158-
const queryParameters: QueryParameters = parameters || {};
158+
const queryParameters: QueryParameters = parameters ? parameters : {};
159159

160160
const request: Request = {
161161
method: 'DELETE',
@@ -221,7 +221,7 @@ export function createAbtestingClient({
221221

222222
const requestPath = '/1{path}'.replace('{path}', path);
223223
const headers: Headers = {};
224-
const queryParameters: QueryParameters = parameters || {};
224+
const queryParameters: QueryParameters = parameters ? parameters : {};
225225

226226
const request: Request = {
227227
method: 'GET',
@@ -321,14 +321,14 @@ export function createAbtestingClient({
321321

322322
const requestPath = '/1{path}'.replace('{path}', path);
323323
const headers: Headers = {};
324-
const queryParameters: QueryParameters = parameters || {};
324+
const queryParameters: QueryParameters = parameters ? parameters : {};
325325

326326
const request: Request = {
327327
method: 'POST',
328328
path: requestPath,
329329
queryParameters,
330330
headers,
331-
data: body,
331+
data: body ? body : {},
332332
};
333333

334334
return transporter.request(request, requestOptions);
@@ -354,14 +354,14 @@ export function createAbtestingClient({
354354

355355
const requestPath = '/1{path}'.replace('{path}', path);
356356
const headers: Headers = {};
357-
const queryParameters: QueryParameters = parameters || {};
357+
const queryParameters: QueryParameters = parameters ? parameters : {};
358358

359359
const request: Request = {
360360
method: 'PUT',
361361
path: requestPath,
362362
queryParameters,
363363
headers,
364-
data: body,
364+
data: body ? body : {},
365365
};
366366

367367
return transporter.request(request, requestOptions);

packages/client-analytics/src/analyticsClient.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export function createAnalyticsClient({
133133

134134
const requestPath = '/1{path}'.replace('{path}', path);
135135
const headers: Headers = {};
136-
const queryParameters: QueryParameters = parameters || {};
136+
const queryParameters: QueryParameters = parameters ? parameters : {};
137137

138138
const request: Request = {
139139
method: 'DELETE',
@@ -164,7 +164,7 @@ export function createAnalyticsClient({
164164

165165
const requestPath = '/1{path}'.replace('{path}', path);
166166
const headers: Headers = {};
167-
const queryParameters: QueryParameters = parameters || {};
167+
const queryParameters: QueryParameters = parameters ? parameters : {};
168168

169169
const request: Request = {
170170
method: 'GET',
@@ -1236,14 +1236,14 @@ export function createAnalyticsClient({
12361236

12371237
const requestPath = '/1{path}'.replace('{path}', path);
12381238
const headers: Headers = {};
1239-
const queryParameters: QueryParameters = parameters || {};
1239+
const queryParameters: QueryParameters = parameters ? parameters : {};
12401240

12411241
const request: Request = {
12421242
method: 'POST',
12431243
path: requestPath,
12441244
queryParameters,
12451245
headers,
1246-
data: body,
1246+
data: body ? body : {},
12471247
};
12481248

12491249
return transporter.request(request, requestOptions);
@@ -1269,14 +1269,14 @@ export function createAnalyticsClient({
12691269

12701270
const requestPath = '/1{path}'.replace('{path}', path);
12711271
const headers: Headers = {};
1272-
const queryParameters: QueryParameters = parameters || {};
1272+
const queryParameters: QueryParameters = parameters ? parameters : {};
12731273

12741274
const request: Request = {
12751275
method: 'PUT',
12761276
path: requestPath,
12771277
queryParameters,
12781278
headers,
1279-
data: body,
1279+
data: body ? body : {},
12801280
};
12811281

12821282
return transporter.request(request, requestOptions);
Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { EchoResponse, EndRequest, Request, Response } from './types';
1+
import type { EchoResponse, EndRequest, Requester, Response } from './types';
22

33
export type EchoRequesterParams = {
44
getURL: (url: string) => URL;
@@ -8,7 +8,8 @@ export type EchoRequesterParams = {
88
function getUrlParams({
99
host,
1010
searchParams: urlSearchParams,
11-
}: URL): Pick<EchoResponse, 'algoliaAgent' | 'host' | 'searchParams'> {
11+
pathname,
12+
}: URL): Pick<EchoResponse, 'algoliaAgent' | 'host' | 'path' | 'searchParams'> {
1213
const algoliaAgent = urlSearchParams.get('x-algolia-agent') || '';
1314
const searchParams = {};
1415

@@ -25,39 +26,34 @@ function getUrlParams({
2526
algoliaAgent,
2627
searchParams:
2728
Object.keys(searchParams).length === 0 ? undefined : searchParams,
29+
path: pathname,
2830
};
2931
}
3032

31-
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
3233
export function createEchoRequester({
3334
getURL,
3435
status = 200,
35-
}: EchoRequesterParams) {
36-
function send(
37-
{ headers, url, connectTimeout, responseTimeout }: EndRequest,
38-
{ data, ...originalRequest }: Request
39-
): Promise<Response> {
40-
const { host, searchParams, algoliaAgent } = getUrlParams(getURL(url));
41-
const originalData =
42-
data && Object.keys(data).length > 0 ? data : undefined;
36+
}: EchoRequesterParams): Requester {
37+
function send(request: EndRequest): Promise<Response> {
38+
const { host, searchParams, algoliaAgent, path } = getUrlParams(
39+
getURL(request.url)
40+
);
41+
42+
const content: EchoResponse = {
43+
...request,
44+
data: request.data ? JSON.parse(request.data) : undefined,
45+
path,
46+
host,
47+
algoliaAgent: encodeURI(algoliaAgent),
48+
searchParams,
49+
};
4350

4451
return Promise.resolve({
45-
content: JSON.stringify({
46-
...originalRequest,
47-
host,
48-
headers,
49-
connectTimeout,
50-
responseTimeout,
51-
algoliaAgent: encodeURI(algoliaAgent),
52-
searchParams,
53-
data: originalData,
54-
}),
52+
content: JSON.stringify(content),
5553
isTimedOut: false,
5654
status,
5755
});
5856
}
5957

6058
return { send };
6159
}
62-
63-
export type EchoRequester = ReturnType<typeof createEchoRequester>;

packages/client-common/src/transporter/createTransporter.ts

Lines changed: 19 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -85,17 +85,20 @@ export function createTransporter({
8585

8686
async function retryableRequest<TResponse>(
8787
request: Request,
88-
requestOptions: RequestOptions
88+
requestOptions: RequestOptions,
89+
isRead = true
8990
): Promise<TResponse> {
9091
const stackTrace: StackFrame[] = [];
91-
const isRead = request.useReadTransporter || request.method === 'GET';
9292

9393
/**
9494
* First we prepare the payload that do not depend from hosts.
9595
*/
9696
const data = serializeData(request, requestOptions);
97-
const headers = serializeHeaders(baseHeaders, requestOptions);
98-
const method = request.method;
97+
const headers = serializeHeaders(
98+
baseHeaders,
99+
request.headers,
100+
requestOptions.headers
101+
);
99102

100103
// On `GET`, the data is proxied to query parameters.
101104
const dataQueryParameters: QueryParameters =
@@ -109,6 +112,7 @@ export function createTransporter({
109112
const queryParameters: QueryParameters = {
110113
'x-algolia-agent': algoliaAgent.value,
111114
...baseQueryParameters,
115+
...request.queryParameters,
112116
...dataQueryParameters,
113117
};
114118

@@ -152,7 +156,7 @@ export function createTransporter({
152156
const payload: EndRequest = {
153157
data,
154158
headers,
155-
method,
159+
method: request.method,
156160
url: serializeUrl(host, request.path, queryParameters),
157161
connectTimeout: getTimeout(timeoutsCount, timeouts.connect),
158162
responseTimeout: getTimeout(timeoutsCount, responseTimeout),
@@ -236,41 +240,20 @@ export function createTransporter({
236240
}
237241

238242
function createRequest<TResponse>(
239-
baseRequest: Request,
240-
baseRequestOptions: RequestOptions = {}
243+
request: Request,
244+
requestOptions: RequestOptions = {}
241245
): Promise<TResponse> {
242-
const mergedData: Request['data'] = Array.isArray(baseRequest.data)
243-
? baseRequest.data
244-
: {
245-
...baseRequest.data,
246-
...baseRequestOptions.data,
247-
};
248-
const request: Request = {
249-
...baseRequest,
250-
data: mergedData,
251-
};
252-
const requestOptions: RequestOptions = {
253-
cacheable: baseRequestOptions.cacheable,
254-
timeout: baseRequestOptions.timeout,
255-
queryParameters: {
256-
...baseRequest.queryParameters,
257-
...baseRequestOptions.queryParameters,
258-
},
259-
headers: {
260-
Accept: 'application/json',
261-
...baseRequest.headers,
262-
...baseRequestOptions.headers,
263-
},
264-
};
265-
246+
/**
247+
* A read request is either a `GET` request, or a request that we make
248+
* via the `read` transporter (e.g. `search`).
249+
*/
266250
const isRead = request.useReadTransporter || request.method === 'GET';
267-
268251
if (!isRead) {
269252
/**
270253
* On write requests, no cache mechanisms are applied, and we
271254
* proxy the request immediately to the requester.
272255
*/
273-
return retryableRequest<TResponse>(request, requestOptions);
256+
return retryableRequest<TResponse>(request, requestOptions, isRead);
274257
}
275258

276259
const createRetryableRequest = (): Promise<TResponse> => {
@@ -287,7 +270,7 @@ export function createTransporter({
287270
* request is "cacheable" - should be cached. Note that, once again,
288271
* the user can force this option.
289272
*/
290-
const cacheable = Boolean(requestOptions.cacheable || request.cacheable);
273+
const cacheable = requestOptions.cacheable || request.cacheable;
291274

292275
/**
293276
* If is not "cacheable", we immediately trigger the retryable request, no
@@ -306,8 +289,8 @@ export function createTransporter({
306289
request,
307290
requestOptions,
308291
transporter: {
309-
queryParameters: requestOptions.queryParameters,
310-
headers: requestOptions.headers,
292+
queryParameters: baseQueryParameters,
293+
headers: baseHeaders,
311294
},
312295
};
313296

packages/client-common/src/transporter/helpers.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,14 @@ export function serializeData(
7878

7979
export function serializeHeaders(
8080
baseHeaders: Headers,
81-
requestOptions: RequestOptions
81+
requestHeaders: Headers,
82+
requestOptionsHeaders?: Headers
8283
): Headers {
8384
const headers: Headers = {
85+
Accept: 'application/json',
8486
...baseHeaders,
85-
...requestOptions.headers,
87+
...requestHeaders,
88+
...requestOptionsHeaders,
8689
};
8790
const serializedHeaders: Headers = {};
8891

packages/client-common/src/types/Requester.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,9 @@ export type Requester = {
4242
send: (request: EndRequest, originalRequest: Request) => Promise<Response>;
4343
};
4444

45-
export type EchoResponse = Request & {
46-
connectTimeout: number;
47-
host: string;
48-
headers: Headers;
49-
responseTimeout: number;
50-
algoliaAgent: string;
51-
searchParams?: Record<string, string>;
52-
};
45+
export type EchoResponse = Omit<EndRequest, 'data'> &
46+
Pick<Request, 'data' | 'path'> & {
47+
host: string;
48+
algoliaAgent: string;
49+
searchParams?: Record<string, string>;
50+
};

0 commit comments

Comments
 (0)