UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

45 lines (29 loc) 1.45 kB
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); }