UNPKG

datum-focus

Version:

Data shape, model, metadata, JSON, JSON Schema, GraphQL, MongoDB query and aggregations, iterator generators

30 lines (25 loc) 596 B
import { Model } from "./model"; import { KnownRecord, RECORD } from "./record"; import { Constraint } from "./bson/constraint"; type Tuple<T extends {}, K extends keyof T> = [K, T[K]]; export interface Filter<T extends KnownRecord> { $eq: Tuple<T, keyof T>; } export const createFilterModel = <T extends {}, C extends Constraint<T>>( name: string, model: Model<T>, description: string ): Model<C> => { const fields: any = { $or: { type: ["Something", RECORD] } }; return { area: model.area, name, hint: description, fields, rules: {}, }; };