addsearch-js-client
Version:
AddSearch API JavaScript client
110 lines • 3.86 kB
TypeScript
export type SortOrder = 'asc' | 'desc';
export type SortByOptions = string | string[];
export type SortOrderOptions = SortOrder | SortOrder[];
export type SearchOperator = 'and' | 'or';
export type FromToRange = {
from?: number;
to?: number;
};
export type MinMaxRange = {
min?: number;
max?: number;
};
export type PagingSettings = {
page: number;
pageSize: number;
sortBy: SortByOptions;
sortOrder: SortOrderOptions;
};
export type AutocompleteSettings = {
size: number;
field?: string;
prefix?: string;
};
export type PersonalizationEvent = {
[key: string]: string;
};
export type FuzzyMatch = boolean | 'auto' | 'retry';
export type Settings = {
keyword: string;
callback: (() => void) | null;
throttleTimeMs: number;
fuzzy: FuzzyMatch;
paging: PagingSettings;
customFieldFilters: string[];
userToken: string | null;
suggestionsSize: number;
facetFields: string[];
autocomplete: AutocompleteSettings;
searchOperator: SearchOperator | null;
enableLogicalOperators: boolean;
cacheResponseTime: number | null;
statsRequestIntercepted: boolean;
suggestionsPrefix?: string;
lang?: string;
postfixWildcard?: boolean;
collectAnalytics?: boolean;
analyticsTag?: string;
categories?: string;
filterObject?: object;
priceFromCents?: string;
priceToCents?: string;
dateFrom?: string;
dateTo?: string;
jwt?: string;
personalizationEvents?: PersonalizationEvent[];
resultType?: 'organic' | null;
hierarchicalFacetSetting?: object;
rangeFacets?: Array<{
field: string;
ranges: FromToRange[];
}>;
statsFields?: string[];
numFacets?: number;
shuffleAndLimitTo?: number;
apiMethod?: ApiMethod;
};
export type ApiMethod = 'GET' | 'POST';
declare class SettingsManager {
private settings;
constructor();
getSettings(): Settings;
setKeyword(keyword: string): void;
setCallback(cb: (() => void) | null): void;
setThrottleTime(delay: number): void;
setSuggestionsPrefix(prefix: string): void;
setSuggestionsSize(size: number): void;
setAutocompleteSize(size: number): void;
setAutocompleteParams(field: string, prefix: string): void;
setLanguage(language: string): void;
setFuzzyMatch(fuzzy: boolean | 'auto' | 'retry'): void;
enableLogicalOperators(enable: boolean): void;
setCacheResponseTime(cacheResponseTime: number | null): void;
setPostfixWildcard(wildcard: boolean): void;
setCollectAnalytics(collectAnalytics: boolean): void;
setAnalyticsTag(tagName: string): void;
setCategoryFilters(categories: string): void;
setFilterObject(filter: object): void;
setPriceRangeFilter(minCents: string, maxCents: string): void;
addCustomFieldFilter(fieldName: string, value: string): void;
removeCustomFieldFilter(fieldName: string, value?: string): void;
setDateFilter(dateFrom: string, dateTo: string): void;
setJWT(jwt: string): void;
setUserToken(token: string): void;
setPersonalizationEvents(events: PersonalizationEvent[]): void;
setResultType(type: 'organic' | null): void;
addFacetField(field: string): void;
addHierarchicalFacetSetting(setting: object): void;
addRangeFacet(field: string, ranges: FromToRange[]): void;
addStatsField(field: string): void;
setNumberOfFacets(numFacets: number): void;
setPaging(page: number, pageSize: number, sortBy: SortByOptions, sortOrder: SortOrderOptions): void;
setShuffleAndLimitTo(shuffleAndLimitTo: number): void;
nextPage(): void;
previousPage(): void;
setSearchOperator(operator: SearchOperator): void;
setStatsRequestIntercepted(isIntercepted: boolean): void;
setApiMethod(method: ApiMethod): void;
}
export default SettingsManager;
//# sourceMappingURL=settings.d.ts.map