import {Value} from './value' import {ColumnType} from './queries/one/table' import {SelectStatement} from './statements/select_statement' import {GroupSelectStatement} from './statements/group_select_statement' export type EnforceNonEmptyRecord = keyof R extends never ? never : R export type ValueRecord = Record interface NestedValueRecord extends Record {} export type ValueOrNestedValueRecord = Value|NestedValueRecord export type ColumnTypeRecord = Record export function collectColumnTypeRecords(statement: SelectStatement|GroupSelectStatement): ColumnTypeRecord[] { return [statement.columns].concat(statement.joins.map(j => j.columns)) }