-
Notifications
You must be signed in to change notification settings - Fork 216
/
clearSynonyms.ts
29 lines (25 loc) · 1.11 KB
/
clearSynonyms.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { createWaitablePromise, encode, WaitablePromise } from '@algolia/client-common';
import { MethodEnum } from '@algolia/requester-common';
import { createMappedRequestOptions, RequestOptions } from '@algolia/transporter';
import { ClearSynonymsOptions, DeleteResponse, SearchIndex, waitTask } from '../..';
export const clearSynonyms = (base: SearchIndex) => {
return (
requestOptions?: ClearSynonymsOptions & RequestOptions
): Readonly<WaitablePromise<DeleteResponse>> => {
const { forwardToReplicas, ...options } = requestOptions || {};
const mappedRequestOptions = createMappedRequestOptions(options);
if (forwardToReplicas) {
mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data
}
return createWaitablePromise<DeleteResponse>(
base.transporter.write(
{
method: MethodEnum.Post,
path: encode('1/indexes/%s/synonyms/clear', base.indexName),
},
mappedRequestOptions
),
(response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)
);
};
};