import QueryColumnCondition from "../condition/query-column-condition"; import QueryOrdering from "../other/query-ordering"; import QueryTable from "../query-table"; import QueryColumn from "./query-column"; import QueryCondition from "../condition/query-condition"; import QueryJoinCondition from "../condition/query-join-condition"; import {ColumnModifier, ColumnName} from "../helpers/internal-types"; abstract class ValueColumn, T> extends QueryColumn { constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) { super(table, name, modifiers); } asc() { return new QueryOrdering
(this, 'ASC'); } desc() { return new QueryOrdering
(this, 'DESC'); } eq>(value: QueryColumn): QueryJoinCondition; eq(value: T): QueryColumnCondition; eq>(value: any): QueryCondition { if (value instanceof QueryColumn) { return new QueryJoinCondition(this, 'eq', value); } else { return new QueryColumnCondition(this, 'eq', value); } } ne(value: T) { return new QueryColumnCondition(this, 'ne', value); } } export default ValueColumn;