@lableb/javascript-sdk
Version:
Lableb cloud search client for javascript
45 lines (29 loc) • 1.45 kB
text/typescript
import { LablebHttpClient } from "../../http-client";
import { AutocompleteRequestParams } from "../../request/autocomplete/autocomplete.request.type";
import { camelCaseToSnackCaseObject } from "../../utils";
import { LablebAPIResponseWrapper, LablebSDKContext } from "../lableb-client/lableb-client.type";
import { injectFeedbackDataIntoAutocompleteResponse } from "./autocomplete.injector";
import { AutocompleteResponse, AutocompleteResponseWithFeedback } from "./autocomplete.type";
export async function lablebClientAutocomplete(
this: LablebSDKContext,
autocompleteOptions: AutocompleteRequestParams
): Promise<LablebAPIResponseWrapper<AutocompleteResponseWithFeedback>> {
return injectFeedbackDataIntoAutocompleteResponse({
autocompleteOptions,
autocompleteResponse: await lablebClientNativeAutocomplete.bind(this)(autocompleteOptions),
globalOptions: this.globalOptions,
});
}
export async function lablebClientNativeAutocomplete(
this: LablebSDKContext,
autocompleteOptions: AutocompleteRequestParams
): Promise<LablebAPIResponseWrapper<AutocompleteResponse>> {
const { url, headers, method, params } = await this.requestBuilder.autocomplete(autocompleteOptions);
const interceptedRequestParams = ({
method,
url,
headers,
params: camelCaseToSnackCaseObject(params),
});
return await LablebHttpClient(interceptedRequestParams);
}