@klevu/core
Version:
Typescript SDK that simplifies development on Klevu backend. Klevu provides advanced AI-powered search and discovery solutions for online retailers.
34 lines (33 loc) • 996 B
JavaScript
import { KlevuTypeOfRecord, KlevuTypeOfRequest, } from "../../models/index.js";
import { cleanSearchQuery } from "../../utils/index.js";
const defaults = {
id: "search",
limit: 5,
typeOfRecords: [KlevuTypeOfRecord.Product],
};
/**
* Create a basic search to Klevu backend. Default ID for this query is `search`
*
*
* @category Query
* @param term Search term from input
* @param options {@link KlevuSearchOptions}
* @returns
*/
export function search(term, options, ...modifiers) {
const params = Object.assign(Object.assign({}, defaults), options);
const cleanedTerm = cleanSearchQuery(term);
const query = {
id: params.id,
typeOfRequest: KlevuTypeOfRequest.Search,
settings: Object.assign({ query: {
term: cleanedTerm,
} }, params),
};
return {
klevuFunctionId: "search",
params: Object.assign(Object.assign({}, params), { term }),
queries: [query],
modifiers,
};
}