UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

42 lines (37 loc) 2.12 kB
import { customIdentity, customPickBy } from "../../utils"; import { buildBatchAutocompleteFeedbackRequest, buildSingleAutocompleteFeedbackRequest } from "../autocomplete-feedback/autocomplete-feedback.request"; import { buildAutocompleteRequest } from "../autocomplete/autocomplete.request"; import { buildDeleteRequest } from "../delete/delete.request"; import { buildIndexingRequest } from "../indexing/indexing.request"; import { buildBatchRecommendFeedbackRequest, buildSingleRecommendFeedbackRequest } from "../recommend-feedback/recommend-feedback.request"; import { buildRecommendRequest } from "../recommend/recommend.request"; import {buildSearchByIdRequest} from "../search-by-id/search-by-id.request"; import { buildBatchSearchFeedbackRequest, buildSingleSearchFeedbackRequest } from "../search-feedback/search-feedback.request"; import { buildSearchRequest } from "../search/search.request"; import { mainRequestSchema } from "./main.request.schema"; import { GlobalRequestOptions } from "./main.request.type"; export function LablebRequestBuilder(options: GlobalRequestOptions = {}) { mainRequestSchema.validateSync(customPickBy(options, customIdentity)) return { index: buildIndexingRequest.bind(options), search: buildSearchRequest.bind(options), searchById: buildSearchByIdRequest.bind(options), autocomplete: buildAutocompleteRequest.bind(options), recommend: buildRecommendRequest.bind(options), delete: buildDeleteRequest.bind(options), feedback: { search: { single: buildSingleSearchFeedbackRequest.bind(options), batch: buildBatchSearchFeedbackRequest.bind(options), }, autocomplete: { single: buildSingleAutocompleteFeedbackRequest.bind(options), batch: buildBatchAutocompleteFeedbackRequest.bind(options), }, recommend: { single: buildSingleRecommendFeedbackRequest.bind(options), batch: buildBatchRecommendFeedbackRequest.bind(options), }, }, } }