@pdg/drizzle-mssql 0.0.0-stage → 1.0.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/README.md +408 -2
- package/dist/@types/MsSqlConditions.d.cts +20 -0
- package/dist/@types/MsSqlConditions.d.ts +20 -0
- package/dist/@types/MsSqlInsertValues.d.cts +21 -0
- package/dist/@types/MsSqlInsertValues.d.ts +21 -0
- package/dist/@types/MsSqlUpdateValues.d.cts +28 -0
- package/dist/@types/MsSqlUpdateValues.d.ts +28 -0
- package/dist/@types/common.d.cts +16 -0
- package/dist/@types/common.d.ts +16 -0
- package/dist/@types/index.d.cts +4 -0
- package/dist/@types/index.d.ts +4 -0
- package/dist/MsSqlQuery.d.cts +259 -0
- package/dist/MsSqlQuery.d.ts +259 -0
- package/dist/alias.d.cts +6 -0
- package/dist/alias.d.ts +6 -0
- package/dist/columns.d.cts +90 -0
- package/dist/columns.d.ts +90 -0
- package/dist/conditions.d.cts +106 -0
- package/dist/conditions.d.ts +106 -0
- package/dist/drizzleMsSql.d.cts +166 -0
- package/dist/drizzleMsSql.d.ts +166 -0
- package/dist/index.cjs +700 -0
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.esm.js +700 -0
- package/dist/mssqlTable.d.cts +71 -0
- package/dist/mssqlTable.d.ts +71 -0
- package/package.json +88 -4
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { SQL } from 'drizzle-orm';
|
|
2
|
+
import { MsSqlTable, MsSqlColumn, type MsSqlSelectBase } from 'drizzle-orm/mssql-core';
|
|
3
|
+
import type { SelectedFields } from 'drizzle-orm/operations';
|
|
4
|
+
import type { GetSelectTableName } from 'drizzle-orm/query-builders/select.types';
|
|
5
|
+
import type { MsSqlColumnSelectionName, MsSqlSelectedNamedColumnUnion, MsSqlSelectedNamedColumns, MsSqlSelectedTableColumns, MsSqlAliasTable } from './columns.cjs';
|
|
6
|
+
import { type TableMutationPolicy } from './mssqlTable.cjs';
|
|
7
|
+
import type { MsSqlInsertValues, MsSqlUpdateValues, MsSqlCompareValues, MsSqlColumnName, MsSqlArrayCompareValues, MsSqlRangeCompareValues, MsSqlPatternCompareValues, MsSqlNullConditionInput, MsSqlConditions } from './@types/index.cjs';
|
|
8
|
+
import type { NodeMsSqlDatabase, NodeMsSqlPreparedQueryHKT } from 'drizzle-orm/node-mssql';
|
|
9
|
+
/********************************************************************************************************************
|
|
10
|
+
* MsSqlQuery
|
|
11
|
+
* ******************************************************************************************************************/
|
|
12
|
+
export declare class MsSqlQuery<TTable extends MsSqlTable, IV extends MsSqlInsertValues<TTable> = MsSqlInsertValues<TTable>, UV extends MsSqlUpdateValues<TTable> = MsSqlUpdateValues<TTable>, AR = AddResult<TTable>> {
|
|
13
|
+
private readonly current;
|
|
14
|
+
private readonly getTimestamp?;
|
|
15
|
+
readonly t: TTable;
|
|
16
|
+
/********************************************************************************************************************
|
|
17
|
+
* constructor
|
|
18
|
+
* ******************************************************************************************************************/
|
|
19
|
+
constructor(table: TTable, current: (() => NodeMsSqlDatabase) & {
|
|
20
|
+
getTimestamp?: () => unknown;
|
|
21
|
+
}, getTimestamp?: (() => unknown) | undefined);
|
|
22
|
+
private readonly drizzle;
|
|
23
|
+
/********************************************************************************************************************
|
|
24
|
+
* (PROTECTED) getTx
|
|
25
|
+
* ******************************************************************************************************************/
|
|
26
|
+
protected getTx(): NodeMsSqlDatabase;
|
|
27
|
+
/********************************************************************************************************************
|
|
28
|
+
* columns
|
|
29
|
+
* ******************************************************************************************************************/
|
|
30
|
+
columns(): MsSqlSelectedTableColumns<TTable>;
|
|
31
|
+
columns<N extends MsSqlColumnSelectionName<TTable>>(...names: N[] & MsSqlColumnSelectionName<TTable>[]): MsSqlSelectedNamedColumnUnion<TTable, N>;
|
|
32
|
+
private resolveFields;
|
|
33
|
+
/********************************************************************************************************************
|
|
34
|
+
* select
|
|
35
|
+
* ******************************************************************************************************************/
|
|
36
|
+
select(): SelectFrom<TTable, undefined>;
|
|
37
|
+
select(fields: readonly []): SelectFrom<TTable, {}>;
|
|
38
|
+
select<N extends MsSqlColumnSelectionName<TTable>>(fields: readonly N[] & readonly MsSqlColumnSelectionName<TTable>[]): SelectFrom<TTable, MsSqlSelectedNamedColumns<TTable, readonly N[]>>;
|
|
39
|
+
select<const T extends readonly FieldInput[]>(fields: (query: FieldsQuery<TTable>) => T): SelectFrom<TTable, MergeFields<T>>;
|
|
40
|
+
select<const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<TTable>[]>(fields: T & readonly (FieldInput | MsSqlColumnSelectionName<TTable>)[]): SelectFrom<TTable, MergeFields<NamedFields<TTable, T>>>;
|
|
41
|
+
select<TSelection extends SelectedFields<MsSqlColumn, TTable>>(fields?: Fields<FieldsQuery<TTable>, TSelection>): SelectFrom<TTable, TSelection>;
|
|
42
|
+
select<TAlias extends string>(alias: MsSqlAliasTable<TTable, TAlias>): SelectFrom<MsSqlAliasTable<TTable, TAlias>, undefined>;
|
|
43
|
+
select<TAlias extends string>(alias: MsSqlAliasTable<TTable, TAlias>, fields: readonly []): SelectFrom<MsSqlAliasTable<TTable, TAlias>, {}>;
|
|
44
|
+
select<TAlias extends string, N extends MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>>(alias: MsSqlAliasTable<TTable, TAlias>, fields: readonly N[] & readonly MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>[]): SelectFrom<MsSqlAliasTable<TTable, TAlias>, MsSqlSelectedNamedColumns<MsSqlAliasTable<TTable, TAlias>, readonly N[]>>;
|
|
45
|
+
select<TAlias extends string, const T extends readonly FieldInput[]>(alias: MsSqlAliasTable<TTable, TAlias>, fields: (query: FieldsQuery<MsSqlAliasTable<TTable, TAlias>>) => T): SelectFrom<MsSqlAliasTable<TTable, TAlias>, MergeFields<T>>;
|
|
46
|
+
select<TAlias extends string, const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>[]>(alias: MsSqlAliasTable<TTable, TAlias>, fields: T & readonly (FieldInput | MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>)[]): SelectFrom<MsSqlAliasTable<TTable, TAlias>, MergeFields<NamedFields<MsSqlAliasTable<TTable, TAlias>, T>>>;
|
|
47
|
+
select<TAlias extends string, TSelection extends SelectedFields<MsSqlColumn, MsSqlAliasTable<TTable, TAlias>>>(alias: MsSqlAliasTable<TTable, TAlias>, fields: Fields<FieldsQuery<MsSqlAliasTable<TTable, TAlias>>, TSelection>): SelectFrom<MsSqlAliasTable<TTable, TAlias>, TSelection>;
|
|
48
|
+
/********************************************************************************************************************
|
|
49
|
+
* find
|
|
50
|
+
* ******************************************************************************************************************/
|
|
51
|
+
find(where: BaseWhere<this>): Promise<FindResult<TTable, undefined>>;
|
|
52
|
+
find(fields: readonly [], where?: BaseWhere<this>): Promise<FindResult<TTable, {}>>;
|
|
53
|
+
find<N extends MsSqlColumnSelectionName<TTable>>(fields: readonly N[] & readonly MsSqlColumnSelectionName<TTable>[], where?: BaseWhere<this>): Promise<FindResult<TTable, MsSqlSelectedNamedColumns<TTable, readonly N[]>>>;
|
|
54
|
+
find<const T extends readonly FieldInput[]>(fields: (query: FieldsQuery<TTable>) => T, where: BaseWhere<this>): Promise<FindResult<TTable, MergeFields<T>>>;
|
|
55
|
+
find<const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<TTable>[]>(fields: T & readonly (FieldInput | MsSqlColumnSelectionName<TTable>)[], where: BaseWhere<this>): Promise<FindResult<TTable, MergeFields<NamedFields<TTable, T>>>>;
|
|
56
|
+
find<TSelection extends SelectedFields<MsSqlColumn, TTable>>(fields: Fields<FieldsQuery<TTable>, TSelection>, where: BaseWhere<this>): Promise<FindResult<TTable, TSelection>>;
|
|
57
|
+
find<TAlias extends string>(alias: MsSqlAliasTable<TTable, TAlias>, where: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, undefined>>;
|
|
58
|
+
find<TAlias extends string>(alias: MsSqlAliasTable<TTable, TAlias>, fields: readonly [], where?: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, {}>>;
|
|
59
|
+
find<TAlias extends string, N extends MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>>(alias: MsSqlAliasTable<TTable, TAlias>, fields: readonly N[] & readonly MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>[], where?: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, MsSqlSelectedNamedColumns<MsSqlAliasTable<TTable, TAlias>, readonly N[]>>>;
|
|
60
|
+
find<TAlias extends string, const T extends readonly FieldInput[]>(alias: MsSqlAliasTable<TTable, TAlias>, fields: (query: FieldsQuery<MsSqlAliasTable<TTable, TAlias>>) => T, where: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, MergeFields<T>>>;
|
|
61
|
+
find<TAlias extends string, const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>[]>(alias: MsSqlAliasTable<TTable, TAlias>, fields: T & readonly (FieldInput | MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>)[], where: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, MergeFields<NamedFields<MsSqlAliasTable<TTable, TAlias>, T>>>>;
|
|
62
|
+
find<TAlias extends string, TSelection extends SelectedFields<MsSqlColumn, MsSqlAliasTable<TTable, TAlias>>>(alias: MsSqlAliasTable<TTable, TAlias>, fields: Fields<FieldsQuery<MsSqlAliasTable<TTable, TAlias>>, TSelection>, where: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, TSelection>>;
|
|
63
|
+
/********************************************************************************************************************
|
|
64
|
+
* findByPrimaryKey
|
|
65
|
+
* ******************************************************************************************************************/
|
|
66
|
+
findByPrimaryKey<N extends MsSqlColumnSelectionName<TTable>>(fields: readonly N[] & readonly MsSqlColumnSelectionName<TTable>[], key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, MsSqlSelectedNamedColumns<TTable, readonly N[]>>>;
|
|
67
|
+
findByPrimaryKey(key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, undefined>>;
|
|
68
|
+
findByPrimaryKey(fields: readonly [], key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, {}>>;
|
|
69
|
+
findByPrimaryKey<const T extends readonly FieldInput[]>(fields: (query: FieldsQuery<TTable>) => T, key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, MergeFields<T>>>;
|
|
70
|
+
findByPrimaryKey<const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<TTable>[]>(fields: T & readonly (FieldInput | MsSqlColumnSelectionName<TTable>)[], key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, MergeFields<NamedFields<TTable, T>>>>;
|
|
71
|
+
findByPrimaryKey<TSelection extends SelectedFields<MsSqlColumn, TTable>>(fields: Fields<FieldsQuery<TTable>, TSelection>, key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, TSelection>>;
|
|
72
|
+
/********************************************************************************************************************
|
|
73
|
+
* primaryKeyCondition
|
|
74
|
+
* ******************************************************************************************************************/
|
|
75
|
+
private primaryKeyCondition;
|
|
76
|
+
/********************************************************************************************************************
|
|
77
|
+
* exists
|
|
78
|
+
* ******************************************************************************************************************/
|
|
79
|
+
exists(where?: BaseWhere<this>): Promise<boolean>;
|
|
80
|
+
/********************************************************************************************************************
|
|
81
|
+
* existsByPrimarykey
|
|
82
|
+
* ******************************************************************************************************************/
|
|
83
|
+
existsByPrimaryKey(key: PrimaryKeyInput<TTable>): Promise<boolean>;
|
|
84
|
+
/********************************************************************************************************************
|
|
85
|
+
* notExists
|
|
86
|
+
* ******************************************************************************************************************/
|
|
87
|
+
notExists(where?: BaseWhere<this>): Promise<boolean>;
|
|
88
|
+
/********************************************************************************************************************
|
|
89
|
+
* notExistsByPrimaryKey
|
|
90
|
+
* ******************************************************************************************************************/
|
|
91
|
+
notExistsByPrimaryKey(key: PrimaryKeyInput<TTable>): Promise<boolean>;
|
|
92
|
+
/********************************************************************************************************************
|
|
93
|
+
* count
|
|
94
|
+
* ******************************************************************************************************************/
|
|
95
|
+
count(where?: BaseWhere<this>): Promise<number>;
|
|
96
|
+
private prepareValues;
|
|
97
|
+
/********************************************************************************************************************
|
|
98
|
+
* (PRIVATE) executeInsert
|
|
99
|
+
* ******************************************************************************************************************/
|
|
100
|
+
private executeInsert;
|
|
101
|
+
/********************************************************************************************************************
|
|
102
|
+
* insertValues
|
|
103
|
+
* ******************************************************************************************************************/
|
|
104
|
+
insertValues(values: IV[]): IV[];
|
|
105
|
+
insertValues(values: IV): IV;
|
|
106
|
+
/********************************************************************************************************************
|
|
107
|
+
* updateValues
|
|
108
|
+
* ******************************************************************************************************************/
|
|
109
|
+
updateValues(values: UV): UV;
|
|
110
|
+
/********************************************************************************************************************
|
|
111
|
+
* add
|
|
112
|
+
* ******************************************************************************************************************/
|
|
113
|
+
add(value: IV[]): Promise<AR[]>;
|
|
114
|
+
add(value: IV): Promise<AR>;
|
|
115
|
+
/********************************************************************************************************************
|
|
116
|
+
* edit
|
|
117
|
+
* ******************************************************************************************************************/
|
|
118
|
+
edit(this: this & (TableMutationPolicy<TTable> extends {
|
|
119
|
+
updateBlocked: true;
|
|
120
|
+
} ? never : unknown), set: UV, where: BaseWhere<this>): Omit<import("drizzle-orm/mssql-core").MsSqlUpdateBase<TTable, import("drizzle-orm/node-mssql").NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, undefined, false, "where">, "where">;
|
|
121
|
+
/********************************************************************************************************************
|
|
122
|
+
* editByPrimaryKey
|
|
123
|
+
* ******************************************************************************************************************/
|
|
124
|
+
editByPrimaryKey(this: this & (TableMutationPolicy<TTable> extends {
|
|
125
|
+
updateBlocked: true;
|
|
126
|
+
} ? never : unknown), set: UV, key: PrimaryKeyInput<TTable>): Omit<import("drizzle-orm/mssql-core").MsSqlUpdateBase<TTable, import("drizzle-orm/node-mssql").NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, undefined, false, "where">, "where">;
|
|
127
|
+
/********************************************************************************************************************
|
|
128
|
+
* remove
|
|
129
|
+
* ******************************************************************************************************************/
|
|
130
|
+
remove(this: this & (TableMutationPolicy<TTable> extends {
|
|
131
|
+
deleteBlocked: true;
|
|
132
|
+
} ? never : unknown), where: BaseWhere<this>): Omit<import("drizzle-orm/mssql-core").MsSqlDeleteBase<TTable, import("drizzle-orm/node-mssql").NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, undefined, false, "where">, "where">;
|
|
133
|
+
/********************************************************************************************************************
|
|
134
|
+
* removeByPrimaryKey
|
|
135
|
+
* ******************************************************************************************************************/
|
|
136
|
+
removeByPrimaryKey(this: this & (TableMutationPolicy<TTable> extends {
|
|
137
|
+
deleteBlocked: true;
|
|
138
|
+
} ? never : unknown), key: PrimaryKeyInput<TTable>): Omit<import("drizzle-orm/mssql-core").MsSqlDeleteBase<TTable, import("drizzle-orm/node-mssql").NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, undefined, false, "where">, "where">;
|
|
139
|
+
private assertMutationAllowed;
|
|
140
|
+
/********************************************************************************************************************
|
|
141
|
+
* eq
|
|
142
|
+
* ******************************************************************************************************************/
|
|
143
|
+
eq(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
144
|
+
/********************************************************************************************************************
|
|
145
|
+
* ne
|
|
146
|
+
* ******************************************************************************************************************/
|
|
147
|
+
ne(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
148
|
+
/********************************************************************************************************************
|
|
149
|
+
* gt
|
|
150
|
+
* ******************************************************************************************************************/
|
|
151
|
+
gt(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
152
|
+
/********************************************************************************************************************
|
|
153
|
+
* gte
|
|
154
|
+
* ******************************************************************************************************************/
|
|
155
|
+
gte(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
156
|
+
/********************************************************************************************************************
|
|
157
|
+
* lt
|
|
158
|
+
* ******************************************************************************************************************/
|
|
159
|
+
lt(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
160
|
+
/********************************************************************************************************************
|
|
161
|
+
* lte
|
|
162
|
+
* ******************************************************************************************************************/
|
|
163
|
+
lte(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
164
|
+
/********************************************************************************************************************
|
|
165
|
+
* lte
|
|
166
|
+
* ******************************************************************************************************************/
|
|
167
|
+
inArray(values: MsSqlArrayCompareValues<TTable>): SQL | undefined;
|
|
168
|
+
/********************************************************************************************************************
|
|
169
|
+
* notInArray
|
|
170
|
+
* ******************************************************************************************************************/
|
|
171
|
+
notInArray(values: MsSqlArrayCompareValues<TTable>): SQL | undefined;
|
|
172
|
+
/********************************************************************************************************************
|
|
173
|
+
* between
|
|
174
|
+
* ******************************************************************************************************************/
|
|
175
|
+
between(values: MsSqlRangeCompareValues<TTable>): SQL | undefined;
|
|
176
|
+
/********************************************************************************************************************
|
|
177
|
+
* notBetween
|
|
178
|
+
* ******************************************************************************************************************/
|
|
179
|
+
notBetween(values: MsSqlRangeCompareValues<TTable>): SQL | undefined;
|
|
180
|
+
/********************************************************************************************************************
|
|
181
|
+
* like
|
|
182
|
+
* ******************************************************************************************************************/
|
|
183
|
+
like(values: MsSqlPatternCompareValues<TTable>): SQL | undefined;
|
|
184
|
+
/********************************************************************************************************************
|
|
185
|
+
* notLike
|
|
186
|
+
* ******************************************************************************************************************/
|
|
187
|
+
notLike(values: MsSqlPatternCompareValues<TTable>): SQL | undefined;
|
|
188
|
+
/********************************************************************************************************************
|
|
189
|
+
* ilike
|
|
190
|
+
* ******************************************************************************************************************/
|
|
191
|
+
ilike(values: MsSqlPatternCompareValues<TTable>): SQL | undefined;
|
|
192
|
+
/********************************************************************************************************************
|
|
193
|
+
* notIlike
|
|
194
|
+
* ******************************************************************************************************************/
|
|
195
|
+
notIlike(values: MsSqlPatternCompareValues<TTable>): SQL | undefined;
|
|
196
|
+
/********************************************************************************************************************
|
|
197
|
+
* isNull
|
|
198
|
+
* ******************************************************************************************************************/
|
|
199
|
+
isNull(name: MsSqlColumnName<TTable>): SQL;
|
|
200
|
+
isNull(names: MsSqlNullConditionInput<TTable>): SQL | undefined;
|
|
201
|
+
/********************************************************************************************************************
|
|
202
|
+
* isNotNull
|
|
203
|
+
* ******************************************************************************************************************/
|
|
204
|
+
isNotNull(name: MsSqlColumnName<TTable>): SQL;
|
|
205
|
+
isNotNull(names: MsSqlNullConditionInput<TTable>): SQL | undefined;
|
|
206
|
+
/********************************************************************************************************************
|
|
207
|
+
* and
|
|
208
|
+
* ******************************************************************************************************************/
|
|
209
|
+
and(options: MsSqlConditions<TTable>): SQL | undefined;
|
|
210
|
+
/********************************************************************************************************************
|
|
211
|
+
* or
|
|
212
|
+
* ******************************************************************************************************************/
|
|
213
|
+
or(options: MsSqlConditions<TTable>): SQL | undefined;
|
|
214
|
+
}
|
|
215
|
+
/********************************************************************************************************************
|
|
216
|
+
* types
|
|
217
|
+
* ******************************************************************************************************************/
|
|
218
|
+
type SelectFrom<TTable extends MsSqlTable, TSelection extends FieldSet | undefined> = MsSqlSelectBase<GetSelectTableName<TTable>, TSelection extends undefined ? MsSqlSelectedTableColumns<TTable> : TSelection, 'partial', NodeMsSqlPreparedQueryHKT, 'from'>;
|
|
219
|
+
type FindResult<TTable extends MsSqlTable, TSelection extends FieldSet | undefined> = Awaited<SelectFrom<TTable, TSelection>>[number] | undefined;
|
|
220
|
+
type WhereQuery<TQuery> = Pick<TQuery, Extract<keyof TQuery, 't' | 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'inArray' | 'notInArray' | 'between' | 'notBetween' | 'like' | 'notLike' | 'ilike' | 'notIlike' | 'isNull' | 'isNotNull' | 'and' | 'or'>>;
|
|
221
|
+
type BaseWhere<TQuery> = SQL | undefined | ((query: WhereQuery<TQuery>) => SQL | undefined);
|
|
222
|
+
type FieldSet = SelectedFields<MsSqlColumn, MsSqlTable>;
|
|
223
|
+
type FieldInput = FieldSet | false | undefined;
|
|
224
|
+
type FieldsQuery<TTable extends MsSqlTable> = {
|
|
225
|
+
readonly t: TTable;
|
|
226
|
+
columns(): MsSqlSelectedTableColumns<TTable>;
|
|
227
|
+
columns<N extends MsSqlColumnSelectionName<TTable>>(...names: N[] & MsSqlColumnSelectionName<TTable>[]): MsSqlSelectedNamedColumnUnion<TTable, N>;
|
|
228
|
+
};
|
|
229
|
+
type Fields<TQuery, TSelection> = TSelection | ((query: TQuery) => TSelection);
|
|
230
|
+
type NamedFields<TTable extends MsSqlTable, T extends readonly (FieldInput | MsSqlColumnSelectionName<TTable>)[]> = {
|
|
231
|
+
[I in keyof T]: T[I] extends MsSqlColumnSelectionName<TTable> ? MsSqlSelectedNamedColumns<TTable, readonly [T[I]]> : Extract<T[I], FieldInput>;
|
|
232
|
+
};
|
|
233
|
+
type MergeField<First, Result> = First extends FieldSet ? Result extends unknown ? Omit<Result, keyof First> & First : never : Result;
|
|
234
|
+
type MergeFields<T extends readonly FieldInput[], Result = {}> = T extends readonly [
|
|
235
|
+
infer First extends FieldInput,
|
|
236
|
+
...infer Rest extends readonly FieldInput[]
|
|
237
|
+
] ? MergeFields<Rest, MergeField<First, Result>> : number extends T['length'] ? Exclude<T[number], false | undefined> : Result extends unknown ? {
|
|
238
|
+
[P in keyof Result]: Result[P];
|
|
239
|
+
} : never;
|
|
240
|
+
type PrimaryKeyNames<T extends MsSqlTable> = {
|
|
241
|
+
[P in keyof T['_']['columns']]: T['_']['columns'][P]['_'] extends {
|
|
242
|
+
isPrimaryKey: true;
|
|
243
|
+
} ? P : never;
|
|
244
|
+
}[keyof T['_']['columns']];
|
|
245
|
+
type PrimaryKeyObject<T extends MsSqlTable> = {
|
|
246
|
+
[P in PrimaryKeyNames<T>]: T['_']['columns'][P]['_']['data'];
|
|
247
|
+
};
|
|
248
|
+
type IsUnion<T, U = T> = T extends U ? ([U] extends [T] ? false : true) : never;
|
|
249
|
+
type PrimaryKeyInput<T extends MsSqlTable> = [PrimaryKeyNames<T>] extends [never] ? Partial<{
|
|
250
|
+
[P in keyof T['_']['columns']]: T['_']['columns'][P]['_']['data'];
|
|
251
|
+
}> : IsUnion<PrimaryKeyNames<T>> extends true ? PrimaryKeyObject<T> : PrimaryKeyObject<T> | PrimaryKeyObject<T>[PrimaryKeyNames<T>];
|
|
252
|
+
type AutoIncrementKeys<TTable extends MsSqlTable> = {
|
|
253
|
+
[P in keyof TTable['_']['columns']]: TTable['_']['columns'][P]['_'] extends {
|
|
254
|
+
generated: infer G;
|
|
255
|
+
} ? undefined extends G ? never : keyof G extends never ? P : never : never;
|
|
256
|
+
}[keyof TTable['_']['columns']];
|
|
257
|
+
type HasAutoIncrement<TTable extends MsSqlTable> = [AutoIncrementKeys<TTable>] extends [never] ? false : true;
|
|
258
|
+
type AddResult<TTable extends MsSqlTable> = HasAutoIncrement<TTable> extends true ? TTable['_']['columns'][AutoIncrementKeys<TTable>]['_']['data'] : undefined;
|
|
259
|
+
export {};
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { SQL } from 'drizzle-orm';
|
|
2
|
+
import { MsSqlTable, MsSqlColumn, type MsSqlSelectBase } from 'drizzle-orm/mssql-core';
|
|
3
|
+
import type { SelectedFields } from 'drizzle-orm/operations';
|
|
4
|
+
import type { GetSelectTableName } from 'drizzle-orm/query-builders/select.types';
|
|
5
|
+
import type { MsSqlColumnSelectionName, MsSqlSelectedNamedColumnUnion, MsSqlSelectedNamedColumns, MsSqlSelectedTableColumns, MsSqlAliasTable } from './columns.js';
|
|
6
|
+
import { type TableMutationPolicy } from './mssqlTable.js';
|
|
7
|
+
import type { MsSqlInsertValues, MsSqlUpdateValues, MsSqlCompareValues, MsSqlColumnName, MsSqlArrayCompareValues, MsSqlRangeCompareValues, MsSqlPatternCompareValues, MsSqlNullConditionInput, MsSqlConditions } from './@types/index.js';
|
|
8
|
+
import type { NodeMsSqlDatabase, NodeMsSqlPreparedQueryHKT } from 'drizzle-orm/node-mssql';
|
|
9
|
+
/********************************************************************************************************************
|
|
10
|
+
* MsSqlQuery
|
|
11
|
+
* ******************************************************************************************************************/
|
|
12
|
+
export declare class MsSqlQuery<TTable extends MsSqlTable, IV extends MsSqlInsertValues<TTable> = MsSqlInsertValues<TTable>, UV extends MsSqlUpdateValues<TTable> = MsSqlUpdateValues<TTable>, AR = AddResult<TTable>> {
|
|
13
|
+
private readonly current;
|
|
14
|
+
private readonly getTimestamp?;
|
|
15
|
+
readonly t: TTable;
|
|
16
|
+
/********************************************************************************************************************
|
|
17
|
+
* constructor
|
|
18
|
+
* ******************************************************************************************************************/
|
|
19
|
+
constructor(table: TTable, current: (() => NodeMsSqlDatabase) & {
|
|
20
|
+
getTimestamp?: () => unknown;
|
|
21
|
+
}, getTimestamp?: (() => unknown) | undefined);
|
|
22
|
+
private readonly drizzle;
|
|
23
|
+
/********************************************************************************************************************
|
|
24
|
+
* (PROTECTED) getTx
|
|
25
|
+
* ******************************************************************************************************************/
|
|
26
|
+
protected getTx(): NodeMsSqlDatabase;
|
|
27
|
+
/********************************************************************************************************************
|
|
28
|
+
* columns
|
|
29
|
+
* ******************************************************************************************************************/
|
|
30
|
+
columns(): MsSqlSelectedTableColumns<TTable>;
|
|
31
|
+
columns<N extends MsSqlColumnSelectionName<TTable>>(...names: N[] & MsSqlColumnSelectionName<TTable>[]): MsSqlSelectedNamedColumnUnion<TTable, N>;
|
|
32
|
+
private resolveFields;
|
|
33
|
+
/********************************************************************************************************************
|
|
34
|
+
* select
|
|
35
|
+
* ******************************************************************************************************************/
|
|
36
|
+
select(): SelectFrom<TTable, undefined>;
|
|
37
|
+
select(fields: readonly []): SelectFrom<TTable, {}>;
|
|
38
|
+
select<N extends MsSqlColumnSelectionName<TTable>>(fields: readonly N[] & readonly MsSqlColumnSelectionName<TTable>[]): SelectFrom<TTable, MsSqlSelectedNamedColumns<TTable, readonly N[]>>;
|
|
39
|
+
select<const T extends readonly FieldInput[]>(fields: (query: FieldsQuery<TTable>) => T): SelectFrom<TTable, MergeFields<T>>;
|
|
40
|
+
select<const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<TTable>[]>(fields: T & readonly (FieldInput | MsSqlColumnSelectionName<TTable>)[]): SelectFrom<TTable, MergeFields<NamedFields<TTable, T>>>;
|
|
41
|
+
select<TSelection extends SelectedFields<MsSqlColumn, TTable>>(fields?: Fields<FieldsQuery<TTable>, TSelection>): SelectFrom<TTable, TSelection>;
|
|
42
|
+
select<TAlias extends string>(alias: MsSqlAliasTable<TTable, TAlias>): SelectFrom<MsSqlAliasTable<TTable, TAlias>, undefined>;
|
|
43
|
+
select<TAlias extends string>(alias: MsSqlAliasTable<TTable, TAlias>, fields: readonly []): SelectFrom<MsSqlAliasTable<TTable, TAlias>, {}>;
|
|
44
|
+
select<TAlias extends string, N extends MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>>(alias: MsSqlAliasTable<TTable, TAlias>, fields: readonly N[] & readonly MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>[]): SelectFrom<MsSqlAliasTable<TTable, TAlias>, MsSqlSelectedNamedColumns<MsSqlAliasTable<TTable, TAlias>, readonly N[]>>;
|
|
45
|
+
select<TAlias extends string, const T extends readonly FieldInput[]>(alias: MsSqlAliasTable<TTable, TAlias>, fields: (query: FieldsQuery<MsSqlAliasTable<TTable, TAlias>>) => T): SelectFrom<MsSqlAliasTable<TTable, TAlias>, MergeFields<T>>;
|
|
46
|
+
select<TAlias extends string, const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>[]>(alias: MsSqlAliasTable<TTable, TAlias>, fields: T & readonly (FieldInput | MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>)[]): SelectFrom<MsSqlAliasTable<TTable, TAlias>, MergeFields<NamedFields<MsSqlAliasTable<TTable, TAlias>, T>>>;
|
|
47
|
+
select<TAlias extends string, TSelection extends SelectedFields<MsSqlColumn, MsSqlAliasTable<TTable, TAlias>>>(alias: MsSqlAliasTable<TTable, TAlias>, fields: Fields<FieldsQuery<MsSqlAliasTable<TTable, TAlias>>, TSelection>): SelectFrom<MsSqlAliasTable<TTable, TAlias>, TSelection>;
|
|
48
|
+
/********************************************************************************************************************
|
|
49
|
+
* find
|
|
50
|
+
* ******************************************************************************************************************/
|
|
51
|
+
find(where: BaseWhere<this>): Promise<FindResult<TTable, undefined>>;
|
|
52
|
+
find(fields: readonly [], where?: BaseWhere<this>): Promise<FindResult<TTable, {}>>;
|
|
53
|
+
find<N extends MsSqlColumnSelectionName<TTable>>(fields: readonly N[] & readonly MsSqlColumnSelectionName<TTable>[], where?: BaseWhere<this>): Promise<FindResult<TTable, MsSqlSelectedNamedColumns<TTable, readonly N[]>>>;
|
|
54
|
+
find<const T extends readonly FieldInput[]>(fields: (query: FieldsQuery<TTable>) => T, where: BaseWhere<this>): Promise<FindResult<TTable, MergeFields<T>>>;
|
|
55
|
+
find<const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<TTable>[]>(fields: T & readonly (FieldInput | MsSqlColumnSelectionName<TTable>)[], where: BaseWhere<this>): Promise<FindResult<TTable, MergeFields<NamedFields<TTable, T>>>>;
|
|
56
|
+
find<TSelection extends SelectedFields<MsSqlColumn, TTable>>(fields: Fields<FieldsQuery<TTable>, TSelection>, where: BaseWhere<this>): Promise<FindResult<TTable, TSelection>>;
|
|
57
|
+
find<TAlias extends string>(alias: MsSqlAliasTable<TTable, TAlias>, where: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, undefined>>;
|
|
58
|
+
find<TAlias extends string>(alias: MsSqlAliasTable<TTable, TAlias>, fields: readonly [], where?: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, {}>>;
|
|
59
|
+
find<TAlias extends string, N extends MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>>(alias: MsSqlAliasTable<TTable, TAlias>, fields: readonly N[] & readonly MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>[], where?: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, MsSqlSelectedNamedColumns<MsSqlAliasTable<TTable, TAlias>, readonly N[]>>>;
|
|
60
|
+
find<TAlias extends string, const T extends readonly FieldInput[]>(alias: MsSqlAliasTable<TTable, TAlias>, fields: (query: FieldsQuery<MsSqlAliasTable<TTable, TAlias>>) => T, where: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, MergeFields<T>>>;
|
|
61
|
+
find<TAlias extends string, const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>[]>(alias: MsSqlAliasTable<TTable, TAlias>, fields: T & readonly (FieldInput | MsSqlColumnSelectionName<MsSqlAliasTable<TTable, TAlias>>)[], where: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, MergeFields<NamedFields<MsSqlAliasTable<TTable, TAlias>, T>>>>;
|
|
62
|
+
find<TAlias extends string, TSelection extends SelectedFields<MsSqlColumn, MsSqlAliasTable<TTable, TAlias>>>(alias: MsSqlAliasTable<TTable, TAlias>, fields: Fields<FieldsQuery<MsSqlAliasTable<TTable, TAlias>>, TSelection>, where: BaseWhere<this>): Promise<FindResult<MsSqlAliasTable<TTable, TAlias>, TSelection>>;
|
|
63
|
+
/********************************************************************************************************************
|
|
64
|
+
* findByPrimaryKey
|
|
65
|
+
* ******************************************************************************************************************/
|
|
66
|
+
findByPrimaryKey<N extends MsSqlColumnSelectionName<TTable>>(fields: readonly N[] & readonly MsSqlColumnSelectionName<TTable>[], key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, MsSqlSelectedNamedColumns<TTable, readonly N[]>>>;
|
|
67
|
+
findByPrimaryKey(key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, undefined>>;
|
|
68
|
+
findByPrimaryKey(fields: readonly [], key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, {}>>;
|
|
69
|
+
findByPrimaryKey<const T extends readonly FieldInput[]>(fields: (query: FieldsQuery<TTable>) => T, key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, MergeFields<T>>>;
|
|
70
|
+
findByPrimaryKey<const T extends readonly FieldInput[] | readonly MsSqlColumnSelectionName<TTable>[]>(fields: T & readonly (FieldInput | MsSqlColumnSelectionName<TTable>)[], key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, MergeFields<NamedFields<TTable, T>>>>;
|
|
71
|
+
findByPrimaryKey<TSelection extends SelectedFields<MsSqlColumn, TTable>>(fields: Fields<FieldsQuery<TTable>, TSelection>, key: PrimaryKeyInput<TTable>): Promise<FindResult<TTable, TSelection>>;
|
|
72
|
+
/********************************************************************************************************************
|
|
73
|
+
* primaryKeyCondition
|
|
74
|
+
* ******************************************************************************************************************/
|
|
75
|
+
private primaryKeyCondition;
|
|
76
|
+
/********************************************************************************************************************
|
|
77
|
+
* exists
|
|
78
|
+
* ******************************************************************************************************************/
|
|
79
|
+
exists(where?: BaseWhere<this>): Promise<boolean>;
|
|
80
|
+
/********************************************************************************************************************
|
|
81
|
+
* existsByPrimarykey
|
|
82
|
+
* ******************************************************************************************************************/
|
|
83
|
+
existsByPrimaryKey(key: PrimaryKeyInput<TTable>): Promise<boolean>;
|
|
84
|
+
/********************************************************************************************************************
|
|
85
|
+
* notExists
|
|
86
|
+
* ******************************************************************************************************************/
|
|
87
|
+
notExists(where?: BaseWhere<this>): Promise<boolean>;
|
|
88
|
+
/********************************************************************************************************************
|
|
89
|
+
* notExistsByPrimaryKey
|
|
90
|
+
* ******************************************************************************************************************/
|
|
91
|
+
notExistsByPrimaryKey(key: PrimaryKeyInput<TTable>): Promise<boolean>;
|
|
92
|
+
/********************************************************************************************************************
|
|
93
|
+
* count
|
|
94
|
+
* ******************************************************************************************************************/
|
|
95
|
+
count(where?: BaseWhere<this>): Promise<number>;
|
|
96
|
+
private prepareValues;
|
|
97
|
+
/********************************************************************************************************************
|
|
98
|
+
* (PRIVATE) executeInsert
|
|
99
|
+
* ******************************************************************************************************************/
|
|
100
|
+
private executeInsert;
|
|
101
|
+
/********************************************************************************************************************
|
|
102
|
+
* insertValues
|
|
103
|
+
* ******************************************************************************************************************/
|
|
104
|
+
insertValues(values: IV[]): IV[];
|
|
105
|
+
insertValues(values: IV): IV;
|
|
106
|
+
/********************************************************************************************************************
|
|
107
|
+
* updateValues
|
|
108
|
+
* ******************************************************************************************************************/
|
|
109
|
+
updateValues(values: UV): UV;
|
|
110
|
+
/********************************************************************************************************************
|
|
111
|
+
* add
|
|
112
|
+
* ******************************************************************************************************************/
|
|
113
|
+
add(value: IV[]): Promise<AR[]>;
|
|
114
|
+
add(value: IV): Promise<AR>;
|
|
115
|
+
/********************************************************************************************************************
|
|
116
|
+
* edit
|
|
117
|
+
* ******************************************************************************************************************/
|
|
118
|
+
edit(this: this & (TableMutationPolicy<TTable> extends {
|
|
119
|
+
updateBlocked: true;
|
|
120
|
+
} ? never : unknown), set: UV, where: BaseWhere<this>): Omit<import("drizzle-orm/mssql-core").MsSqlUpdateBase<TTable, import("drizzle-orm/node-mssql").NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, undefined, false, "where">, "where">;
|
|
121
|
+
/********************************************************************************************************************
|
|
122
|
+
* editByPrimaryKey
|
|
123
|
+
* ******************************************************************************************************************/
|
|
124
|
+
editByPrimaryKey(this: this & (TableMutationPolicy<TTable> extends {
|
|
125
|
+
updateBlocked: true;
|
|
126
|
+
} ? never : unknown), set: UV, key: PrimaryKeyInput<TTable>): Omit<import("drizzle-orm/mssql-core").MsSqlUpdateBase<TTable, import("drizzle-orm/node-mssql").NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, undefined, false, "where">, "where">;
|
|
127
|
+
/********************************************************************************************************************
|
|
128
|
+
* remove
|
|
129
|
+
* ******************************************************************************************************************/
|
|
130
|
+
remove(this: this & (TableMutationPolicy<TTable> extends {
|
|
131
|
+
deleteBlocked: true;
|
|
132
|
+
} ? never : unknown), where: BaseWhere<this>): Omit<import("drizzle-orm/mssql-core").MsSqlDeleteBase<TTable, import("drizzle-orm/node-mssql").NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, undefined, false, "where">, "where">;
|
|
133
|
+
/********************************************************************************************************************
|
|
134
|
+
* removeByPrimaryKey
|
|
135
|
+
* ******************************************************************************************************************/
|
|
136
|
+
removeByPrimaryKey(this: this & (TableMutationPolicy<TTable> extends {
|
|
137
|
+
deleteBlocked: true;
|
|
138
|
+
} ? never : unknown), key: PrimaryKeyInput<TTable>): Omit<import("drizzle-orm/mssql-core").MsSqlDeleteBase<TTable, import("drizzle-orm/node-mssql").NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, undefined, false, "where">, "where">;
|
|
139
|
+
private assertMutationAllowed;
|
|
140
|
+
/********************************************************************************************************************
|
|
141
|
+
* eq
|
|
142
|
+
* ******************************************************************************************************************/
|
|
143
|
+
eq(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
144
|
+
/********************************************************************************************************************
|
|
145
|
+
* ne
|
|
146
|
+
* ******************************************************************************************************************/
|
|
147
|
+
ne(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
148
|
+
/********************************************************************************************************************
|
|
149
|
+
* gt
|
|
150
|
+
* ******************************************************************************************************************/
|
|
151
|
+
gt(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
152
|
+
/********************************************************************************************************************
|
|
153
|
+
* gte
|
|
154
|
+
* ******************************************************************************************************************/
|
|
155
|
+
gte(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
156
|
+
/********************************************************************************************************************
|
|
157
|
+
* lt
|
|
158
|
+
* ******************************************************************************************************************/
|
|
159
|
+
lt(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
160
|
+
/********************************************************************************************************************
|
|
161
|
+
* lte
|
|
162
|
+
* ******************************************************************************************************************/
|
|
163
|
+
lte(values: MsSqlCompareValues<TTable>): SQL | undefined;
|
|
164
|
+
/********************************************************************************************************************
|
|
165
|
+
* lte
|
|
166
|
+
* ******************************************************************************************************************/
|
|
167
|
+
inArray(values: MsSqlArrayCompareValues<TTable>): SQL | undefined;
|
|
168
|
+
/********************************************************************************************************************
|
|
169
|
+
* notInArray
|
|
170
|
+
* ******************************************************************************************************************/
|
|
171
|
+
notInArray(values: MsSqlArrayCompareValues<TTable>): SQL | undefined;
|
|
172
|
+
/********************************************************************************************************************
|
|
173
|
+
* between
|
|
174
|
+
* ******************************************************************************************************************/
|
|
175
|
+
between(values: MsSqlRangeCompareValues<TTable>): SQL | undefined;
|
|
176
|
+
/********************************************************************************************************************
|
|
177
|
+
* notBetween
|
|
178
|
+
* ******************************************************************************************************************/
|
|
179
|
+
notBetween(values: MsSqlRangeCompareValues<TTable>): SQL | undefined;
|
|
180
|
+
/********************************************************************************************************************
|
|
181
|
+
* like
|
|
182
|
+
* ******************************************************************************************************************/
|
|
183
|
+
like(values: MsSqlPatternCompareValues<TTable>): SQL | undefined;
|
|
184
|
+
/********************************************************************************************************************
|
|
185
|
+
* notLike
|
|
186
|
+
* ******************************************************************************************************************/
|
|
187
|
+
notLike(values: MsSqlPatternCompareValues<TTable>): SQL | undefined;
|
|
188
|
+
/********************************************************************************************************************
|
|
189
|
+
* ilike
|
|
190
|
+
* ******************************************************************************************************************/
|
|
191
|
+
ilike(values: MsSqlPatternCompareValues<TTable>): SQL | undefined;
|
|
192
|
+
/********************************************************************************************************************
|
|
193
|
+
* notIlike
|
|
194
|
+
* ******************************************************************************************************************/
|
|
195
|
+
notIlike(values: MsSqlPatternCompareValues<TTable>): SQL | undefined;
|
|
196
|
+
/********************************************************************************************************************
|
|
197
|
+
* isNull
|
|
198
|
+
* ******************************************************************************************************************/
|
|
199
|
+
isNull(name: MsSqlColumnName<TTable>): SQL;
|
|
200
|
+
isNull(names: MsSqlNullConditionInput<TTable>): SQL | undefined;
|
|
201
|
+
/********************************************************************************************************************
|
|
202
|
+
* isNotNull
|
|
203
|
+
* ******************************************************************************************************************/
|
|
204
|
+
isNotNull(name: MsSqlColumnName<TTable>): SQL;
|
|
205
|
+
isNotNull(names: MsSqlNullConditionInput<TTable>): SQL | undefined;
|
|
206
|
+
/********************************************************************************************************************
|
|
207
|
+
* and
|
|
208
|
+
* ******************************************************************************************************************/
|
|
209
|
+
and(options: MsSqlConditions<TTable>): SQL | undefined;
|
|
210
|
+
/********************************************************************************************************************
|
|
211
|
+
* or
|
|
212
|
+
* ******************************************************************************************************************/
|
|
213
|
+
or(options: MsSqlConditions<TTable>): SQL | undefined;
|
|
214
|
+
}
|
|
215
|
+
/********************************************************************************************************************
|
|
216
|
+
* types
|
|
217
|
+
* ******************************************************************************************************************/
|
|
218
|
+
type SelectFrom<TTable extends MsSqlTable, TSelection extends FieldSet | undefined> = MsSqlSelectBase<GetSelectTableName<TTable>, TSelection extends undefined ? MsSqlSelectedTableColumns<TTable> : TSelection, 'partial', NodeMsSqlPreparedQueryHKT, 'from'>;
|
|
219
|
+
type FindResult<TTable extends MsSqlTable, TSelection extends FieldSet | undefined> = Awaited<SelectFrom<TTable, TSelection>>[number] | undefined;
|
|
220
|
+
type WhereQuery<TQuery> = Pick<TQuery, Extract<keyof TQuery, 't' | 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'inArray' | 'notInArray' | 'between' | 'notBetween' | 'like' | 'notLike' | 'ilike' | 'notIlike' | 'isNull' | 'isNotNull' | 'and' | 'or'>>;
|
|
221
|
+
type BaseWhere<TQuery> = SQL | undefined | ((query: WhereQuery<TQuery>) => SQL | undefined);
|
|
222
|
+
type FieldSet = SelectedFields<MsSqlColumn, MsSqlTable>;
|
|
223
|
+
type FieldInput = FieldSet | false | undefined;
|
|
224
|
+
type FieldsQuery<TTable extends MsSqlTable> = {
|
|
225
|
+
readonly t: TTable;
|
|
226
|
+
columns(): MsSqlSelectedTableColumns<TTable>;
|
|
227
|
+
columns<N extends MsSqlColumnSelectionName<TTable>>(...names: N[] & MsSqlColumnSelectionName<TTable>[]): MsSqlSelectedNamedColumnUnion<TTable, N>;
|
|
228
|
+
};
|
|
229
|
+
type Fields<TQuery, TSelection> = TSelection | ((query: TQuery) => TSelection);
|
|
230
|
+
type NamedFields<TTable extends MsSqlTable, T extends readonly (FieldInput | MsSqlColumnSelectionName<TTable>)[]> = {
|
|
231
|
+
[I in keyof T]: T[I] extends MsSqlColumnSelectionName<TTable> ? MsSqlSelectedNamedColumns<TTable, readonly [T[I]]> : Extract<T[I], FieldInput>;
|
|
232
|
+
};
|
|
233
|
+
type MergeField<First, Result> = First extends FieldSet ? Result extends unknown ? Omit<Result, keyof First> & First : never : Result;
|
|
234
|
+
type MergeFields<T extends readonly FieldInput[], Result = {}> = T extends readonly [
|
|
235
|
+
infer First extends FieldInput,
|
|
236
|
+
...infer Rest extends readonly FieldInput[]
|
|
237
|
+
] ? MergeFields<Rest, MergeField<First, Result>> : number extends T['length'] ? Exclude<T[number], false | undefined> : Result extends unknown ? {
|
|
238
|
+
[P in keyof Result]: Result[P];
|
|
239
|
+
} : never;
|
|
240
|
+
type PrimaryKeyNames<T extends MsSqlTable> = {
|
|
241
|
+
[P in keyof T['_']['columns']]: T['_']['columns'][P]['_'] extends {
|
|
242
|
+
isPrimaryKey: true;
|
|
243
|
+
} ? P : never;
|
|
244
|
+
}[keyof T['_']['columns']];
|
|
245
|
+
type PrimaryKeyObject<T extends MsSqlTable> = {
|
|
246
|
+
[P in PrimaryKeyNames<T>]: T['_']['columns'][P]['_']['data'];
|
|
247
|
+
};
|
|
248
|
+
type IsUnion<T, U = T> = T extends U ? ([U] extends [T] ? false : true) : never;
|
|
249
|
+
type PrimaryKeyInput<T extends MsSqlTable> = [PrimaryKeyNames<T>] extends [never] ? Partial<{
|
|
250
|
+
[P in keyof T['_']['columns']]: T['_']['columns'][P]['_']['data'];
|
|
251
|
+
}> : IsUnion<PrimaryKeyNames<T>> extends true ? PrimaryKeyObject<T> : PrimaryKeyObject<T> | PrimaryKeyObject<T>[PrimaryKeyNames<T>];
|
|
252
|
+
type AutoIncrementKeys<TTable extends MsSqlTable> = {
|
|
253
|
+
[P in keyof TTable['_']['columns']]: TTable['_']['columns'][P]['_'] extends {
|
|
254
|
+
generated: infer G;
|
|
255
|
+
} ? undefined extends G ? never : keyof G extends never ? P : never : never;
|
|
256
|
+
}[keyof TTable['_']['columns']];
|
|
257
|
+
type HasAutoIncrement<TTable extends MsSqlTable> = [AutoIncrementKeys<TTable>] extends [never] ? false : true;
|
|
258
|
+
type AddResult<TTable extends MsSqlTable> = HasAutoIncrement<TTable> extends true ? TTable['_']['columns'][AutoIncrementKeys<TTable>]['_']['data'] : undefined;
|
|
259
|
+
export {};
|