UNPKG

tinycoll

Version:

A minimal reactive document store with Mongo-like querying, reactivity, TTL support, and optional persistence.

28 lines (27 loc) 686 B
export type Query<T> = RootLogical<T> & { [K in keyof T]?: FieldQuery<T[K]>; }; type RootLogical<T> = { $and?: Query<T>[]; $or?: Query<T>[]; $not?: Query<T>; }; type FieldOps<T> = { $eq?: T; $ne?: T; $gt?: T; $gte?: T; $lt?: T; $lte?: T; $exists?: boolean; $regex?: string; $size?: number; }; type ArrayOps<T> = { $in?: T[]; $nin?: T[]; }; type FieldQuery<T> = T | (FieldOps<T> & ArrayOps<T>); export type Op = '$eq' | '$ne' | '$gt' | '$gte' | '$lt' | '$lte' | '$in' | '$nin' | '$and' | '$or' | '$not' | '$exists' | '$regex' | '$size'; export declare function matches<TDoc>(doc: TDoc, query: Query<TDoc>): boolean; export {};