UNPKG

tinycoll

Version:

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

24 lines (23 loc) 689 B
import { Document } from '../collection.js'; export type Modifier<T> = { $set?: Partial<T>; $unset?: Partial<Record<keyof T, true>>; $push?: Arrays<T>; $pull?: Arrays<T>; $inc?: Numbers<T>; $min?: Numbers<T>; $max?: Numbers<T>; $mul?: Numbers<T>; $setOnInsert?: Partial<T>; $addToSet?: Arrays<T>; }; type Numbers<T> = { [K in keyof T as T[K] extends number ? K : never]?: number; }; type Arrays<T> = { [K in keyof T as T[K] extends any[] ? K : never]?: T[K] extends (infer U)[] ? U : never; }; export declare function applyModifier<TDoc extends Document>(doc: TDoc, mod: Modifier<TDoc>, ctx?: { inserting?: boolean; }): TDoc; export {};