@tanstack/db
Version:
A reactive client store for building super fast apps on sync
34 lines (33 loc) • 1.34 kB
text/typescript
import { BaseIndex, IndexComparisonOptions, IndexOperation } from "./base-index.cjs";
export type BTreeIndexOptions = IndexComparisonOptions;
export interface RangeQueryOptions {
from?: any;
to?: any;
fromInclusive?: boolean;
toInclusive?: boolean;
}
export declare class BTreeIndex<TKey extends string | number = string | number> extends BaseIndex<TKey> {
private orderedEntries;
private valueMap;
private indexedKeys;
add(key: TKey, item: any): void;
private addToBucket;
remove(key: TKey, item: any): void;
private removeFromBucket;
update(key: TKey, oldItem: any, newItem: any): void;
build(entries: Iterable<[
TKey,
any
]>): void;
clear(): void;
lookup(operation: IndexOperation, value: any): Set<TKey>;
get keyCount(): number;
equalityLookup(value: any): Set<TKey>;
protected exactBucketKeys(value: any): Iterable<TKey> | undefined;
rangeQuery(options?: RangeQueryOptions): Set<TKey>;
private takeInternal;
take(n: number, from: any, filterFn?: (key: TKey) => boolean): Array<TKey>;
takeFromStart(n: number, filterFn?: (key: TKey) => boolean): Array<TKey>;
takeReversed(n: number, from: any, filterFn?: (key: TKey) => boolean): Array<TKey>;
takeReversedFromEnd(n: number, filterFn?: (key: TKey) => boolean): Array<TKey>;
}