UNPKG

refql

Version:

A Node.js and Deno library for composing and running SQL queries.

30 lines (29 loc) 2.13 kB
import { flEquals } from "../common/consts"; import { CUDOutput, Deletable, Insertable, InsertParams, PropMap, RequiredRefQLOptions, RQLOutput, RQLParams, Selectable, Simplify, Updatable, UpdateParams } from "../common/types"; import PropType from "../Prop/PropType"; import { RQLTag } from "../RQLTag"; import { DeleteRQLTag } from "../RQLTag/DeleteRQLTag"; import { InsertRQLTag } from "../RQLTag/InsertRQLTag"; import { UpdateRQLTag } from "../RQLTag/UpdateRQLTag"; export interface Table<TableId extends string = any, Props = any> { <Components extends Selectable<TableId, Props>[]>(components: Components): RQLTag<TableId, Props, Components, RQLParams<TableId, Props, Components>, RQLOutput<TableId, Props, Components>>; tableId: TableId; name: string; schema?: string; props: Props; equals(other: Table<TableId, Props>): boolean; [flEquals]: this["equals"]; toString(): string; insert<Components extends Insertable<TableId>[]>(components: Components): InsertRQLTag<TableId, Simplify<{ data: InsertParams<Props>[]; } & Omit<RQLParams<TableId, Props, Components>, "rows">>, CUDOutput<TableId, Props, Components>>; update<Components extends Updatable<TableId>[]>(components: Components): UpdateRQLTag<TableId, Simplify<{ data: UpdateParams<Props>; } & Omit<RQLParams<TableId, Props, Components>, "rows">>, CUDOutput<TableId, Props, Components>>; delete<Components extends Deletable<TableId>[]>(components: Components): DeleteRQLTag<TableId, RQLParams<TableId, Props, Components>, CUDOutput<TableId, Props, Components>>; addProps<Props2 extends PropType<any>[]>(props: Props2): Table<TableId, Props & PropMap<TableId, Props2>>; } declare const makeTable: (options: RequiredRefQLOptions) => <TableId extends string, Props extends PropType<any>[]>(name: TableId, props: Props) => Table<TableId, PropMap<TableId, Props>>; export declare function isTable(x: any): x is Table; export declare const TableX: <TableId extends string, Props extends PropType<any>[]>(name: TableId, props: Props) => Table<TableId, PropMap<TableId, Props>>; export default makeTable;