UNPKG

@jungle-commerce/typesense-react

Version:

React hooks and components for building search interfaces with Typesense

62 lines 2.08 kB
/** * @fileoverview Schema field validation utilities */ import type { CollectionSchema } from 'typesense/lib/Typesense/Collection'; import { type FieldPattern } from './schemaPatterns'; /** * Field capabilities that can be validated */ export interface FieldCapabilities { /** Field must be facetable */ facetable?: boolean; /** Field must be sortable */ sortable?: boolean; /** Field must be indexed (searchable) */ indexed?: boolean; /** Field must be one of these types */ types?: string[]; } /** * Validated field result */ export interface ValidatedField { /** Field definition from schema */ field: any; /** Whether field passed all validations */ isValid: boolean; /** Validation errors if any */ errors: string[]; } /** * Check if a field has the required capabilities */ export declare function validateFieldCapabilities(field: any, capabilities: FieldCapabilities): ValidatedField; /** * Find fields matching patterns with capability validation */ export declare function findFieldsWithCapabilities(schema: CollectionSchema | null, patterns: FieldPattern[], capabilities?: FieldCapabilities): ValidatedField[]; /** * Get first valid field matching patterns with required capabilities */ export declare function getFirstValidField(schema: CollectionSchema | null, patterns: FieldPattern[], options?: { sortable?: boolean; indexed?: boolean; types?: string[]; }): any | null; /** * Get all valid fields matching patterns with required capabilities */ export declare function getValidFields(schema: CollectionSchema | null, patterns: FieldPattern[], capabilities?: FieldCapabilities): any[]; /** * Validate if a field can be used for sorting */ export declare function isValidSortField(field: any): boolean; /** * Validate if a field can be used for faceting */ export declare function isValidFacetField(field: any): boolean; /** * Validate if a field can be searched */ export declare function isValidSearchField(field: any): boolean; //# sourceMappingURL=schemaValidation.d.ts.map