@ignisia/sql 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/column/index.js +2 -9
- package/dist/cjs/database/alter.d.cts +2 -2
- package/dist/cjs/database/column.d.cts +2 -2
- package/dist/cjs/database/contract.d.cts +2 -2
- package/dist/cjs/database/index.d.cts +2 -2
- package/dist/cjs/database/index.js +1 -1
- package/dist/cjs/database/table.d.cts +2 -2
- package/dist/cjs/database/types.d.cts +1 -1
- package/dist/cjs/database/wrapper.d.cts +3 -3
- package/dist/cjs/database/wrapper.js +1 -17
- package/dist/cjs/{index-2jl8MRfX.d.cts → index-BjgeY76W.d.cts} +2 -2
- package/dist/cjs/{index-CnQVnCEI.d.cts → index-K07efKgt.d.cts} +194 -86
- package/dist/cjs/index.d.cts +2 -2
- package/dist/cjs/migration/index.d.cts +2 -2
- package/dist/cjs/migration/type.d.cts +2 -2
- package/dist/cjs/query/ast.d.cts +8 -0
- package/dist/cjs/query/ast.js +2 -0
- package/dist/cjs/query/builder.d.cts +5 -5
- package/dist/cjs/query/builder.js +8 -10
- package/dist/cjs/query/compiler.d.cts +13 -0
- package/dist/cjs/query/compiler.js +114 -0
- package/dist/cjs/query/condition/common.d.cts +46 -0
- package/dist/cjs/query/condition/common.js +50 -0
- package/dist/cjs/query/condition/core.d.cts +8 -0
- package/dist/cjs/query/condition/core.js +91 -0
- package/dist/cjs/query/condition/index.d.cts +10 -0
- package/dist/cjs/query/condition/index.js +26 -0
- package/dist/cjs/query/condition/not.d.cts +46 -0
- package/dist/cjs/query/condition/not.js +51 -0
- package/dist/cjs/query/constants.d.cts +31 -6
- package/dist/cjs/query/constants.js +30 -5
- package/dist/cjs/query/contract.d.cts +2 -2
- package/dist/cjs/query/explain.d.cts +12 -0
- package/dist/cjs/query/explain.js +65 -0
- package/dist/cjs/query/helper.d.cts +3 -3
- package/dist/cjs/query/helper.js +1 -5
- package/dist/cjs/query/index.d.cts +4 -4
- package/dist/cjs/query/index.js +57 -72
- package/dist/cjs/query/join.d.cts +19 -7
- package/dist/cjs/query/join.js +46 -9
- package/dist/cjs/query/sql.d.cts +6 -4
- package/dist/cjs/query/sql.js +64 -25
- package/dist/cjs/query/types.d.cts +2 -2
- package/dist/cjs/query/utilities.d.cts +7 -8
- package/dist/cjs/query/utilities.js +21 -66
- package/dist/cjs/table/index.d.cts +3 -3
- package/dist/cjs/table/types.d.cts +2 -2
- package/dist/cjs/table/utilities.d.cts +2 -2
- package/dist/cjs/types.d.cts +5 -1
- package/dist/cjs/utilities.d.cts +2 -1
- package/dist/cjs/utilities.js +22 -0
- package/dist/esm/column/index.js +3 -10
- package/dist/esm/database/alter.d.ts +2 -2
- package/dist/esm/database/column.d.ts +2 -2
- package/dist/esm/database/contract.d.ts +2 -2
- package/dist/esm/database/index.d.ts +2 -2
- package/dist/esm/database/index.js +2 -2
- package/dist/esm/database/table.d.ts +2 -2
- package/dist/esm/database/types.d.ts +1 -1
- package/dist/esm/database/wrapper.d.ts +3 -3
- package/dist/esm/database/wrapper.js +1 -17
- package/dist/esm/{index-BXOAxB_h.d.ts → index-B4y4GiNB.d.ts} +2 -2
- package/dist/esm/{index-BdpoD4zk.d.ts → index-CARBkj9h.d.ts} +194 -86
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/migration/index.d.ts +2 -2
- package/dist/esm/migration/type.d.ts +2 -2
- package/dist/esm/query/ast.d.ts +8 -0
- package/dist/esm/query/ast.js +1 -0
- package/dist/esm/query/builder.d.ts +5 -5
- package/dist/esm/query/builder.js +8 -10
- package/dist/esm/query/compiler.d.ts +13 -0
- package/dist/esm/query/compiler.js +112 -0
- package/dist/esm/query/condition/common.d.ts +46 -0
- package/dist/esm/query/condition/common.js +45 -0
- package/dist/esm/query/condition/core.d.ts +8 -0
- package/dist/esm/query/condition/core.js +89 -0
- package/dist/esm/query/condition/index.d.ts +10 -0
- package/dist/esm/query/condition/index.js +3 -0
- package/dist/esm/query/condition/not.d.ts +46 -0
- package/dist/esm/query/condition/not.js +46 -0
- package/dist/esm/query/constants.d.ts +31 -6
- package/dist/esm/query/constants.js +28 -6
- package/dist/esm/query/contract.d.ts +2 -2
- package/dist/esm/query/explain.d.ts +12 -0
- package/dist/esm/query/explain.js +64 -0
- package/dist/esm/query/helper.d.ts +3 -3
- package/dist/esm/query/helper.js +3 -6
- package/dist/esm/query/index.d.ts +4 -4
- package/dist/esm/query/index.js +60 -75
- package/dist/esm/query/join.d.ts +19 -7
- package/dist/esm/query/join.js +45 -9
- package/dist/esm/query/sql.d.ts +6 -4
- package/dist/esm/query/sql.js +64 -27
- package/dist/esm/query/types.d.ts +2 -2
- package/dist/esm/query/utilities.d.ts +7 -8
- package/dist/esm/query/utilities.js +22 -66
- package/dist/esm/table/index.d.ts +3 -3
- package/dist/esm/table/types.d.ts +2 -2
- package/dist/esm/table/utilities.d.ts +2 -2
- package/dist/esm/types.d.ts +5 -1
- package/dist/esm/utilities.d.ts +2 -1
- package/dist/esm/utilities.js +22 -1
- package/package.json +11 -5
- package/dist/cjs/query/condition.d.cts +0 -8
- package/dist/cjs/query/condition.js +0 -109
- package/dist/esm/query/condition.d.ts +0 -8
- package/dist/esm/query/condition.js +0 -101
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Column } from './column/index.js';
|
|
2
|
-
import { AcceptedColumnTypes } from './column/constants.js';
|
|
3
|
-
import { UnionToIntersection } from './types.js';
|
|
4
|
-
import { QueryType, OrderBy, AggregationFunction, QueryHooksType, AcceptedOperator, ConditionClause, LogicalOperator } from './query/constants.js';
|
|
5
2
|
import { TransactionSQL } from 'bun';
|
|
3
|
+
import { UnionToIntersection, Multiply, Subtract } from './types.js';
|
|
4
|
+
import { QueryType, OrderBy, AggregationFunction, ExplainClause, ExplainFormat, AcceptedOperator, QueryHooksType, ConditionClause, LogicalOperator, AstType, AcceptedJoin } from './query/constants.js';
|
|
5
|
+
import { AcceptedColumnTypes } from './column/constants.js';
|
|
6
6
|
import { Dialect } from './table/constants.js';
|
|
7
7
|
|
|
8
8
|
type ColumnSelector<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>> = `${Alias}."${keyof TableRef['columns'] & string}"` | `${Alias}.*` | {
|
|
@@ -12,7 +12,7 @@ type StrictColumnSelector<Alias extends string, TableRef extends Table<string, R
|
|
|
12
12
|
[A in keyof JoinedTables]: `${A & string}."${keyof JoinedTables[A]['columns'] & string}"`;
|
|
13
13
|
}[keyof JoinedTables];
|
|
14
14
|
type WhereValue<T extends Column> = {
|
|
15
|
-
[K in AcceptedOperator]: K extends typeof AcceptedOperator.BETWEEN
|
|
15
|
+
[K in AcceptedOperator]: K extends typeof AcceptedOperator.BETWEEN ? [T['_output'], T['_output']] : K extends typeof AcceptedOperator.IN ? T['_output'][] : K extends typeof AcceptedOperator.IS_NULL ? never : K extends typeof AcceptedOperator.STARTS_WITH | typeof AcceptedOperator.ENDS_WITH ? T['_output'] : T['_output'];
|
|
16
16
|
};
|
|
17
17
|
type AcceptedOrderBy<Columns extends string> = {
|
|
18
18
|
column: Columns;
|
|
@@ -21,15 +21,13 @@ type AcceptedOrderBy<Columns extends string> = {
|
|
|
21
21
|
type InsertValuesParser<Columns extends Record<string, Column>> = {
|
|
22
22
|
[ColName in keyof Columns]: {
|
|
23
23
|
output: Columns[ColName]['_output'];
|
|
24
|
-
required: Columns[ColName]['definition'] extends {
|
|
25
|
-
type: infer Type;
|
|
26
|
-
} ? Type extends typeof AcceptedColumnTypes.SERIAL ? false : Columns[ColName]['definition'] extends {
|
|
27
|
-
notNull: true;
|
|
28
|
-
} ? true : Columns[ColName]['definition'] extends {
|
|
24
|
+
required: Columns[ColName]['type'] extends typeof AcceptedColumnTypes.SERIAL ? false : Columns[ColName]['definition'] extends {
|
|
29
25
|
autoIncrement: true;
|
|
30
26
|
} ? false : Columns[ColName]['definition'] extends {
|
|
31
27
|
default: unknown;
|
|
32
|
-
} ? false :
|
|
28
|
+
} ? false : Columns[ColName]['definition'] extends {
|
|
29
|
+
notNull: true;
|
|
30
|
+
} ? true : false;
|
|
33
31
|
};
|
|
34
32
|
};
|
|
35
33
|
type InsertValuesParserRequired<Parsed extends InsertValuesParser<Record<string, Column>>> = {
|
|
@@ -56,9 +54,8 @@ type AggregateColumn<Allowed extends string, Fn extends AggregationFunction = Ag
|
|
|
56
54
|
interface QueryDefinition<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>> = NonNullable<unknown>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables> = ColumnSelector<Alias, TableRef, JoinedTables>> {
|
|
57
55
|
queryType: QueryType | null;
|
|
58
56
|
select: SelectableColumn<AllowedColumn>[] | null;
|
|
59
|
-
where:
|
|
60
|
-
having:
|
|
61
|
-
params: unknown[] | null;
|
|
57
|
+
where: GroupNode;
|
|
58
|
+
having: GroupNode;
|
|
62
59
|
limit: number | null;
|
|
63
60
|
offset: number | null;
|
|
64
61
|
groupBy: AllowedColumn[] | null;
|
|
@@ -67,7 +64,7 @@ interface QueryDefinition<Alias extends string, TableRef extends Table<string, R
|
|
|
67
64
|
orderBy: AcceptedOrderBy<AllowedColumn>[] | null;
|
|
68
65
|
aggregates: AggregateColumn<AllowedColumn>[] | null;
|
|
69
66
|
distinct: boolean | null;
|
|
70
|
-
joins:
|
|
67
|
+
joins: JoinNode[];
|
|
71
68
|
baseAlias: Alias | null;
|
|
72
69
|
withDeleted: boolean | null;
|
|
73
70
|
joinedTables: JoinedTables | null;
|
|
@@ -128,10 +125,57 @@ interface QueryRunHooksOptions {
|
|
|
128
125
|
interface QueryRunHooks {
|
|
129
126
|
(options: QueryRunHooksOptions): void;
|
|
130
127
|
}
|
|
131
|
-
interface
|
|
128
|
+
interface QueryHooks {
|
|
132
129
|
after: Set<QueryRunHooks>;
|
|
133
130
|
before: Set<QueryRunHooks>;
|
|
134
131
|
}
|
|
132
|
+
interface ExplainOptions extends Partial<Record<Lowercase<Exclude<ExplainClause, typeof ExplainClause.FORMAT>>, boolean>> {
|
|
133
|
+
format?: ExplainFormat;
|
|
134
|
+
tx?: TransactionSQL | null;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
declare function addCondition<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, Clause extends ConditionClause, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator], Logical extends LogicalOperator, ValidClause extends Lowercase<Clause>>(query: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, clause: Clause, column: ColName, operator: Operator, value: Value, logical: Logical, negate: boolean): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, ValidClause> & { [Key in ValidClause]: string[]; }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, ValidClause> & { [Key in ValidClause]: string[]; }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, ValidClause> & { [Key in ValidClause]: string[]; }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
|
|
138
|
+
declare function addGroupCondition<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, Logical extends LogicalOperator>(query: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, logical: Logical, callback: (q: QueryBuilder<Alias, TableRef, JoinedTables>) => QueryBuilder<Alias, TableRef, JoinedTables>, negate: boolean): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
|
|
139
|
+
where: GroupNode;
|
|
140
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
|
|
141
|
+
where: GroupNode;
|
|
142
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
|
|
143
|
+
where: GroupNode;
|
|
144
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
|
|
145
|
+
|
|
146
|
+
interface QueryTransformerContract<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>> {
|
|
147
|
+
toQuery(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, dialect?: Dialect | null): {
|
|
148
|
+
query: string;
|
|
149
|
+
params: unknown[] | null | undefined;
|
|
150
|
+
};
|
|
151
|
+
toString(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): string;
|
|
152
|
+
toDebugString(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): string;
|
|
153
|
+
explain(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): Promise<unknown>;
|
|
154
|
+
explain(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, options: ExplainOptions): Promise<unknown>;
|
|
155
|
+
exec<This extends QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn> = QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, Output extends This['_output'] = This['_output']>(this: This, tx?: TransactionSQL | null): Promise<Output>;
|
|
156
|
+
clone(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): typeof this;
|
|
157
|
+
alias<NewAlias extends string>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, alias: NewAlias): QueryBuilder<NewAlias, TableRef, JoinedTables, Omit<Definition, 'baseAlias'> & {
|
|
158
|
+
baseAlias: NewAlias;
|
|
159
|
+
}>;
|
|
160
|
+
}
|
|
161
|
+
interface QueryConditionContract<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>> {
|
|
162
|
+
where<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends typeof AcceptedOperator.IS_NULL, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
163
|
+
where<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
164
|
+
or<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends typeof AcceptedOperator.IS_NULL, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
165
|
+
or<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
166
|
+
having<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.HAVING, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.HAVING>>>;
|
|
167
|
+
whereGroup(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, callback: (q: QueryBuilder<Alias, TableRef, JoinedTables>) => QueryBuilder<Alias, TableRef, JoinedTables>): ReturnType<typeof addGroupCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof LogicalOperator.AND>>;
|
|
168
|
+
orGroup(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, callback: (q: QueryBuilder<Alias, TableRef, JoinedTables>) => QueryBuilder<Alias, TableRef, JoinedTables>): ReturnType<typeof addGroupCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof LogicalOperator.OR>>;
|
|
169
|
+
not: {
|
|
170
|
+
where<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends typeof AcceptedOperator.IS_NULL, Value extends WhereValue<Col>[Operator]>(column: ColName, operator: Operator): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
171
|
+
where<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
172
|
+
or<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends typeof AcceptedOperator.IS_NULL, Value extends WhereValue<Col>[Operator]>(column: ColName, operator: Operator): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
173
|
+
or<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
174
|
+
having<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.HAVING, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.HAVING>>>;
|
|
175
|
+
whereGroup(callback: (q: QueryBuilder<Alias, TableRef, JoinedTables>) => QueryBuilder<Alias, TableRef, JoinedTables>): ReturnType<typeof addGroupCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof LogicalOperator.AND>>;
|
|
176
|
+
orGroup(callback: (q: QueryBuilder<Alias, TableRef, JoinedTables>) => QueryBuilder<Alias, TableRef, JoinedTables>): ReturnType<typeof addGroupCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof LogicalOperator.OR>>;
|
|
177
|
+
};
|
|
178
|
+
}
|
|
135
179
|
|
|
136
180
|
type SqlConfigMapping = {
|
|
137
181
|
[Dialect.POSTGRES]: PostgresConfig;
|
|
@@ -247,14 +291,53 @@ declare class Table<TableName extends string, Columns extends Record<string, Col
|
|
|
247
291
|
setDialect<DbDialect extends Dialect>(dialect: DbDialect): Table<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>;
|
|
248
292
|
create(options?: ExecOptions): Promise<this>;
|
|
249
293
|
drop(options?: ExecOptions): Promise<this>;
|
|
250
|
-
query(): QueryBuilder<this["name"], this, {}, {}, ColumnSelector<this["name"], this, {}>, `${this["name"]}."${keyof this["columns"] & string}"
|
|
294
|
+
query(): QueryBuilder<this["name"], this, {}, {}, ColumnSelector<this["name"], this, {}>, `${this["name"]}."${keyof this["columns"] & string}"`, QueryTransformerContract<this["name"], this, {}, {}, ColumnSelector<this["name"], this, {}>, `${this["name"]}."${keyof this["columns"] & string}"`>, QueryConditionContract<this["name"], this, {}, {}, ColumnSelector<this["name"], this, {}>, `${this["name"]}."${keyof this["columns"] & string}"`>>;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
interface BaseComparisonNode {
|
|
298
|
+
type: typeof AstType.COMPARISON;
|
|
299
|
+
column: string;
|
|
300
|
+
}
|
|
301
|
+
interface SingleValueComparisonNode extends BaseComparisonNode {
|
|
302
|
+
operator: Exclude<AcceptedOperator, typeof AcceptedOperator.IN | typeof AcceptedOperator.BETWEEN>;
|
|
303
|
+
value: unknown;
|
|
304
|
+
}
|
|
305
|
+
interface MultiValueComparisonNode extends BaseComparisonNode {
|
|
306
|
+
operator: typeof AcceptedOperator.IN | typeof AcceptedOperator.BETWEEN;
|
|
307
|
+
values: unknown[];
|
|
308
|
+
}
|
|
309
|
+
interface NullValueComparisonNode extends BaseComparisonNode {
|
|
310
|
+
operator: typeof AcceptedOperator.IS_NULL;
|
|
311
|
+
}
|
|
312
|
+
type ComparisonNode = SingleValueComparisonNode | MultiValueComparisonNode | NullValueComparisonNode;
|
|
313
|
+
interface GroupNode {
|
|
314
|
+
type: typeof AstType.GROUP;
|
|
315
|
+
operator: LogicalOperator;
|
|
316
|
+
children: AstNode[];
|
|
317
|
+
}
|
|
318
|
+
interface NotNode {
|
|
319
|
+
type: typeof AstType.NOT;
|
|
320
|
+
child: AstNode;
|
|
251
321
|
}
|
|
322
|
+
type AstNode = ComparisonNode | GroupNode | NotNode;
|
|
323
|
+
interface BaseJoinNode {
|
|
324
|
+
type: typeof AstType.JOIN;
|
|
325
|
+
table: Table<string, Record<string, Column>>;
|
|
326
|
+
alias: string;
|
|
327
|
+
}
|
|
328
|
+
interface NonCrossNaturalJoinNode extends BaseJoinNode {
|
|
329
|
+
join: Exclude<AcceptedJoin, typeof AcceptedJoin.CROSS | typeof AcceptedJoin.NATURAL>;
|
|
330
|
+
on: AstNode;
|
|
331
|
+
}
|
|
332
|
+
interface CrossNaturalJoinNode extends BaseJoinNode {
|
|
333
|
+
join: typeof AcceptedJoin.CROSS | typeof AcceptedJoin.NATURAL;
|
|
334
|
+
}
|
|
335
|
+
type JoinNode = CrossNaturalJoinNode | NonCrossNaturalJoinNode;
|
|
252
336
|
|
|
253
337
|
declare function alias<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, NewAlias extends string>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, alias: NewAlias): QueryBuilder<NewAlias, TableRef, JoinedTables, Omit<Definition, "baseAlias"> & {
|
|
254
338
|
baseAlias: NewAlias;
|
|
255
339
|
}>;
|
|
256
|
-
declare function clone<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn
|
|
257
|
-
declare function rawCol<StrictAllowedColumn extends string, ColName extends StrictAllowedColumn = StrictAllowedColumn>(column: ColName): ColName;
|
|
340
|
+
declare function clone<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>>;
|
|
258
341
|
declare function col<StrictAllowedColumn extends string, ColName extends StrictAllowedColumn = StrictAllowedColumn, ColAlias extends string = string>(column: ColName, alias: ColAlias): {
|
|
259
342
|
readonly column: ColName;
|
|
260
343
|
readonly as: ColAlias;
|
|
@@ -270,79 +353,94 @@ declare function aggregateCol<StrictAllowedColumn extends string, Aggregate exte
|
|
|
270
353
|
fn: Aggregate;
|
|
271
354
|
};
|
|
272
355
|
|
|
273
|
-
declare
|
|
274
|
-
|
|
275
|
-
declare function rawOr<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>;
|
|
276
|
-
declare function rawHaving<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>;
|
|
277
|
-
declare function addCondition<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, Clause extends ConditionClause, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator], Logical extends LogicalOperator, ValidClause extends Lowercase<Clause>>(query: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, clause: Clause, column: ColName, operator: Operator, value: Value, logical: Logical): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, ValidClause> & { [Key in ValidClause]: string[]; }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>;
|
|
278
|
-
declare function where<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value?: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
|
|
279
|
-
where: string[];
|
|
280
|
-
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>;
|
|
281
|
-
declare function or<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value?: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
|
|
282
|
-
where: string[];
|
|
283
|
-
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>;
|
|
284
|
-
declare function having<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "having"> & {
|
|
285
|
-
having: string[];
|
|
286
|
-
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>;
|
|
287
|
-
|
|
288
|
-
interface QueryTransformerContract<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>> {
|
|
289
|
-
toQuery(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, dialect?: Dialect | null): {
|
|
290
|
-
query: string;
|
|
291
|
-
params: unknown[] | null | undefined;
|
|
292
|
-
};
|
|
293
|
-
toString(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): string;
|
|
294
|
-
exec<This extends QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn> = QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, Output extends This['_output'] = This['_output']>(this: This, tx?: TransactionSQL | null): Promise<Output>;
|
|
295
|
-
clone(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): typeof this;
|
|
296
|
-
alias<NewAlias extends string>(alias: NewAlias): QueryBuilder<NewAlias, TableRef, JoinedTables, Omit<Definition, 'baseAlias'> & {
|
|
297
|
-
baseAlias: NewAlias;
|
|
298
|
-
}>;
|
|
299
|
-
}
|
|
300
|
-
interface QueryConditionContract<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>> {
|
|
301
|
-
rawWhere(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): ReturnType<typeof addRawCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
302
|
-
rawOr(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): ReturnType<typeof addRawCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
303
|
-
rawHaving(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: (c: typeof rawCol) => string, params?: any): ReturnType<typeof addRawCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.HAVING, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.HAVING>>>;
|
|
304
|
-
where<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends typeof AcceptedOperator.IS_NULL | typeof AcceptedOperator.IS_NOT_NULL, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
305
|
-
where<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
306
|
-
or<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends typeof AcceptedOperator.IS_NULL | typeof AcceptedOperator.IS_NOT_NULL, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
307
|
-
or<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.WHERE, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.OR, Lowercase<typeof ConditionClause.WHERE>>>;
|
|
308
|
-
having<ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): ReturnType<typeof addCondition<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, typeof ConditionClause.HAVING, ColName, ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator, Value, typeof LogicalOperator.AND, Lowercase<typeof ConditionClause.HAVING>>>;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
declare class QueryBuilder<Alias extends TableRef['name'], TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>> = NonNullable<unknown>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>> = NonNullable<unknown>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables> = ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables> = StrictColumnSelector<Alias, TableRef, JoinedTables>> {
|
|
312
|
-
readonly hooks: Partial<QuerHooks>;
|
|
356
|
+
declare class QueryBuilder<Alias extends TableRef['name'], TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>> = NonNullable<unknown>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>> = NonNullable<unknown>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables> = ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables> = StrictColumnSelector<Alias, TableRef, JoinedTables>, TransformerContract extends QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn> = QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, QueryContract extends QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn> = QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>> {
|
|
357
|
+
readonly hooks: Partial<QueryHooks>;
|
|
313
358
|
readonly table: TableRef;
|
|
314
359
|
readonly definition: Definition;
|
|
315
360
|
readonly _output: QueryOutput<Alias, TableRef, JoinedTables, Definition, AllowedColumn>;
|
|
316
|
-
alias:
|
|
317
|
-
clone:
|
|
318
|
-
toQuery:
|
|
319
|
-
toString:
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
361
|
+
alias: TransformerContract['alias'];
|
|
362
|
+
clone: TransformerContract['clone'];
|
|
363
|
+
toQuery: TransformerContract['toQuery'];
|
|
364
|
+
toString: TransformerContract['toString'];
|
|
365
|
+
toDebugString: TransformerContract['toDebugString'];
|
|
366
|
+
explain: TransformerContract['explain'];
|
|
367
|
+
exec: TransformerContract['exec'];
|
|
368
|
+
where: QueryContract['where'];
|
|
369
|
+
and: QueryContract['where'];
|
|
370
|
+
or: QueryContract['or'];
|
|
371
|
+
having: QueryContract['having'];
|
|
372
|
+
whereGroup: QueryContract['whereGroup'];
|
|
373
|
+
orGroup: QueryContract['orGroup'];
|
|
374
|
+
readonly not: QueryContract['not'];
|
|
329
375
|
constructor(table: TableRef);
|
|
330
|
-
leftJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string
|
|
331
|
-
|
|
376
|
+
leftJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string>(joinTable: JoinTable, alias: JoinAlias): {
|
|
377
|
+
on<FinalJoinedTables extends JoinedTables & { [K in JoinAlias]: JoinTable; }, ReturnedJoinedTables extends FinalJoinedTables = FinalJoinedTables>(callback: (q: QueryBuilder<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>, QueryTransformerContract<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>>, QueryConditionContract<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>>>) => QueryBuilder<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>, QueryTransformerContract<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>, QueryConditionContract<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>>): QueryBuilder<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
378
|
+
joins: JoinNode[];
|
|
379
|
+
joinedTables: ReturnedJoinedTables;
|
|
380
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>, QueryTransformerContract<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
381
|
+
joins: JoinNode[];
|
|
382
|
+
joinedTables: ReturnedJoinedTables;
|
|
383
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>, QueryConditionContract<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
384
|
+
joins: JoinNode[];
|
|
385
|
+
joinedTables: ReturnedJoinedTables;
|
|
386
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>>;
|
|
387
|
+
};
|
|
388
|
+
rightJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string>(joinTable: JoinTable, alias: JoinAlias): {
|
|
389
|
+
on<FinalJoinedTables extends JoinedTables & { [K in JoinAlias]: JoinTable; }, ReturnedJoinedTables extends FinalJoinedTables = FinalJoinedTables>(callback: (q: QueryBuilder<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>, QueryTransformerContract<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>>, QueryConditionContract<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>>>) => QueryBuilder<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>, QueryTransformerContract<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>, QueryConditionContract<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>>): QueryBuilder<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
390
|
+
joins: JoinNode[];
|
|
391
|
+
joinedTables: ReturnedJoinedTables;
|
|
392
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>, QueryTransformerContract<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
393
|
+
joins: JoinNode[];
|
|
394
|
+
joinedTables: ReturnedJoinedTables;
|
|
395
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>, QueryConditionContract<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
396
|
+
joins: JoinNode[];
|
|
397
|
+
joinedTables: ReturnedJoinedTables;
|
|
398
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>>;
|
|
399
|
+
};
|
|
400
|
+
innerJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string>(joinTable: JoinTable, alias: JoinAlias): {
|
|
401
|
+
on<FinalJoinedTables extends JoinedTables & { [K in JoinAlias]: JoinTable; }, ReturnedJoinedTables extends FinalJoinedTables = FinalJoinedTables>(callback: (q: QueryBuilder<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>, QueryTransformerContract<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>>, QueryConditionContract<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>>>) => QueryBuilder<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>, QueryTransformerContract<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>, QueryConditionContract<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>>): QueryBuilder<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
402
|
+
joins: JoinNode[];
|
|
403
|
+
joinedTables: ReturnedJoinedTables;
|
|
404
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>, QueryTransformerContract<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
405
|
+
joins: JoinNode[];
|
|
406
|
+
joinedTables: ReturnedJoinedTables;
|
|
407
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>, QueryConditionContract<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
408
|
+
joins: JoinNode[];
|
|
409
|
+
joinedTables: ReturnedJoinedTables;
|
|
410
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>>;
|
|
411
|
+
};
|
|
412
|
+
fullJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string>(joinTable: JoinTable, alias: JoinAlias): {
|
|
413
|
+
on<FinalJoinedTables extends JoinedTables & { [K in JoinAlias]: JoinTable; }, ReturnedJoinedTables extends FinalJoinedTables = FinalJoinedTables>(callback: (q: QueryBuilder<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>, QueryTransformerContract<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>>, QueryConditionContract<Alias, TableRef, FinalJoinedTables, {}, ColumnSelector<Alias, TableRef, FinalJoinedTables>, StrictColumnSelector<Alias, TableRef, FinalJoinedTables>>>) => QueryBuilder<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>, QueryTransformerContract<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>, QueryConditionContract<Alias, TableRef, ReturnedJoinedTables, {}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>>): QueryBuilder<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
414
|
+
joins: JoinNode[];
|
|
415
|
+
joinedTables: ReturnedJoinedTables;
|
|
416
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>, QueryTransformerContract<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
417
|
+
joins: JoinNode[];
|
|
418
|
+
joinedTables: ReturnedJoinedTables;
|
|
419
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>, QueryConditionContract<Alias, TableRef, ReturnedJoinedTables, Omit<Definition, "joins" | "joinedTables"> & {
|
|
420
|
+
joins: JoinNode[];
|
|
421
|
+
joinedTables: ReturnedJoinedTables;
|
|
422
|
+
}, ColumnSelector<Alias, TableRef, ReturnedJoinedTables>, StrictColumnSelector<Alias, TableRef, ReturnedJoinedTables>>>;
|
|
423
|
+
};
|
|
424
|
+
crossJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string>(joinTable: JoinTable, alias: JoinAlias): QueryBuilder<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
425
|
+
joins: JoinNode[];
|
|
332
426
|
joinedTables: JoinedTables & { [K in JoinAlias]: JoinTable; };
|
|
333
|
-
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }
|
|
334
|
-
|
|
335
|
-
joins: string[];
|
|
427
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, QueryTransformerContract<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
428
|
+
joins: JoinNode[];
|
|
336
429
|
joinedTables: JoinedTables & { [K in JoinAlias]: JoinTable; };
|
|
337
|
-
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }
|
|
338
|
-
|
|
339
|
-
joins: string[];
|
|
430
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>>, QueryConditionContract<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
431
|
+
joins: JoinNode[];
|
|
340
432
|
joinedTables: JoinedTables & { [K in JoinAlias]: JoinTable; };
|
|
341
|
-
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }
|
|
342
|
-
naturalJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string
|
|
343
|
-
joins:
|
|
433
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>>>;
|
|
434
|
+
naturalJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string>(joinTable: JoinTable, alias: JoinAlias): QueryBuilder<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
435
|
+
joins: JoinNode[];
|
|
344
436
|
joinedTables: JoinedTables & { [K in JoinAlias]: JoinTable; };
|
|
345
|
-
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }
|
|
437
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, QueryTransformerContract<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
438
|
+
joins: JoinNode[];
|
|
439
|
+
joinedTables: JoinedTables & { [K in JoinAlias]: JoinTable; };
|
|
440
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>>, QueryConditionContract<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
441
|
+
joins: JoinNode[];
|
|
442
|
+
joinedTables: JoinedTables & { [K in JoinAlias]: JoinTable; };
|
|
443
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>>>;
|
|
346
444
|
distinct(): QueryBuilder<Alias, TableRef, JoinedTables, Definition & {
|
|
347
445
|
distinct: true;
|
|
348
446
|
}>;
|
|
@@ -368,7 +466,7 @@ declare class QueryBuilder<Alias extends TableRef['name'], TableRef extends Tabl
|
|
|
368
466
|
queryType: typeof QueryType.SELECT;
|
|
369
467
|
select: Array<`${Base}."${keyof Columns & string}"`>;
|
|
370
468
|
}>;
|
|
371
|
-
select<Columns extends Array<RawColumn<AllowedColumn> | ((c: typeof col) => AliasedColumn<AllowedColumn, string>)>>(...columns: Columns): QueryBuilder<Alias, TableRef, JoinedTables,
|
|
469
|
+
select<Columns extends Array<RawColumn<AllowedColumn> | ((c: typeof col) => AliasedColumn<AllowedColumn, string>)>>(...columns: Columns): QueryBuilder<Alias, TableRef, JoinedTables, Definition & {
|
|
372
470
|
queryType: typeof QueryType.SELECT;
|
|
373
471
|
select: {
|
|
374
472
|
[K in keyof Columns]: Columns[K] extends (col: never) => infer R ? R : Columns[K];
|
|
@@ -385,8 +483,18 @@ declare class QueryBuilder<Alias extends TableRef['name'], TableRef extends Tabl
|
|
|
385
483
|
delete(): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "queryType" | "updateValues"> & {
|
|
386
484
|
queryType: typeof QueryType.UPDATE;
|
|
387
485
|
updateValues: AcceptedUpdateValues<TableRef["columns"]>;
|
|
388
|
-
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables
|
|
486
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, "queryType" | "updateValues"> & {
|
|
487
|
+
queryType: typeof QueryType.UPDATE;
|
|
488
|
+
updateValues: AcceptedUpdateValues<TableRef["columns"]>;
|
|
489
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, "queryType" | "updateValues"> & {
|
|
490
|
+
queryType: typeof QueryType.UPDATE;
|
|
491
|
+
updateValues: AcceptedUpdateValues<TableRef["columns"]>;
|
|
492
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
|
|
493
|
+
paginate<Page extends number, Size extends number, Offset extends number = Multiply<Subtract<Page, 1>, Size>>(page: Page, size: Size): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "limit" | "offset"> & {
|
|
494
|
+
limit: Size;
|
|
495
|
+
offset: Offset;
|
|
496
|
+
}>;
|
|
389
497
|
infer(): this['_output'];
|
|
390
498
|
}
|
|
391
499
|
|
|
392
|
-
export { type AliasedColumn as A,
|
|
500
|
+
export { clone as $, type AliasedColumn as A, deletedAt as B, type ColumnSelector as C, type DatabaseDefinition as D, type ExplainOptions as E, defineColumns as F, type GroupNode as G, type TableOptions as H, type TableOutput as I, type JoinNode as J, type ExecOptions as K, type SingleValueComparisonNode as L, type MergeTimestampParanoid as M, type MultiValueComparisonNode as N, type NullValueComparisonNode as O, type PostgresConfig as P, type QueryDefinition as Q, type RawColumn as R, type SqlConfigMapping as S, Table as T, type ComparisonNode as U, type NotNode as V, type WhereValue as W, type BaseJoinNode as X, type NonCrossNaturalJoinNode as Y, type CrossNaturalJoinNode as Z, alias as _, addCondition as a, col as a0, aggregateCol as a1, addGroupCondition as b, type TimestampOptions as c, type DatabaseDialect as d, type DatabaseExecOptions as e, type MysqlConfig as f, type SqliteConfig as g, type StrictColumnSelector as h, QueryBuilder as i, type SelectableColumn as j, type QueryTransformerContract as k, type QueryConditionContract as l, type AstNode as m, type QueryHooks as n, type DatabaseOptions as o, type QueryRunHooks as p, type AcceptedOrderBy as q, type AcceptedInsertValues as r, type AcceptedUpdateValues as s, type AggregateColumn as t, type SelectQueryOutput as u, type QueryOutput as v, type QueryRunHooksOptions as w, type SqlConfig as x, createdAt as y, updatedAt as z };
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { Column } from './column/index.js';
|
|
2
|
-
export { D as Database } from './index-
|
|
2
|
+
export { D as Database } from './index-B4y4GiNB.js';
|
|
3
3
|
export { Migration } from './migration/index.js';
|
|
4
|
-
export {
|
|
4
|
+
export { i as QueryBuilder, T as Table } from './index-CARBkj9h.js';
|
|
5
5
|
import './table/constants.js';
|
|
6
6
|
import './column/constants.js';
|
|
7
7
|
import './column/types.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Column } from '../column/index.js';
|
|
2
|
-
import { D as Database } from '../index-
|
|
3
|
-
import { T as Table } from '../index-
|
|
2
|
+
import { D as Database } from '../index-B4y4GiNB.js';
|
|
3
|
+
import { T as Table } from '../index-CARBkj9h.js';
|
|
4
4
|
import { Dialect } from '../table/constants.js';
|
|
5
5
|
import { MigrationOptions, MigrationFn } from './type.js';
|
|
6
6
|
import '../column/constants.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Column } from '../column/index.js';
|
|
2
|
-
import { D as Database } from '../index-
|
|
3
|
-
import { T as Table } from '../index-
|
|
2
|
+
import { D as Database } from '../index-B4y4GiNB.js';
|
|
3
|
+
import { T as Table } from '../index-CARBkj9h.js';
|
|
4
4
|
import { Dialect } from '../table/constants.js';
|
|
5
5
|
import '../column/constants.js';
|
|
6
6
|
import '../column/types.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import '../column/index.js';
|
|
2
|
+
export { m as AstNode, X as BaseJoinNode, U as ComparisonNode, Z as CrossNaturalJoinNode, G as GroupNode, J as JoinNode, N as MultiValueComparisonNode, Y as NonCrossNaturalJoinNode, V as NotNode, O as NullValueComparisonNode, L as SingleValueComparisonNode } from '../index-CARBkj9h.js';
|
|
3
|
+
import './constants.js';
|
|
4
|
+
import '../table/constants.js';
|
|
5
|
+
import '../column/constants.js';
|
|
6
|
+
import '../column/types.js';
|
|
7
|
+
import 'bun';
|
|
8
|
+
import '../types.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { T as Table, Q as QueryDefinition, C as ColumnSelector,
|
|
1
|
+
import { T as Table, Q as QueryDefinition, C as ColumnSelector, h as StrictColumnSelector, i as QueryBuilder } from '../index-CARBkj9h.js';
|
|
2
2
|
import { Column } from '../column/index.js';
|
|
3
|
-
import '
|
|
3
|
+
import 'bun';
|
|
4
4
|
import '../types.js';
|
|
5
5
|
import './constants.js';
|
|
6
|
-
import '
|
|
6
|
+
import '../column/constants.js';
|
|
7
7
|
import '../table/constants.js';
|
|
8
8
|
import '../column/types.js';
|
|
9
9
|
|
|
10
10
|
declare function buildSelectQuery<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(q: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): string;
|
|
11
|
-
declare function buildInsertQuery<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(q: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn
|
|
12
|
-
declare function buildUpdateQuery<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(q: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn
|
|
11
|
+
declare function buildInsertQuery<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(q: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, params: unknown[]): string;
|
|
12
|
+
declare function buildUpdateQuery<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(q: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, params: unknown[]): string;
|
|
13
13
|
declare function buildDeleteQuery<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(q: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>): string;
|
|
14
14
|
|
|
15
15
|
export { buildDeleteQuery, buildInsertQuery, buildSelectQuery, buildUpdateQuery };
|
|
@@ -30,7 +30,7 @@ function buildSelectQuery(q) {
|
|
|
30
30
|
const distinct = q.definition.distinct ? "DISTINCT " : "";
|
|
31
31
|
return `SELECT ${distinct}${columns.join(", ")} FROM ${from}`;
|
|
32
32
|
}
|
|
33
|
-
function buildInsertQuery(q) {
|
|
33
|
+
function buildInsertQuery(q, params) {
|
|
34
34
|
const rows = q.definition?.insertValues;
|
|
35
35
|
if (!rows?.length) {
|
|
36
36
|
throw new Error(`INSERT requires values`);
|
|
@@ -39,12 +39,14 @@ function buildInsertQuery(q) {
|
|
|
39
39
|
const columns = keys.map(quoteIdentifier).join(", ");
|
|
40
40
|
const rowPlaceholders = `(${keys.map(() => "?").join(", ")})`;
|
|
41
41
|
const placeholders = rows.map(() => rowPlaceholders).join(", ");
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
params.push(
|
|
43
|
+
...rows.flatMap(
|
|
44
|
+
(row) => keys.map((key) => row[key])
|
|
45
|
+
)
|
|
44
46
|
);
|
|
45
47
|
return `INSERT INTO ${q.table.name} (${columns}) VALUES ${placeholders} RETURNING *`;
|
|
46
48
|
}
|
|
47
|
-
function buildUpdateQuery(q) {
|
|
49
|
+
function buildUpdateQuery(q, params) {
|
|
48
50
|
if (!q.definition?.updateValues) {
|
|
49
51
|
throw new Error(`UPDATE requires values`);
|
|
50
52
|
}
|
|
@@ -53,12 +55,8 @@ function buildUpdateQuery(q) {
|
|
|
53
55
|
(key) => q.definition.updateValues[key]
|
|
54
56
|
);
|
|
55
57
|
keys = keys.map(quoteIdentifier);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
} else {
|
|
59
|
-
q.definition.params = updateParams;
|
|
60
|
-
}
|
|
61
|
-
return `UPDATE ${q.table.name} SET ${keys.map((key) => `${key} = ?`.trim()).join(", ")}`;
|
|
58
|
+
params.unshift(...updateParams);
|
|
59
|
+
return `UPDATE ${q.table.name} SET ${keys.map((key) => `${key} = ?`).join(", ")}`;
|
|
62
60
|
}
|
|
63
61
|
function buildDeleteQuery(q) {
|
|
64
62
|
return `DELETE FROM ${q.table.name}`;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Dialect } from '../table/constants.js';
|
|
2
|
+
import { m as AstNode, J as JoinNode } from '../index-CARBkj9h.js';
|
|
3
|
+
import '../column/index.js';
|
|
4
|
+
import '../column/constants.js';
|
|
5
|
+
import '../column/types.js';
|
|
6
|
+
import 'bun';
|
|
7
|
+
import '../types.js';
|
|
8
|
+
import './constants.js';
|
|
9
|
+
|
|
10
|
+
declare function compileAst(dialect: Dialect | null, node: AstNode, params: unknown[]): string;
|
|
11
|
+
declare function compileJoin(dialect: Dialect | null, join: JoinNode, params: unknown[]): string;
|
|
12
|
+
|
|
13
|
+
export { compileAst, compileJoin };
|