@tanstack/db
Version:
A reactive client store for building super fast apps on sync
22 lines (21 loc) • 1.1 kB
text/typescript
import { BasicExpression, QueryIR } from '../ir.js';
import { KeyedStream, ResultStream } from '../../types.js';
import { QueryCache, QueryMapping } from './types.js';
/**
* Result of query compilation including both the pipeline and collection-specific WHERE clauses
*/
export interface CompilationResult {
/** The compiled query pipeline */
pipeline: ResultStream;
/** Map of collection aliases to their WHERE clauses for index optimization */
collectionWhereClauses: Map<string, BasicExpression<boolean>>;
}
/**
* Compiles a query2 IR into a D2 pipeline
* @param rawQuery The query IR to compile
* @param inputs Mapping of collection names to input streams
* @param cache Optional cache for compiled subqueries (used internally for recursion)
* @param queryMapping Optional mapping from optimized queries to original queries
* @returns A CompilationResult with the pipeline and collection WHERE clauses
*/
export declare function compileQuery(rawQuery: QueryIR, inputs: Record<string, KeyedStream>, cache?: QueryCache, queryMapping?: QueryMapping): CompilationResult;