@tanstack/db
Version:
A reactive client store for building super fast apps on sync
21 lines (20 loc) • 1.28 kB
TypeScript
import { Collection } from '../collection.js';
import { QueryBuilder } from './query-builder.js';
import { Context, Schema } from './types.js';
export declare function compileQuery<TContext extends Context<Schema>>(queryBuilder: QueryBuilder<TContext>): CompiledQuery<((TContext["result"] extends object ? TContext["result"] : TContext["hasJoin"] extends true ? TContext["schema"] : TContext["default"] extends keyof TContext["schema"] ? TContext["schema"][TContext["default"]] : never) extends infer T ? { [K in keyof T]: (TContext["result"] extends object ? TContext["result"] : TContext["hasJoin"] extends true ? TContext["schema"] : TContext["default"] extends keyof TContext["schema"] ? TContext["schema"][TContext["default"]] : never)[K]; } : never) & {
_key?: string | number;
}>;
export declare class CompiledQuery<TResults extends object = Record<string, unknown>> {
private graph;
private inputs;
private inputCollections;
private resultCollection;
state: `compiled` | `running` | `stopped`;
private unsubscribeCallbacks;
constructor(queryBuilder: QueryBuilder<Context<Schema>>);
get results(): Collection<TResults, string | number, {}>;
private sendChangesToInput;
private runGraph;
start(): () => void;
stop(): void;
}