abt-universal-search
Version:
Enterprise-grade Universal Search System with cross-platform compatibility, performance optimization, and security hardening
93 lines • 2.7 kB
TypeScript
/**
* Memory Adapter - Enhanced In-Memory Data Search Implementation
* @description Handles searching through arrays of objects with comprehensive filtering and BaseAdapter compliance
*/
import { BaseDataSourceAdapter, type AdapterCapabilities } from './BaseAdapter';
import type { DataSourceConfig } from '../types/Config';
import type { ProcessedQuery, Connection, RawResult } from '../types/Results';
/**
* Raw search result before transformation
*/
export interface RawSearchResult {
item: unknown;
score: number;
matchedFields: string[];
}
/**
* Basic memory data source configuration (deprecated - use MemoryDataSourceConfig)
*/
export interface MemoryAdapterConfig {
data: unknown[];
searchFields: string[];
caseSensitive?: boolean;
}
/**
* Enhanced memory adapter extending BaseDataSourceAdapter
*/
export declare class MemoryAdapter extends BaseDataSourceAdapter {
private readonly config;
private data;
private isValidated;
constructor(config?: unknown);
/**
* Normalize config to handle both old and new formats
*/
private normalizeConfig;
/**
* Connect to memory data source (BaseAdapter interface)
*/
connect(config: DataSourceConfig): Promise<Connection>;
/**
* Execute query on memory data (BaseAdapter interface)
*/
query(connection: Connection, query: ProcessedQuery): Promise<RawResult[]>;
/**
* Disconnect from memory data source (BaseAdapter interface)
*/
disconnect(connection: Connection): Promise<void>;
/**
* Validate configuration (BaseAdapter interface)
*/
validateConfig(config: DataSourceConfig): Promise<void>;
/**
* Get adapter capabilities (BaseAdapter interface)
*/
getCapabilities(): AdapterCapabilities;
/**
* Search through the in-memory data
*/
search(query: string): RawSearchResult[];
/**
* Update the data array
*/
updateData(newData: unknown[]): void;
/**
* Get current data
*/
getData(): readonly unknown[];
/**
* Get adapter configuration
*/
getConfig(): Readonly<Required<MemoryAdapterConfig>>;
/**
* Synchronous version of validateConfig for constructor use
*/
private validateConfigSync;
/**
* Validate that data items have the required search fields
*/
private validateData;
/**
* Normalize query string for searching
*/
private normalizeQuery;
/**
* Match an item against the query
*/
private matchItem;
/**
* Get field value from object (supports dot notation)
*/
private getFieldValue;
}
//# sourceMappingURL=MemoryAdapter.d.ts.map