UNPKG

alinea

Version:

[![npm](https://img.shields.io/npm/v/alinea.svg)](https://npmjs.org/package/alinea) [![install size](https://packagephobia.com/badge?p=alinea)](https://packagephobia.com/result?p=alinea)

35 lines (34 loc) 1.16 kB
import { Callable } from 'rado/util/Callable'; import { Cursor } from './Cursor.js'; import { EV } from './Expr.js'; import { ExprData } from './ExprData.js'; import { Fields } from './Fields.js'; import { TargetData } from './TargetData.js'; export declare class TargetI<Row = object> { get [Target.IsTarget](): true; get [Target.Data](): TargetData; } export interface TargetI<Row = object> extends Callable { (conditions?: { [K in keyof Row]?: EV<Row[K]>; }): Cursor.Find<Row>; } export type Target<Row> = Target.Definition<Row> & TargetI<Row>; export declare namespace Target { type Definition<Row> = { [K in keyof Row as K extends string ? K : never]: Fields<Row[K]>; }; } export declare const Target: { new (data: TargetData): { cache: any; data: TargetData; call(...input: Array<any>): Cursor.Find<unknown>; condition(input: Array<any>): ExprData | undefined; get(field: string): any; }; readonly Data: unique symbol; readonly IsTarget: unique symbol; isTarget<T>(target: any): target is TargetI<T>; create<T_1>(data: TargetData): Target<T_1>; };