UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

48 lines (38 loc) 1.92 kB
import { AutocompleteRequestParams } from "../../request/autocomplete/autocomplete.request.type"; import { GlobalRequestOptions } from "../../request/main/main.request.type"; import { customIdentity, customPickBy } from "../../utils"; import { LablebAPIResponseWrapper } from "../lableb-client/lableb-client.type"; import { AutocompleteResponse, AutocompleteResponseWithFeedback } from "./autocomplete.type"; export function injectFeedbackDataIntoAutocompleteResponse({ autocompleteOptions, globalOptions, autocompleteResponse, }: { autocompleteOptions: AutocompleteRequestParams, autocompleteResponse: LablebAPIResponseWrapper<AutocompleteResponse>, globalOptions: GlobalRequestOptions, }): LablebAPIResponseWrapper<AutocompleteResponseWithFeedback> { return { ...autocompleteResponse, response: { ...autocompleteResponse.response, results: autocompleteResponse.response.results.map((document, index) => ({ ...document, feedback: customPickBy({ query: autocompleteOptions.query, itemId: document.id, itemOrder: index, url: document.url, userCountry: autocompleteOptions.userCountry || globalOptions.userCountry, userId: autocompleteOptions.userId || globalOptions.userId, userIp: autocompleteOptions.userIp || globalOptions.userIp, sessionId: autocompleteOptions.sessionId || (autocompleteOptions.sessionIdGenerator ? autocompleteOptions.sessionIdGenerator() : undefined) || globalOptions.sessionId || (globalOptions.sessionIdGenerator ? globalOptions.sessionIdGenerator() : undefined), }, customIdentity), })) } } }