ts-flex-query
Version:
Flexible and type-safe data queries
17 lines (16 loc) • 923 B
TypeScript
import { Expression } from '../core/expression';
import { DataType } from '../types/data-type';
import { EvaluationContext } from '../types/evaluation-context';
import { ExpressionResultType } from '../types/expression-result-type';
import { TsFlexQueryTypeMarker } from '../types/ts-flex-query-type';
export declare class RecordExpression implements Expression {
readonly fields: Partial<Record<PropertyKey, Expression>>;
readonly dataType: DataType;
constructor(fields: Partial<Record<PropertyKey, Expression>>);
evaluate(context: EvaluationContext): any;
}
type RecordType<TFields extends Partial<Record<PropertyKey, Expression>>> = TsFlexQueryTypeMarker<'record'> & {
[field in keyof TFields]: ExpressionResultType<NonNullable<TFields[field]>>;
};
export declare function record<TFields extends Partial<Record<PropertyKey, Expression>>>(fields: TFields): Expression<RecordType<TFields>>;
export {};