UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

65 lines (54 loc) 3.05 kB
import { LablebRequestBuilder } from "../../request/main/main.request"; import { GlobalRequestOptions, OverloadedGlobalOptions } from "../../request/main/main.request.type"; import { lablebClientBatchAutocompleteFeedback, lablebClientSingleAutocompleteFeedback } from "../autocomplete-feedback/autocomplete-feedback"; import { lablebClientAutocomplete } from "../autocomplete/autocomplete"; import { lablebClientDelete } from "../delete/delete"; import { lablebClientIndexing } from "../indexing/indexing"; import { lablebClientBatchRecommendFeedback, lablebClientSingleRecommendFeedback } from "../recommend-feedback/recommend-feedback"; import { lablebClientRecommend } from "../recommend/recommend"; import { lablebClientSearchById } from "../search-by-id/search-by-id"; import { lablebClientBatchSearchFeedback, lablebClientSingleSearchFeedback } from "../search-feedback/search-feedback"; import { lablebClientSearch } from "../search/search"; import axios from 'axios'; export function LablebClient(globalOptions: GlobalRequestOptions & OverloadedGlobalOptions = {}) { const { interceptors, ...options } = globalOptions; if (interceptors) for (let { request, response } of interceptors) { axios.interceptors.request.use(request.onFulfilled, request.onRejected, request.options); axios.interceptors.response.use(response.onFulfilled, response.onRejected, response.options); } const requestBuilder = LablebRequestBuilder(options); const clientContext = { requestBuilder, globalOptions: options, }; return { index: lablebClientIndexing.bind(clientContext), delete: lablebClientDelete.bind(clientContext), search: lablebClientSearch.bind(clientContext), searchById: lablebClientSearchById.bind(clientContext), autocomplete: lablebClientAutocomplete.bind(clientContext), recommend: lablebClientRecommend.bind(clientContext), feedback: { search: { single: lablebClientSingleSearchFeedback.bind(clientContext), batch: lablebClientBatchSearchFeedback.bind(clientContext), }, autocomplete: { single: lablebClientSingleAutocompleteFeedback.bind(clientContext), batch: lablebClientBatchAutocompleteFeedback.bind(clientContext), }, recommend: { single: lablebClientSingleRecommendFeedback.bind(clientContext), batch: lablebClientBatchRecommendFeedback.bind(clientContext), }, }, __defaults__: { "API_BASE_URL": process.env.API_BASE_URL, "GLOBAL_DEFAULT_INDEX_NAME": process.env.GLOBAL_DEFAULT_INDEX_NAME, "GLOBAL_DEFAULT_SEARCH_HANDLER": process.env.GLOBAL_DEFAULT_SEARCH_HANDLER, "GLOBAL_DEFAULT_AUTOCOMPLETE_HANDLER": process.env.GLOBAL_DEFAULT_AUTOCOMPLETE_HANDLER, "GLOBAL_DEFAULT_RECOMMEND_HANDLER": process.env.GLOBAL_DEFAULT_RECOMMEND_HANDLER, } } }