@jungle-commerce/typesense-react
Version:
React hooks and components for building search interfaces with Typesense
89 lines • 2.36 kB
TypeScript
/**
* @fileoverview Input validation utilities for Typesense operations
*/
import type { SearchRequest } from '../types';
/**
* Validation result interface
*/
export interface ValidationResult {
isValid: boolean;
errors: string[];
}
/**
* Validates a search request
*/
export declare function validateSearchRequest(request: SearchRequest): ValidationResult;
/**
* Validates a filter string
*/
export declare function validateFilterString(filterString: string): ValidationResult;
/**
* Validates a sort string
*/
export declare function validateSortString(sortString: string): ValidationResult;
/**
* Options for numeric range validation
*/
export interface NumericRangeOptions {
allowNegative?: boolean;
minValue?: number;
maxValue?: number;
}
/**
* Validates a numeric range
*/
export declare function validateNumericRange(min?: number, max?: number, options?: NumericRangeOptions): ValidationResult & {
error?: string;
};
/**
* Options for date range validation
*/
export interface DateRangeOptions {
allowFuture?: boolean;
maxDays?: number;
}
/**
* Validates a date range
*/
export declare function validateDateRange(start?: Date | string, end?: Date | string, options?: DateRangeOptions): ValidationResult & {
error?: string;
};
/**
* Validates a facet value
*/
export declare function validateFacetValue(value: any, type?: string): ValidationResult;
/**
* Validates a collection name
*/
export declare function validateCollectionName(name: string): ValidationResult;
/**
* Validates a field name
*/
export declare function validateFieldName(name: string): ValidationResult;
/**
* Options for search query validation
*/
export interface SearchQueryOptions {
maxLength?: number;
}
/**
* Validates a search query
*/
export declare function validateSearchQuery(query: string, options?: SearchQueryOptions): ValidationResult;
/**
* Validates an email address
*/
export declare function isValidEmail(email: string): boolean;
/**
* Validates a URL
*/
export declare function isValidUrl(url: string): boolean;
/**
* Validates a phone number (basic validation)
*/
export declare function isValidPhone(phone: string): boolean;
/**
* Sanitizes input to prevent XSS
*/
export declare function sanitizeInput(input: string | null | undefined): string;
//# sourceMappingURL=validationUtils.d.ts.map