UNPKG

sveltekit-sync

Version:
43 lines (42 loc) 1.73 kB
import type { QueryOperator } from './operators.js'; export declare const FIELD_SYMBOL: unique symbol; export interface FieldReference<T, K extends keyof T = keyof T> { [FIELD_SYMBOL]: true; fieldName: K; eq(value: T[K]): FieldCondition<T, K>; ne(value: T[K]): FieldCondition<T, K>; gt(value: T[K]): FieldCondition<T, K>; gte(value: T[K]): FieldCondition<T, K>; lt(value: T[K]): FieldCondition<T, K>; lte(value: T[K]): FieldCondition<T, K>; in(values: T[K][]): FieldCondition<T, K>; notIn(values: T[K][]): FieldCondition<T, K>; contains(value: string): FieldCondition<T, K>; startsWith(value: string): FieldCondition<T, K>; endsWith(value: string): FieldCondition<T, K>; between(min: T[K], max: T[K]): FieldCondition<T, K>; isNull(): FieldCondition<T, K>; isNotNull(): FieldCondition<T, K>; asc(): OrderByCondition<T, K>; desc(): OrderByCondition<T, K>; } export interface FieldCondition<T, K extends keyof T = keyof T> { [FIELD_SYMBOL]: true; fieldName: K; operator: QueryOperator; } export interface OrderByCondition<T, K extends keyof T = keyof T> { [FIELD_SYMBOL]: true; fieldName: K; direction: 'asc' | 'desc'; } export declare function isFieldCondition(value: any): value is FieldCondition<any>; export declare function isOrderByCondition(value: any): value is OrderByCondition<any>; export declare function isFieldReference(value: any): value is FieldReference<any>; export type FieldsProxy<T> = { readonly [K in keyof T]: FieldReference<T, K>; }; /** * Creates a proxy that returns typed field references for any property access */ export declare function createFieldsProxy<T extends Record<string, any>>(): FieldsProxy<T>;