@ignisia/sql 0.2.1 → 0.3.0
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/dist/cjs/column/constants.d.cts +150 -0
- package/dist/cjs/column/constants.js +158 -0
- package/dist/cjs/column/index.d.cts +43 -0
- package/dist/cjs/column/index.js +127 -0
- package/dist/cjs/column/types.d.cts +43 -0
- package/dist/cjs/column/types.js +4 -0
- package/dist/cjs/column/utils.d.cts +133 -0
- package/dist/cjs/column/utils.js +34 -0
- package/dist/cjs/database/alter.d.cts +53 -0
- package/dist/cjs/database/alter.js +93 -0
- package/dist/cjs/database/column.d.cts +25 -0
- package/dist/cjs/database/column.js +39 -0
- package/dist/cjs/database/contract.d.cts +9 -0
- package/dist/cjs/database/contract.js +2 -0
- package/dist/cjs/database/index.d.cts +9 -0
- package/dist/cjs/database/index.js +107 -0
- package/dist/cjs/database/table.d.cts +22 -0
- package/dist/cjs/database/table.js +49 -0
- package/dist/cjs/database/types.d.cts +8 -0
- package/dist/cjs/database/types.js +2 -0
- package/dist/cjs/database/wrapper.d.cts +32 -0
- package/dist/cjs/database/wrapper.js +87 -0
- package/dist/cjs/index-2jl8MRfX.d.cts +105 -0
- package/dist/cjs/index-CnQVnCEI.d.cts +392 -0
- package/dist/cjs/index.d.cts +11 -0
- package/dist/cjs/index.js +30 -0
- package/dist/cjs/migration/index.d.cts +31 -0
- package/dist/{migration → cjs/migration}/index.js +3 -1
- package/dist/cjs/migration/runner.js +58 -0
- package/dist/cjs/migration/type.d.cts +20 -0
- package/dist/cjs/migration/type.js +2 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/query/builder.d.cts +15 -0
- package/dist/cjs/query/builder.js +71 -0
- package/dist/cjs/query/condition.d.cts +8 -0
- package/dist/cjs/query/condition.js +109 -0
- package/dist/cjs/query/constants.js +64 -0
- package/dist/cjs/query/contract.d.cts +8 -0
- package/dist/cjs/query/contract.js +2 -0
- package/dist/cjs/query/helper.d.cts +8 -0
- package/dist/cjs/query/helper.js +36 -0
- package/dist/cjs/query/index.d.cts +8 -0
- package/dist/cjs/query/index.js +206 -0
- package/dist/cjs/query/join.d.cts +17 -0
- package/dist/cjs/query/join.js +18 -0
- package/dist/cjs/query/sql.d.cts +18 -0
- package/dist/cjs/query/sql.js +132 -0
- package/dist/cjs/query/types.d.cts +8 -0
- package/dist/cjs/query/types.js +2 -0
- package/dist/cjs/query/utilities.d.cts +37 -0
- package/dist/cjs/query/utilities.js +194 -0
- package/dist/cjs/table/constants.d.cts +8 -0
- package/dist/cjs/table/constants.js +9 -0
- package/dist/cjs/table/index.d.cts +8 -0
- package/dist/cjs/table/index.js +74 -0
- package/dist/cjs/table/types.d.cts +8 -0
- package/dist/cjs/table/types.js +2 -0
- package/dist/cjs/table/utilities.d.cts +8 -0
- package/dist/cjs/table/utilities.js +55 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/utilities.js +21 -0
- package/dist/{column → esm/column}/constants.d.ts +58 -5
- package/dist/esm/column/constants.js +154 -0
- package/dist/{column → esm/column}/index.d.ts +1 -0
- package/dist/{column → esm/column}/index.js +36 -15
- package/dist/esm/column/types.js +1 -0
- package/dist/esm/column/utils.d.ts +133 -0
- package/dist/esm/column/utils.js +32 -0
- package/dist/{database → esm/database}/alter.d.ts +3 -2
- package/dist/{database → esm/database}/alter.js +17 -16
- package/dist/{database → esm/database}/column.d.ts +3 -2
- package/dist/{database → esm/database}/column.js +11 -8
- package/dist/{database → esm/database}/contract.d.ts +3 -2
- package/dist/{database → esm/database}/index.d.ts +3 -2
- package/dist/{database → esm/database}/index.js +24 -10
- package/dist/{database → esm/database}/table.d.ts +3 -2
- package/dist/{database → esm/database}/table.js +14 -5
- package/dist/esm/database/types.d.ts +8 -0
- package/dist/esm/database/wrapper.d.ts +32 -0
- package/dist/esm/database/wrapper.js +83 -0
- package/dist/{index-DFrpzXEn.d.ts → esm/index-BXOAxB_h.d.ts} +4 -2
- package/dist/{index-FMT0YEO7.d.ts → esm/index-BdpoD4zk.d.ts} +80 -46
- package/dist/{index.d.ts → esm/index.d.ts} +3 -2
- package/dist/esm/index.js +5 -0
- package/dist/{migration → esm/migration}/index.d.ts +3 -2
- package/dist/esm/migration/index.js +49 -0
- package/dist/esm/migration/runner.d.ts +3 -0
- package/dist/{migration → esm/migration}/runner.js +7 -6
- package/dist/{migration → esm/migration}/type.d.ts +3 -2
- package/dist/{query → esm/query}/builder.d.ts +2 -1
- package/dist/{query → esm/query}/builder.js +3 -2
- package/dist/esm/query/condition.d.ts +8 -0
- package/dist/{query → esm/query}/condition.js +9 -5
- package/dist/esm/query/constants.d.ts +63 -0
- package/dist/{query → esm/query}/constants.js +9 -8
- package/dist/{query → esm/query}/contract.d.ts +3 -2
- package/dist/{query → esm/query}/helper.d.ts +2 -1
- package/dist/{query → esm/query}/helper.js +3 -2
- package/dist/{query → esm/query}/index.d.ts +2 -1
- package/dist/{query → esm/query}/index.js +26 -16
- package/dist/{query → esm/query}/join.d.ts +2 -1
- package/dist/{query → esm/query}/join.js +1 -0
- package/dist/{query → esm/query}/sql.d.ts +5 -4
- package/dist/{query → esm/query}/sql.js +40 -11
- package/dist/esm/query/types.d.ts +8 -0
- package/dist/{query → esm/query}/utilities.d.ts +4 -1
- package/dist/{query → esm/query}/utilities.js +20 -9
- package/dist/{table → esm/table}/constants.d.ts +1 -0
- package/dist/{table → esm/table}/constants.js +3 -1
- package/dist/{table → esm/table}/index.d.ts +2 -1
- package/dist/{table → esm/table}/index.js +35 -14
- package/dist/{table → esm/table}/types.d.ts +2 -1
- package/dist/{table → esm/table}/utilities.d.ts +2 -1
- package/dist/{table → esm/table}/utilities.js +5 -4
- package/dist/esm/types.d.ts +3 -0
- package/dist/esm/utilities.d.ts +4 -0
- package/dist/{utilities.js → esm/utilities.js} +1 -0
- package/package.json +42 -19
- package/dist/column/constants.js +0 -98
- package/dist/column/types.js +0 -1
- package/dist/database/types.d.ts +0 -7
- package/dist/database/wrapper.d.ts +0 -36
- package/dist/database/wrapper.js +0 -92
- package/dist/index.js +0 -5
- package/dist/query/condition.d.ts +0 -7
- package/dist/query/types.d.ts +0 -7
- /package/dist/{migration/runner.d.ts → cjs/migration/runner.d.cts} +0 -0
- /package/dist/{query/constants.d.ts → cjs/query/constants.d.cts} +0 -0
- /package/dist/{types.d.ts → cjs/types.d.cts} +0 -0
- /package/dist/{utilities.d.ts → cjs/utilities.d.cts} +0 -0
- /package/dist/{column → esm/column}/types.d.ts +0 -0
- /package/dist/{database → esm/database}/contract.js +0 -0
- /package/dist/{database → esm/database}/types.js +0 -0
- /package/dist/{migration → esm/migration}/type.js +0 -0
- /package/dist/{query → esm/query}/contract.js +0 -0
- /package/dist/{query → esm/query}/types.js +0 -0
- /package/dist/{table → esm/table}/types.js +0 -0
- /package/dist/{types.js → esm/types.js} +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { TransactionSQL } from 'bun';
|
|
2
|
+
import { Column } from './column/index.cjs';
|
|
3
|
+
import { T as Table, D as DatabaseDefinition, a as TimestampOptions, M as MergeTimestampParanoid, h as QuerHooks, b as DatabaseDialect, i as DatabaseOptions, f as QueryBuilder, j as QueryRunHooks } from './index-CnQVnCEI.cjs';
|
|
4
|
+
import { QueryHooksType } from './query/constants.cjs';
|
|
5
|
+
import { Dialect } from './table/constants.cjs';
|
|
6
|
+
import { AcceptedColumnTypes } from './column/constants.cjs';
|
|
7
|
+
|
|
8
|
+
interface TableAlterationContract<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<DatabaseDefinition<DbDialect>> = DatabaseDefinition<DbDialect>> {
|
|
9
|
+
createTable<TableName extends string, Columns extends Record<string, Column>, CreatedAt extends string, UpdatedAt extends string, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean, FinalColumns extends MergeTimestampParanoid<Columns, CreatedAt, UpdatedAt, Timestamp, Paranoid>, NewTables extends Tables & {
|
|
10
|
+
[K in TableName]: Table<TableName, FinalColumns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>;
|
|
11
|
+
}>(tableName: TableName, columns: Columns, options?: {
|
|
12
|
+
paranoid?: Paranoid;
|
|
13
|
+
timestamp?: Timestamp;
|
|
14
|
+
}): Promise<Database<DbDialect, NewTables, Definition>>;
|
|
15
|
+
renameTable<OldName extends (keyof Tables & string) | (string & {}), NewName extends string, NewTables extends Omit<Tables, OldName> & {
|
|
16
|
+
[K in NewName]: Tables[OldName];
|
|
17
|
+
}>(oldName: OldName, newName: NewName): Promise<Database<DbDialect, NewTables, Omit<Definition, 'tables'> & {
|
|
18
|
+
tables: NewTables;
|
|
19
|
+
}>>;
|
|
20
|
+
dropTable<TableName extends (keyof Tables & string) | (string & {})>(tableName: TableName): Promise<Database<DbDialect, Omit<Tables, TableName>, Definition>>;
|
|
21
|
+
}
|
|
22
|
+
interface ColumnAlterationContract<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<DatabaseDefinition<DbDialect>> = DatabaseDefinition<DbDialect>> {
|
|
23
|
+
addColumn<TableName extends (keyof Tables & string) | (string & {}), ColName extends (keyof Tables[TableName]['columns'] & string) | (string & {}), NewTables extends Omit<Tables, TableName> & {
|
|
24
|
+
[K in TableName]: Table<TableName, Tables[TableName]['columns'] & {
|
|
25
|
+
[K in ColName]: Column;
|
|
26
|
+
}>;
|
|
27
|
+
}>(tableName: TableName, columnName: ColName, column: Column): Promise<Database<DbDialect, NewTables, Definition>>;
|
|
28
|
+
renameColumn<TableName extends (keyof Tables & string) | (string & {}), OldName extends (keyof Tables[TableName]['columns'] & string) | (string & {}), NewName extends (keyof Tables[TableName]['columns'] & string) | (string & {}), NewTables extends Omit<Tables, TableName> & {
|
|
29
|
+
[K in TableName]: Table<TableName, Omit<Tables[TableName]['columns'], OldName> & {
|
|
30
|
+
[K in NewName]: Tables[TableName]['columns'][OldName];
|
|
31
|
+
}>;
|
|
32
|
+
}>(tableName: TableName, oldName: OldName, newName: NewName): Promise<Database<DbDialect, NewTables, Definition>>;
|
|
33
|
+
dropColumn<TableName extends (keyof Tables & string) | (string & {}), ColName extends (keyof Tables[TableName]['columns'] & string) | (string & {}), NewTables extends Omit<Tables, TableName> & {
|
|
34
|
+
[K in TableName]: Table<TableName, Omit<Tables[TableName]['columns'], ColName>>;
|
|
35
|
+
}>(tableName: TableName, columnName: ColName): Promise<Database<DbDialect, NewTables, Definition>>;
|
|
36
|
+
alterColumnType<TableName extends (keyof Tables & string) | (string & {}), ColName extends (keyof Tables[TableName]['columns'] & string) | (string & {}), Type extends Omit<AcceptedColumnTypes, typeof AcceptedColumnTypes.ENUM>, NewTables extends Omit<Tables, TableName> & {
|
|
37
|
+
[K in TableName]: Table<TableName, Omit<Tables[TableName]['columns'], ColName> & {
|
|
38
|
+
[K in ColName]: Tables[TableName]['columns'][ColName] & {
|
|
39
|
+
type: Type;
|
|
40
|
+
};
|
|
41
|
+
}>;
|
|
42
|
+
}>(tableName: TableName, columnName: ColName, newType: Type): Promise<Database<DbDialect, NewTables, Definition>>;
|
|
43
|
+
setColumnDefault<TableName extends (keyof Tables & string) | (string & {}), ColName extends (keyof Tables[TableName]['columns'] & string) | (string & {}), DefaultValue extends string | number | boolean | null, NewTables extends Omit<Tables, TableName> & {
|
|
44
|
+
[K in TableName]: Table<TableName, Omit<Tables[TableName]['columns'], ColName> & {
|
|
45
|
+
[K in ColName]: Omit<Tables[TableName]['columns'][ColName], 'definition'> & {
|
|
46
|
+
definition: Omit<Tables[TableName]['columns'][ColName]['definition'], 'default'> & {
|
|
47
|
+
default: DefaultValue;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}>;
|
|
51
|
+
}>(tableName: TableName, columnName: ColName, value: DefaultValue): Promise<Database<DbDialect, NewTables, Definition>>;
|
|
52
|
+
dropColumnDefault<TableName extends (keyof Tables & string) | (string & {}), ColName extends (keyof Tables[TableName]['columns'] & string) | (string & {}), NewTables extends Omit<Tables, TableName> & {
|
|
53
|
+
[K in TableName]: Table<TableName, Omit<Tables[TableName]['columns'], ColName> & {
|
|
54
|
+
[K in ColName]: Omit<Tables[TableName]['columns'][ColName], 'definition'> & {
|
|
55
|
+
definition: Omit<Tables[TableName]['columns'][ColName]['definition'], 'default'> & {
|
|
56
|
+
default: undefined;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
}>;
|
|
60
|
+
}>(tableName: TableName, columnName: ColName): Promise<Database<DbDialect, NewTables, Definition>>;
|
|
61
|
+
setColumnNotNull<TableName extends (keyof Tables & string) | (string & {}), ColName extends (keyof Tables[TableName]['columns'] & string) | (string & {}), NewTables extends Omit<Tables, TableName> & {
|
|
62
|
+
[K in TableName]: Table<TableName, Omit<Tables[TableName]['columns'], ColName> & {
|
|
63
|
+
[K in ColName]: Omit<Tables[TableName]['columns'][ColName], 'definition'> & {
|
|
64
|
+
definition: Omit<Tables[TableName]['columns'][ColName]['definition'], 'notNull'> & {
|
|
65
|
+
notNull: true;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
}>;
|
|
69
|
+
}>(tableName: TableName, columnName: ColName): Promise<Database<DbDialect, NewTables, Definition>>;
|
|
70
|
+
dropColumnNotNull<TableName extends (keyof Tables & string) | (string & {}), ColName extends (keyof Tables[TableName]['columns'] & string) | (string & {}), NewTables extends Omit<Tables, TableName> & {
|
|
71
|
+
[K in TableName]: Table<TableName, Omit<Tables[TableName]['columns'], ColName> & {
|
|
72
|
+
[K in ColName]: Omit<Tables[TableName]['columns'][ColName], 'definition'> & {
|
|
73
|
+
definition: Omit<Tables[TableName]['columns'][ColName]['definition'], 'notNull'>;
|
|
74
|
+
};
|
|
75
|
+
}>;
|
|
76
|
+
}>(tableName: TableName, columnName: ColName): Promise<Database<DbDialect, NewTables, Definition>>;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
declare class Database<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<DatabaseDefinition<DbDialect>> = DatabaseDefinition<DbDialect>> {
|
|
80
|
+
readonly hooks: Partial<QuerHooks>;
|
|
81
|
+
readonly dialect: DbDialect;
|
|
82
|
+
readonly defintion: Definition;
|
|
83
|
+
readonly tables: Tables;
|
|
84
|
+
readonly client: DatabaseDialect;
|
|
85
|
+
createTable: TableAlterationContract<DbDialect, Tables, Definition>['createTable'];
|
|
86
|
+
renameTable: TableAlterationContract<DbDialect, Tables, Definition>['renameTable'];
|
|
87
|
+
dropTable: TableAlterationContract<DbDialect, Tables, Definition>['dropTable'];
|
|
88
|
+
addColumn: ColumnAlterationContract<DbDialect, Tables, Definition>['addColumn'];
|
|
89
|
+
renameColumn: ColumnAlterationContract<DbDialect, Tables, Definition>['renameColumn'];
|
|
90
|
+
dropColumn: ColumnAlterationContract<DbDialect, Tables, Definition>['dropColumn'];
|
|
91
|
+
alterColumnType: ColumnAlterationContract<DbDialect, Tables, Definition>['alterColumnType'];
|
|
92
|
+
setColumnDefault: ColumnAlterationContract<DbDialect, Tables, Definition>['setColumnDefault'];
|
|
93
|
+
dropColumnDefault: ColumnAlterationContract<DbDialect, Tables, Definition>['dropColumnDefault'];
|
|
94
|
+
setColumnNotNull: ColumnAlterationContract<DbDialect, Tables, Definition>['setColumnNotNull'];
|
|
95
|
+
dropColumnNotNull: ColumnAlterationContract<DbDialect, Tables, Definition>['dropColumnNotNull'];
|
|
96
|
+
protected constructor(options: DatabaseOptions<DbDialect, Tables>);
|
|
97
|
+
private createClient;
|
|
98
|
+
table<TableName extends keyof Tables & string, Table extends Tables[TableName]>(tableName: TableName): QueryBuilder<TableName, Table>;
|
|
99
|
+
addHook(type: QueryHooksType, fn: QueryRunHooks): this;
|
|
100
|
+
removeHook(type: QueryHooksType, fn: QueryRunHooks): this;
|
|
101
|
+
transaction<T, U extends (tx: TransactionSQL) => Promise<T>>(fn: U): Promise<unknown>;
|
|
102
|
+
static define<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>>(options: DatabaseOptions<DbDialect, Tables>): Database<DbDialect, Tables, DatabaseDefinition<DbDialect>>;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export { type ColumnAlterationContract as C, Database as D, type TableAlterationContract as T };
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
import { Column } from './column/index.cjs';
|
|
2
|
+
import { AcceptedColumnTypes } from './column/constants.cjs';
|
|
3
|
+
import { UnionToIntersection } from './types.cjs';
|
|
4
|
+
import { QueryType, OrderBy, AggregationFunction, QueryHooksType, AcceptedOperator, ConditionClause, LogicalOperator } from './query/constants.cjs';
|
|
5
|
+
import { TransactionSQL } from 'bun';
|
|
6
|
+
import { Dialect } from './table/constants.cjs';
|
|
7
|
+
|
|
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}.*` | {
|
|
9
|
+
[A in keyof JoinedTables]: `${A & string}."${keyof JoinedTables[A]['columns'] & string}"` | `${A & string}.*`;
|
|
10
|
+
}[keyof JoinedTables];
|
|
11
|
+
type StrictColumnSelector<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>> = `${Alias}."${keyof TableRef['columns'] & string}"` | {
|
|
12
|
+
[A in keyof JoinedTables]: `${A & string}."${keyof JoinedTables[A]['columns'] & string}"`;
|
|
13
|
+
}[keyof JoinedTables];
|
|
14
|
+
type WhereValue<T extends Column> = {
|
|
15
|
+
[K in AcceptedOperator]: K extends typeof AcceptedOperator.BETWEEN | typeof AcceptedOperator.NOT_BETWEEN ? [T['_output'], T['_output']] : K extends typeof AcceptedOperator.IN | typeof AcceptedOperator.NOT_IN ? T['_output'][] : K extends typeof AcceptedOperator.IS_NULL | typeof AcceptedOperator.IS_NOT_NULL ? never : T['_output'];
|
|
16
|
+
};
|
|
17
|
+
type AcceptedOrderBy<Columns extends string> = {
|
|
18
|
+
column: Columns;
|
|
19
|
+
direction: OrderBy;
|
|
20
|
+
};
|
|
21
|
+
type InsertValuesParser<Columns extends Record<string, Column>> = {
|
|
22
|
+
[ColName in keyof Columns]: {
|
|
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 {
|
|
29
|
+
autoIncrement: true;
|
|
30
|
+
} ? false : Columns[ColName]['definition'] extends {
|
|
31
|
+
default: unknown;
|
|
32
|
+
} ? false : true : false;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
type InsertValuesParserRequired<Parsed extends InsertValuesParser<Record<string, Column>>> = {
|
|
36
|
+
[ColName in keyof Parsed as Parsed[ColName]['required'] extends true ? ColName : never]: Parsed[ColName]['output'];
|
|
37
|
+
};
|
|
38
|
+
type InsertValuesParserOptional<Parsed extends InsertValuesParser<Record<string, Column>>> = {
|
|
39
|
+
[ColName in keyof Parsed as Parsed[ColName]['required'] extends false ? ColName : never]?: Parsed[ColName]['output'];
|
|
40
|
+
};
|
|
41
|
+
type AcceptedInsertValues<Columns extends Record<string, Column>, Parsed extends InsertValuesParser<Columns> = InsertValuesParser<Columns>, Required extends InsertValuesParserRequired<Parsed> = InsertValuesParserRequired<Parsed>, Optional extends InsertValuesParserOptional<Parsed> = InsertValuesParserOptional<Parsed>> = Array<Required & Optional>;
|
|
42
|
+
type AcceptedUpdateValues<Columns extends Record<string, Column>> = {
|
|
43
|
+
[ColName in keyof Columns]?: Columns[ColName]['_output'];
|
|
44
|
+
};
|
|
45
|
+
type RawColumn<AllowedColumn extends string> = AllowedColumn;
|
|
46
|
+
type AliasedColumn<Allowed extends string, Alias extends string = string> = {
|
|
47
|
+
column: Allowed;
|
|
48
|
+
as: Alias;
|
|
49
|
+
};
|
|
50
|
+
type SelectableColumn<Allowed extends string> = RawColumn<Allowed> | AliasedColumn<Allowed>;
|
|
51
|
+
type AggregateColumn<Allowed extends string, Fn extends AggregationFunction = AggregationFunction, Alias extends string = string> = {
|
|
52
|
+
column: Allowed;
|
|
53
|
+
as?: Alias | Fn;
|
|
54
|
+
fn: AggregationFunction;
|
|
55
|
+
};
|
|
56
|
+
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
|
+
queryType: QueryType | null;
|
|
58
|
+
select: SelectableColumn<AllowedColumn>[] | null;
|
|
59
|
+
where: string[] | null;
|
|
60
|
+
having: string[] | null;
|
|
61
|
+
params: unknown[] | null;
|
|
62
|
+
limit: number | null;
|
|
63
|
+
offset: number | null;
|
|
64
|
+
groupBy: AllowedColumn[] | null;
|
|
65
|
+
insertValues: AcceptedInsertValues<TableRef['columns']> | null;
|
|
66
|
+
updateValues: AcceptedUpdateValues<TableRef['columns']> | null;
|
|
67
|
+
orderBy: AcceptedOrderBy<AllowedColumn>[] | null;
|
|
68
|
+
aggregates: AggregateColumn<AllowedColumn>[] | null;
|
|
69
|
+
distinct: boolean | null;
|
|
70
|
+
joins: string[] | null;
|
|
71
|
+
baseAlias: Alias | null;
|
|
72
|
+
withDeleted: boolean | null;
|
|
73
|
+
joinedTables: JoinedTables | null;
|
|
74
|
+
}
|
|
75
|
+
type InsertUpdateDeleteQueryOutput<TableRef extends Table<string, Record<string, Column>>> = {
|
|
76
|
+
[K in keyof TableRef['columns']]: TableRef['columns'][K]['_output'];
|
|
77
|
+
};
|
|
78
|
+
type InferAliasedColumn<Current extends AliasedColumn<string, string>, Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>> = Current extends {
|
|
79
|
+
column: `${infer TableAlias}."${infer ColName}"`;
|
|
80
|
+
as: `${infer ColAlias}`;
|
|
81
|
+
} ? TableAlias extends keyof JoinedTables ? {
|
|
82
|
+
[T in TableAlias]: {
|
|
83
|
+
[K in ColAlias]: JoinedTables[T]['columns'][ColName]['_output'];
|
|
84
|
+
};
|
|
85
|
+
} : TableAlias extends Alias | TableRef['name'] ? {
|
|
86
|
+
[K in ColName as ColAlias]: TableRef['columns'][K]['_output'];
|
|
87
|
+
} : NonNullable<unknown> : NonNullable<unknown>;
|
|
88
|
+
type InferRawColumn<Current extends string, Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>> = Current extends `${infer TableAlias}."${infer ColName}"` ? TableAlias extends keyof JoinedTables ? {
|
|
89
|
+
[T in TableAlias]: {
|
|
90
|
+
[K in ColName]: JoinedTables[T]['columns'][K]['_output'];
|
|
91
|
+
};
|
|
92
|
+
} : TableAlias extends Alias | TableRef['name'] ? {
|
|
93
|
+
[K in ColName]: TableRef['columns'][K]['_output'];
|
|
94
|
+
} : NonNullable<unknown> : Current extends `${infer TableAlias}.${infer ColName}` ? ColName extends '*' ? TableAlias extends keyof JoinedTables ? {
|
|
95
|
+
[T in TableAlias]: {
|
|
96
|
+
[K in keyof JoinedTables[T]['columns']]: JoinedTables[T]['columns'][K]['_output'];
|
|
97
|
+
};
|
|
98
|
+
} : TableAlias extends Alias | TableRef['name'] ? {
|
|
99
|
+
[K in keyof TableRef['columns']]: TableRef['columns'][K]['_output'];
|
|
100
|
+
} : NonNullable<unknown> : NonNullable<unknown> : NonNullable<unknown>;
|
|
101
|
+
type InferSelectQueryOutput<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>> = Definition extends {
|
|
102
|
+
select: infer Select;
|
|
103
|
+
} ? Select extends Array<SelectableColumn<AllowedColumn>> ? UnionToIntersection<Select[number] extends infer Col ? Col extends RawColumn<AllowedColumn> ? InferRawColumn<Col, Alias, TableRef, JoinedTables> : Col extends AliasedColumn<AllowedColumn> ? InferAliasedColumn<Col, Alias, TableRef, JoinedTables> : NonNullable<unknown> : NonNullable<unknown>> : NonNullable<unknown> : NonNullable<unknown>;
|
|
104
|
+
type InferAggregateColumn<Current extends AggregateColumn<string>, Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>> = Current extends {
|
|
105
|
+
column: `${infer TableAlias}."${infer ColName}"`;
|
|
106
|
+
as: `${infer ColAlias}`;
|
|
107
|
+
fn?: AggregationFunction;
|
|
108
|
+
} ? TableAlias extends keyof JoinedTables ? {
|
|
109
|
+
[T in TableAlias]: {
|
|
110
|
+
[K in ColAlias]: JoinedTables[T]['columns'][ColName]['_output'] | number;
|
|
111
|
+
};
|
|
112
|
+
} : TableAlias extends Alias | TableRef['name'] ? {
|
|
113
|
+
[K in ColName as ColAlias]: TableRef['columns'][K]['_output'] | number;
|
|
114
|
+
} : NonNullable<unknown> : NonNullable<unknown>;
|
|
115
|
+
type InferAggregateQueryOutput<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>> = Definition extends {
|
|
116
|
+
aggregates: infer Aggregates;
|
|
117
|
+
} ? Aggregates extends Array<AggregateColumn<AllowedColumn>> ? UnionToIntersection<Aggregates[number] extends infer Col ? Col extends RawColumn<AllowedColumn> ? InferRawColumn<Col, Alias, TableRef, JoinedTables> : Col extends AliasedColumn<AllowedColumn> ? InferAliasedColumn<Col, Alias, TableRef, JoinedTables> : Col extends AggregateColumn<AllowedColumn> ? InferAggregateColumn<Col, Alias, TableRef, JoinedTables> : NonNullable<unknown> : NonNullable<unknown>> : NonNullable<unknown> : NonNullable<unknown>;
|
|
118
|
+
type SelectQueryOutput<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>> = InferSelectQueryOutput<Alias, TableRef, JoinedTables, Definition, AllowedColumn> & InferAggregateQueryOutput<Alias, TableRef, JoinedTables, Definition, AllowedColumn>;
|
|
119
|
+
type QueryOutput<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>> = Definition extends {
|
|
120
|
+
queryType: infer Type;
|
|
121
|
+
} ? Type extends null ? never : Type extends typeof QueryType.INSERT | typeof QueryType.UPDATE | typeof QueryType.DELETE ? InsertUpdateDeleteQueryOutput<TableRef>[] : Type extends typeof QueryType.SELECT ? SelectQueryOutput<Alias, TableRef, JoinedTables, Definition, AllowedColumn>[] : never : never;
|
|
122
|
+
interface QueryRunHooksOptions {
|
|
123
|
+
query: string;
|
|
124
|
+
hook: QueryHooksType;
|
|
125
|
+
params: unknown[] | null | undefined;
|
|
126
|
+
type: QueryType;
|
|
127
|
+
}
|
|
128
|
+
interface QueryRunHooks {
|
|
129
|
+
(options: QueryRunHooksOptions): void;
|
|
130
|
+
}
|
|
131
|
+
interface QuerHooks {
|
|
132
|
+
after: Set<QueryRunHooks>;
|
|
133
|
+
before: Set<QueryRunHooks>;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
type SqlConfigMapping = {
|
|
137
|
+
[Dialect.POSTGRES]: PostgresConfig;
|
|
138
|
+
[Dialect.MYSQL]: MysqlConfig;
|
|
139
|
+
[Dialect.SQLITE]: SqliteConfig;
|
|
140
|
+
};
|
|
141
|
+
interface SqliteConfig {
|
|
142
|
+
filename: ':memory:' | (string & {});
|
|
143
|
+
}
|
|
144
|
+
interface SqlConfig {
|
|
145
|
+
host: string;
|
|
146
|
+
port: number;
|
|
147
|
+
user: string;
|
|
148
|
+
password: string;
|
|
149
|
+
database: string;
|
|
150
|
+
}
|
|
151
|
+
interface PostgresConfig extends SqlConfig {
|
|
152
|
+
}
|
|
153
|
+
interface MysqlConfig extends SqlConfig {
|
|
154
|
+
}
|
|
155
|
+
interface DatabaseOptions<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>> {
|
|
156
|
+
dialect: DbDialect;
|
|
157
|
+
config: SqlConfigMapping[DbDialect];
|
|
158
|
+
tables?: Tables;
|
|
159
|
+
}
|
|
160
|
+
interface DatabaseExecOptions {
|
|
161
|
+
sql: string;
|
|
162
|
+
params?: unknown[] | null | undefined;
|
|
163
|
+
tx?: TransactionSQL | null;
|
|
164
|
+
}
|
|
165
|
+
interface DatabaseDefinition<DbDialect extends Dialect> extends Omit<DatabaseOptions<DbDialect, any>, 'tables'> {
|
|
166
|
+
}
|
|
167
|
+
interface DatabaseDialect {
|
|
168
|
+
status: 'connecting' | 'connected' | 'disconnected';
|
|
169
|
+
connect(): Promise<this>;
|
|
170
|
+
disconnect(): Promise<this>;
|
|
171
|
+
exec<T>(options: DatabaseExecOptions): Promise<T>;
|
|
172
|
+
/**
|
|
173
|
+
* Begins a transaction
|
|
174
|
+
*/
|
|
175
|
+
transaction<T, U extends (tx: TransactionSQL) => Promise<T>>(fn: U): Promise<T>;
|
|
176
|
+
/**
|
|
177
|
+
* Begins a distributed transaction
|
|
178
|
+
*/
|
|
179
|
+
distributed<T extends string, U, V extends (tx: TransactionSQL) => Promise<U>>(name: T, fn: V): Promise<U>;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
declare const createdAt: Column<AcceptedColumnTypes, number | readonly string[], {
|
|
183
|
+
type: "DATETIME";
|
|
184
|
+
}, Date, Date, {
|
|
185
|
+
default: "CURRENT_TIMESTAMP";
|
|
186
|
+
}>;
|
|
187
|
+
declare const updatedAt: Column<AcceptedColumnTypes, number | readonly string[], {
|
|
188
|
+
type: "DATETIME";
|
|
189
|
+
}, Date, Date, {}>;
|
|
190
|
+
declare const deletedAt: Column<AcceptedColumnTypes, number | readonly string[], {
|
|
191
|
+
type: "DATETIME";
|
|
192
|
+
}, Date, Date, {}>;
|
|
193
|
+
declare function defineColumns<TableName extends string, Columns extends Record<string, Column>, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean, FinalColumns extends MergeTimestampParanoid<Columns, CreatedAt, UpdatedAt, Timestamp, Paranoid>>(options: TableOptions<TableName, Columns, Dialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>): FinalColumns;
|
|
194
|
+
|
|
195
|
+
interface TimestampOptions<CreatedAt extends string | boolean, UpdatedAt extends string | boolean> {
|
|
196
|
+
createdAt?: CreatedAt;
|
|
197
|
+
updatedAt?: UpdatedAt;
|
|
198
|
+
}
|
|
199
|
+
interface TableOptions<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean> {
|
|
200
|
+
dialect?: DbDialect;
|
|
201
|
+
name: TableName;
|
|
202
|
+
columns: Columns;
|
|
203
|
+
paranoid?: Paranoid;
|
|
204
|
+
timestamp?: Timestamp;
|
|
205
|
+
}
|
|
206
|
+
type MergeTimestampParanoid<Columns extends Record<string, Column>, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean> = Columns & (Timestamp extends true ? {
|
|
207
|
+
createdAt: typeof createdAt;
|
|
208
|
+
updatedAt: typeof updatedAt;
|
|
209
|
+
} : Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> ? (Timestamp['createdAt'] extends CreatedAt ? Timestamp['createdAt'] extends true ? {
|
|
210
|
+
createdAt: typeof createdAt;
|
|
211
|
+
} : Timestamp['createdAt'] extends string ? {
|
|
212
|
+
[K in Timestamp['createdAt']]: typeof createdAt;
|
|
213
|
+
} : NonNullable<unknown> : {
|
|
214
|
+
createdAt: typeof createdAt;
|
|
215
|
+
}) & (Timestamp['updatedAt'] extends UpdatedAt ? Timestamp['updatedAt'] extends true ? {
|
|
216
|
+
updatedAt: typeof updatedAt;
|
|
217
|
+
} : Timestamp['updatedAt'] extends string ? {
|
|
218
|
+
[K in Timestamp['updatedAt']]: typeof updatedAt;
|
|
219
|
+
} : NonNullable<unknown> : {
|
|
220
|
+
updatedAt: typeof updatedAt;
|
|
221
|
+
}) : NonNullable<unknown>) & (Paranoid extends true ? {
|
|
222
|
+
deletedAt: typeof deletedAt;
|
|
223
|
+
} : Paranoid extends string ? {
|
|
224
|
+
[K in Paranoid]: typeof deletedAt;
|
|
225
|
+
} : NonNullable<unknown>);
|
|
226
|
+
type TableOutput<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean, TableRef extends Table<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid> = Table<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>> = {
|
|
227
|
+
[K in keyof TableRef['columns'] & string]: TableRef['columns'][K]['_output'];
|
|
228
|
+
};
|
|
229
|
+
interface ExecOptions {
|
|
230
|
+
tx?: TransactionSQL | null;
|
|
231
|
+
db?: DatabaseDialect | null;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
declare class Table<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect = Dialect, CreatedAt extends string | boolean = string | boolean, UpdatedAt extends string | boolean = string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean = TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean = string | boolean> {
|
|
235
|
+
client: DatabaseDialect | null;
|
|
236
|
+
private _dialect;
|
|
237
|
+
readonly name: TableName;
|
|
238
|
+
readonly columns: Columns;
|
|
239
|
+
readonly timestamp: Timestamp | null;
|
|
240
|
+
readonly paranoid: Paranoid | null;
|
|
241
|
+
readonly _output: TableOutput<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>;
|
|
242
|
+
protected constructor(options: TableOptions<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>);
|
|
243
|
+
infer(): this['_output'];
|
|
244
|
+
static define<TableName extends string, Columns extends Record<string, Column>, DbDialect extends Dialect, CreatedAt extends string | boolean, UpdatedAt extends string | boolean, Timestamp extends TimestampOptions<CreatedAt, UpdatedAt> | boolean, Paranoid extends string | boolean>(options: TableOptions<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>): Table<TableName, MergeTimestampParanoid<Columns, CreatedAt, UpdatedAt, Timestamp, Paranoid>, DbDialect, string | boolean, string | boolean, Timestamp, Paranoid>;
|
|
245
|
+
setColumnDialect<DbDialect extends Dialect>(dialect: DbDialect): void;
|
|
246
|
+
get dialect(): DbDialect | null;
|
|
247
|
+
setDialect<DbDialect extends Dialect>(dialect: DbDialect): Table<TableName, Columns, DbDialect, CreatedAt, UpdatedAt, Timestamp, Paranoid>;
|
|
248
|
+
create(options?: ExecOptions): Promise<this>;
|
|
249
|
+
drop(options?: ExecOptions): Promise<this>;
|
|
250
|
+
query(): QueryBuilder<this["name"], this, {}, {}, ColumnSelector<this["name"], this, {}>, `${this["name"]}."${keyof this["columns"] & string}"`>;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
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
|
+
baseAlias: NewAlias;
|
|
255
|
+
}>;
|
|
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;
|
|
258
|
+
declare function col<StrictAllowedColumn extends string, ColName extends StrictAllowedColumn = StrictAllowedColumn, ColAlias extends string = string>(column: ColName, alias: ColAlias): {
|
|
259
|
+
readonly column: ColName;
|
|
260
|
+
readonly as: ColAlias;
|
|
261
|
+
};
|
|
262
|
+
declare function aggregateCol<StrictAllowedColumn extends string, Aggregate extends AggregationFunction = AggregationFunction, ColName extends StrictAllowedColumn = StrictAllowedColumn>(fn: Aggregate, column: ColName): {
|
|
263
|
+
column: ColName;
|
|
264
|
+
as: Lowercase<Aggregate>;
|
|
265
|
+
fn: Aggregate;
|
|
266
|
+
};
|
|
267
|
+
declare function aggregateCol<StrictAllowedColumn extends string, Aggregate extends AggregationFunction = AggregationFunction, ColName extends StrictAllowedColumn = StrictAllowedColumn, ColAlias extends string = string>(fn: Aggregate, column: ColName, alias: ColAlias): {
|
|
268
|
+
column: ColName;
|
|
269
|
+
as: ColAlias;
|
|
270
|
+
fn: Aggregate;
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
declare function addRawCondition<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, Logical extends LogicalOperator, ValidClause extends Lowercase<Clause>>(query: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, clause: Clause, column: (c: typeof rawCol) => string, logical: Logical, params?: any): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>;
|
|
274
|
+
declare function rawWhere<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>;
|
|
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>;
|
|
313
|
+
readonly table: TableRef;
|
|
314
|
+
readonly definition: Definition;
|
|
315
|
+
readonly _output: QueryOutput<Alias, TableRef, JoinedTables, Definition, AllowedColumn>;
|
|
316
|
+
alias: QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['alias'];
|
|
317
|
+
clone: QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['clone'];
|
|
318
|
+
toQuery: QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['toQuery'];
|
|
319
|
+
toString: QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['toString'];
|
|
320
|
+
exec: QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['exec'];
|
|
321
|
+
rawWhere: QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['rawWhere'];
|
|
322
|
+
rawAnd: QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['rawWhere'];
|
|
323
|
+
rawOr: QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['rawOr'];
|
|
324
|
+
rawHaving: QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['rawHaving'];
|
|
325
|
+
where: QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['where'];
|
|
326
|
+
and: QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['where'];
|
|
327
|
+
or: QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['or'];
|
|
328
|
+
having: QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>['having'];
|
|
329
|
+
constructor(table: TableRef);
|
|
330
|
+
leftJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string, BaseColName extends `${Alias}."${keyof TableRef['columns'] & string}"`, JoinColName extends `${JoinAlias}."${keyof JoinTable['columns'] & string}"`>(joinTable: JoinTable, alias: JoinAlias, baseColumn: BaseColName, joinColumn: JoinColName): QueryBuilder<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
331
|
+
joins: string[];
|
|
332
|
+
joinedTables: JoinedTables & { [K in JoinAlias]: JoinTable; };
|
|
333
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>>;
|
|
334
|
+
rightJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string, BaseColName extends `${Alias}."${keyof TableRef['columns'] & string}"`, JoinColName extends `${JoinAlias}."${keyof JoinTable['columns'] & string}"`>(joinTable: JoinTable, alias: JoinAlias, baseColumn: BaseColName, joinColumn: JoinColName): QueryBuilder<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
335
|
+
joins: string[];
|
|
336
|
+
joinedTables: JoinedTables & { [K in JoinAlias]: JoinTable; };
|
|
337
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>>;
|
|
338
|
+
innerJoin<JoinTable extends Table<string, Record<string, Column>>, JoinAlias extends string, BaseColName extends `${Alias}."${keyof TableRef['columns'] & string}"`, JoinColName extends `${JoinAlias}."${keyof JoinTable['columns'] & string}"`>(joinTable: JoinTable, alias: JoinAlias, baseColumn: BaseColName, joinColumn: JoinColName): QueryBuilder<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
339
|
+
joins: string[];
|
|
340
|
+
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, BaseColName extends `${Alias}."${keyof TableRef['columns'] & string}"`, JoinColName extends `${JoinAlias}."${keyof JoinTable['columns'] & string}"`>(joinTable: JoinTable, alias: JoinAlias, baseColumn: BaseColName, joinColumn: JoinColName): QueryBuilder<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }, Omit<Definition, "joins" | "joinedTables"> & {
|
|
343
|
+
joins: string[];
|
|
344
|
+
joinedTables: JoinedTables & { [K in JoinAlias]: JoinTable; };
|
|
345
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>, StrictColumnSelector<Alias, TableRef, JoinedTables & { [K in JoinAlias]: JoinTable; }>>;
|
|
346
|
+
distinct(): QueryBuilder<Alias, TableRef, JoinedTables, Definition & {
|
|
347
|
+
distinct: true;
|
|
348
|
+
}>;
|
|
349
|
+
aggregate<Aggregates extends Array<(c: typeof aggregateCol) => AggregateColumn<AllowedColumn>>>(...aggregates: Aggregates): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "aggregates"> & {
|
|
350
|
+
aggregates: { [K in keyof Aggregates]: Aggregates[K] extends (col: never) => infer R ? R : Aggregates[K]; };
|
|
351
|
+
}>;
|
|
352
|
+
groupBy<Groupable extends NonNullable<Definition['select']>, Columns extends Groupable extends readonly (infer Col)[] ? Col extends RawColumn<StrictAllowedColumn> ? Col[] : Col extends AliasedColumn<StrictAllowedColumn, infer Alias> ? Alias[] : StrictAllowedColumn[] : StrictAllowedColumn[]>(...columns: Columns): QueryBuilder<Alias, TableRef, JoinedTables, Definition & {
|
|
353
|
+
groupBy: Columns;
|
|
354
|
+
}>;
|
|
355
|
+
limit<Limit extends number | null>(limit: Limit): QueryBuilder<Alias, TableRef, JoinedTables, Definition & {
|
|
356
|
+
limit: Limit;
|
|
357
|
+
}>;
|
|
358
|
+
offset<Offset extends number | null>(offset: Offset): QueryBuilder<Alias, TableRef, JoinedTables, Definition & {
|
|
359
|
+
offset: Offset;
|
|
360
|
+
}>;
|
|
361
|
+
orderBy<OrderBy extends AcceptedOrderBy<StrictAllowedColumn>>(...orderBy: OrderBy[]): QueryBuilder<Alias, TableRef, JoinedTables, Definition & {
|
|
362
|
+
orderBy: OrderBy;
|
|
363
|
+
}>;
|
|
364
|
+
withDeleted(): QueryBuilder<Alias, TableRef, JoinedTables, Definition & {
|
|
365
|
+
withDeleted: true;
|
|
366
|
+
}>;
|
|
367
|
+
select<Base extends Definition['baseAlias'] extends string ? Definition['baseAlias'] : TableRef['name'], Columns extends TableRef['columns']>(): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, 'queryType' | 'select'> & {
|
|
368
|
+
queryType: typeof QueryType.SELECT;
|
|
369
|
+
select: Array<`${Base}."${keyof Columns & string}"`>;
|
|
370
|
+
}>;
|
|
371
|
+
select<Columns extends Array<RawColumn<AllowedColumn> | ((c: typeof col) => AliasedColumn<AllowedColumn, string>)>>(...columns: Columns): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, 'queryType' | 'select'> & {
|
|
372
|
+
queryType: typeof QueryType.SELECT;
|
|
373
|
+
select: {
|
|
374
|
+
[K in keyof Columns]: Columns[K] extends (col: never) => infer R ? R : Columns[K];
|
|
375
|
+
};
|
|
376
|
+
}>;
|
|
377
|
+
insert(...values: AcceptedInsertValues<TableRef['columns']>): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "queryType" | "insertValues"> & {
|
|
378
|
+
queryType: typeof QueryType.INSERT;
|
|
379
|
+
insertValues: AcceptedInsertValues<TableRef["columns"]>;
|
|
380
|
+
}>;
|
|
381
|
+
update<Values extends AcceptedUpdateValues<TableRef['columns']>>(values: Values): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "queryType" | "updateValues"> & {
|
|
382
|
+
queryType: typeof QueryType.UPDATE;
|
|
383
|
+
updateValues: Values;
|
|
384
|
+
}>;
|
|
385
|
+
delete(): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "queryType" | "updateValues"> & {
|
|
386
|
+
queryType: typeof QueryType.UPDATE;
|
|
387
|
+
updateValues: AcceptedUpdateValues<TableRef["columns"]>;
|
|
388
|
+
}, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>;
|
|
389
|
+
infer(): this['_output'];
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
export { type AliasedColumn as A, clone as B, type ColumnSelector as C, type DatabaseDefinition as D, type ExecOptions as E, rawCol as F, col as G, aggregateCol as H, addRawCondition as I, rawWhere as J, rawOr as K, rawHaving as L, type MergeTimestampParanoid as M, addCondition as N, where as O, type PostgresConfig as P, type QueryDefinition as Q, type RawColumn as R, type SqlConfigMapping as S, Table as T, or as U, having as V, type WhereValue as W, type QueryTransformerContract as X, type QueryConditionContract as Y, type TimestampOptions as a, type DatabaseDialect as b, type DatabaseExecOptions as c, type SqliteConfig as d, type StrictColumnSelector as e, QueryBuilder as f, type SelectableColumn as g, type QuerHooks as h, type DatabaseOptions as i, type QueryRunHooks as j, type AcceptedOrderBy as k, type AcceptedInsertValues as l, type AcceptedUpdateValues as m, type AggregateColumn as n, type SelectQueryOutput as o, type QueryOutput as p, type QueryRunHooksOptions as q, type SqlConfig as r, type MysqlConfig as s, createdAt as t, updatedAt as u, deletedAt as v, defineColumns as w, type TableOptions as x, type TableOutput as y, alias as z };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { Column } from './column/index.cjs';
|
|
2
|
+
export { D as Database } from './index-2jl8MRfX.cjs';
|
|
3
|
+
export { Migration } from './migration/index.cjs';
|
|
4
|
+
export { f as QueryBuilder, T as Table } from './index-CnQVnCEI.cjs';
|
|
5
|
+
import './table/constants.cjs';
|
|
6
|
+
import './column/constants.cjs';
|
|
7
|
+
import './column/types.cjs';
|
|
8
|
+
import 'bun';
|
|
9
|
+
import './query/constants.cjs';
|
|
10
|
+
import './migration/type.cjs';
|
|
11
|
+
import './types.cjs';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var column = require('./column');
|
|
4
|
+
var database = require('./database');
|
|
5
|
+
var migration = require('./migration');
|
|
6
|
+
var query = require('./query');
|
|
7
|
+
var table = require('./table');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
Object.defineProperty(exports, "Column", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return column.Column; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "Database", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return database.Database; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "Migration", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return migration.Migration; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "QueryBuilder", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return query.QueryBuilder; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "Table", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return table.Table; }
|
|
30
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Column } from '../column/index.cjs';
|
|
2
|
+
import { D as Database } from '../index-2jl8MRfX.cjs';
|
|
3
|
+
import { T as Table } from '../index-CnQVnCEI.cjs';
|
|
4
|
+
import { Dialect } from '../table/constants.cjs';
|
|
5
|
+
import { MigrationOptions, MigrationFn } from './type.cjs';
|
|
6
|
+
import '../column/constants.cjs';
|
|
7
|
+
import '../column/types.cjs';
|
|
8
|
+
import 'bun';
|
|
9
|
+
import '../query/constants.cjs';
|
|
10
|
+
import '../types.cjs';
|
|
11
|
+
|
|
12
|
+
declare class Migration<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>> {
|
|
13
|
+
readonly db: Database<DbDialect, Tables>;
|
|
14
|
+
protected _up: (() => Promise<void>) | null;
|
|
15
|
+
protected _down: (() => Promise<void>) | null;
|
|
16
|
+
protected constructor(options: MigrationOptions<DbDialect, Tables>);
|
|
17
|
+
get up(): (() => Promise<void>) | null;
|
|
18
|
+
get down(): (() => Promise<void>) | null;
|
|
19
|
+
static setUp<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>, Migrator extends Migration<DbDialect, Tables>, Fn extends MigrationFn<DbDialect, Tables>>(migrator: Migrator, fn: Fn): Migrator;
|
|
20
|
+
static setDown<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>, Migrator extends Migration<DbDialect, Tables>, Fn extends MigrationFn<DbDialect, Tables>>(migrator: Migrator, fn: Fn): Migrator;
|
|
21
|
+
static define<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>>(db: Database<DbDialect, Tables>, options?: {
|
|
22
|
+
up?: MigrationFn<DbDialect, Tables>;
|
|
23
|
+
down?: MigrationFn<DbDialect, Tables>;
|
|
24
|
+
}): {
|
|
25
|
+
migration: Migration<DbDialect, Tables>;
|
|
26
|
+
setUp<Fn extends MigrationFn<DbDialect, Tables>>(fn: Fn): Migration<DbDialect, Tables>;
|
|
27
|
+
setDown<Fn extends MigrationFn<DbDialect, Tables>>(fn: Fn): Migration<DbDialect, Tables>;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { Migration };
|