UNPKG

@jungle-commerce/typesense-react

Version:

React hooks and components for building search interfaces with Typesense

55 lines 2.15 kB
import { FacetConfig } from '../types'; import { CollectionSchema } from 'typesense/lib/Typesense/Collection'; import { SchemaPatternConfig, FieldPattern } from '../utils/schemaPatterns'; /** * Options for schema discovery */ interface SchemaDiscoveryOptions { /** Pattern configuration for field discovery */ patterns?: SchemaPatternConfig; /** Fields to exclude from faceting (deprecated - use patterns.excludePatterns) */ excludeFields?: string[]; /** Maximum number of facets to create */ maxFacets?: number; /** Whether to include numeric fields as facets */ includeNumericFacets?: boolean; /** Whether to include date fields as facets */ includeDateFacets?: boolean; /** Custom facet configuration overrides */ facetOverrides?: Record<string, Partial<FacetConfig>>; /** Callback when schema is loaded */ onSchemaLoad?: (schema: CollectionSchema) => void; } /** * Hook for discovering collection schema and auto-configuring facets * @param options - Schema discovery options * @returns Schema and auto-generated facet configurations */ export declare function useSchemaDiscovery(options?: SchemaDiscoveryOptions): { schema: CollectionSchema | null; facetConfigs: FacetConfig[]; searchableFields: any[]; sortableFields: { field: any; label: string; type: any; }[]; isLoading: boolean; error: Error | null; }; /** * Helper to determine if a field should be a disjunctive facet * @param field - Field configuration from schema * @param patterns - Custom disjunctive patterns (optional) * @returns True if field should use disjunctive (OR) logic */ export declare function shouldBeDisjunctive(field: any, patterns?: FieldPattern[]): boolean; /** * Helper to get the default sort field from schema * @param schema - Collection schema * @param timestampPatterns - Custom timestamp patterns (optional) * @returns Default sort field or empty string */ export declare function getDefaultSortField(schema: CollectionSchema | null, timestampPatterns?: FieldPattern[]): string; export {}; //# sourceMappingURL=useSchemaDiscovery.d.ts.map