@lableb/javascript-sdk
Version:
Lableb cloud search client for javascript
65 lines (54 loc) • 3.05 kB
text/typescript
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,
}
}
}