@pdg/drizzle-mysql 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.
@@ -0,0 +1,89 @@
1
+ import { type SQL } from 'drizzle-orm';
2
+ import type { MySqlColumn, MySqlTable, MySqlTableWithColumns } from 'drizzle-orm/mysql-core';
3
+ import type { BuildAliasTable } from 'drizzle-orm/mysql-core/query-builders/select.types';
4
+ /********************************************************************************************************************
5
+ * MySqlAliasTable
6
+ * ******************************************************************************************************************/
7
+ export type MySqlAliasTable<T extends MySqlTable, Alias extends string> = MySqlTableWithColumns<Omit<BuildAliasTable<T, Alias>['_'], 'columns'> & {
8
+ columns: {
9
+ [K in keyof T['_']['columns']]: MySqlColumn<BuildAliasTable<T, Alias>['_']['columns'][K]['_'] & {
10
+ name: T['_']['columns'][K]['_']['name'];
11
+ }>;
12
+ };
13
+ }>;
14
+ /********************************************************************************************************************
15
+ * MySqlSelectedColumns
16
+ * ******************************************************************************************************************/
17
+ export type MySqlSelectedColumns<T extends readonly MySqlColumn[]> = {
18
+ [C in T[number] as C['_']['name']]: C;
19
+ };
20
+ /********************************************************************************************************************
21
+ * MySqlTableColumns
22
+ * ******************************************************************************************************************/
23
+ export type MySqlSelectedTableColumns<T extends MySqlTable> = {
24
+ [K in keyof T['_']['columns'] as string extends T['_']['columns'][K]['_']['name'] ? K : T['_']['columns'][K]['_']['name']]: T['_']['columns'][K];
25
+ };
26
+ /********************************************************************************************************************
27
+ * MySqlColumnSelectionName
28
+ * ******************************************************************************************************************/
29
+ export type MySqlColumnSelectionName<T extends MySqlTable> = (keyof T['_']['columns'] & string) | `${keyof T['_']['columns'] & string} as ${string}`;
30
+ /********************************************************************************************************************
31
+ * MySqlSelectedNamedColumn
32
+ * ******************************************************************************************************************/
33
+ type MySqlColumnForName<T extends MySqlTable, N extends string> = Extract<T['_']['columns'][Extract<N, keyof T['_']['columns']>], MySqlColumn>;
34
+ /********************************************************************************************************************
35
+ * MySqlSelectedNamedColumn
36
+ * ******************************************************************************************************************/
37
+ type MySqlSelectionKey<T extends MySqlTable, N extends string> = N extends `${string} as ${infer Alias}` ? Alias : string extends MySqlColumnForName<T, N>['_']['name'] ? N : MySqlColumnForName<T, N>['_']['name'];
38
+ /********************************************************************************************************************
39
+ * MySqlSelectedNamedColumn
40
+ * ******************************************************************************************************************/
41
+ type MySqlSelectionValue<T extends MySqlTable, N extends string> = N extends `${infer Name} as ${string}` ? SQL.Aliased<MySqlColumnForName<T, Name>['_']['data']> : MySqlColumnForName<T, N>;
42
+ /********************************************************************************************************************
43
+ * MySqlSelectedNamedColumn
44
+ * ******************************************************************************************************************/
45
+ type MySqlSelectedNamedColumn<T extends MySqlTable, N extends string> = {
46
+ [K in MySqlSelectionKey<T, N>]: MySqlSelectionValue<T, N>;
47
+ };
48
+ /********************************************************************************************************************
49
+ * MySqlSelectedNamedColumnUnion
50
+ * ******************************************************************************************************************/
51
+ export type MySqlSelectedNamedColumnUnion<T extends MySqlTable, N extends string> = {
52
+ [Name in N as MySqlSelectionKey<T, Name>]: MySqlSelectionValue<T, Name>;
53
+ };
54
+ /********************************************************************************************************************
55
+ * MySqlSelectedNamedColumns
56
+ * ******************************************************************************************************************/
57
+ export type MySqlSelectedNamedColumns<T extends MySqlTable, N extends readonly string[], Result = {}> = number extends N['length'] ? {
58
+ [Name in N[number] as MySqlSelectionKey<T, Name>]: MySqlSelectionValue<T, Name>;
59
+ } : N extends readonly [infer First extends string, ...infer Rest extends readonly string[]] ? MySqlSelectedNamedColumns<T, Rest, Omit<Result, MySqlSelectionKey<T, First>> & MySqlSelectedNamedColumn<T, First>> : Result;
60
+ /********************************************************************************************************************
61
+ * MySqlColumnGroup
62
+ * ******************************************************************************************************************/
63
+ type MySqlColumnGroup = readonly [MySqlTable, ...string[]];
64
+ /********************************************************************************************************************
65
+ * MySqlGroupColumns
66
+ * ******************************************************************************************************************/
67
+ type MySqlGroupColumns<G extends MySqlColumnGroup> = G extends readonly [infer T extends MySqlTable, ...infer N] ? N extends readonly [] ? MySqlSelectedTableColumns<T> : MySqlSelectedNamedColumns<T, Extract<N, readonly string[]>> : never;
68
+ /********************************************************************************************************************
69
+ * MySqlMergedGroupColumns
70
+ * ******************************************************************************************************************/
71
+ type MySqlMergedGroupColumns<G extends readonly MySqlColumnGroup[], Result = {}> = G extends readonly [
72
+ infer First extends MySqlColumnGroup,
73
+ ...infer Rest extends readonly MySqlColumnGroup[]
74
+ ] ? MySqlMergedGroupColumns<Rest, Omit<Result, keyof MySqlGroupColumns<First>> & MySqlGroupColumns<First>> : {
75
+ [P in keyof Result]: Result[P];
76
+ };
77
+ /********************************************************************************************************************
78
+ * MySqlTableColumns
79
+ * ******************************************************************************************************************/
80
+ export declare function TableColumns<A extends MySqlTable, const AN extends readonly MySqlColumnSelectionName<A>[], B extends MySqlTable, const BN extends readonly MySqlColumnSelectionName<B>[]>(a: readonly [A, ...AN], b: readonly [B, ...BN]): MySqlMergedGroupColumns<readonly [readonly [A, ...AN], readonly [B, ...BN]]>;
81
+ export declare function TableColumns<T extends MySqlTable>(table: T): MySqlSelectedTableColumns<T>;
82
+ export declare function TableColumns<T extends MySqlTable, N extends MySqlColumnSelectionName<T>>(table: T, ...names: N[] & MySqlColumnSelectionName<T>[]): MySqlSelectedNamedColumnUnion<T, N>;
83
+ export declare function TableColumns<T extends MySqlTable, N extends string>(table: T, ...names: N[] & MySqlColumnSelectionName<T>[]): Record<string, MySqlColumn | SQL.Aliased>;
84
+ export declare function TableColumns<const T extends readonly MySqlColumn[]>(columns: T): MySqlSelectedColumns<T>;
85
+ export declare function TableColumns<const T extends readonly [MySqlColumn, ...MySqlColumn[]]>(...columns: T): MySqlSelectedColumns<T>;
86
+ export declare function TableColumns<const G extends readonly [MySqlColumnGroup, ...MySqlColumnGroup[]]>(...groups: G & {
87
+ [I in keyof G]: readonly [G[I][0], ...MySqlColumnSelectionName<G[I][0]>[]];
88
+ }): MySqlMergedGroupColumns<G>;
89
+ export {};
@@ -0,0 +1,89 @@
1
+ import { type SQL } from 'drizzle-orm';
2
+ import type { MySqlColumn, MySqlTable, MySqlTableWithColumns } from 'drizzle-orm/mysql-core';
3
+ import type { BuildAliasTable } from 'drizzle-orm/mysql-core/query-builders/select.types';
4
+ /********************************************************************************************************************
5
+ * MySqlAliasTable
6
+ * ******************************************************************************************************************/
7
+ export type MySqlAliasTable<T extends MySqlTable, Alias extends string> = MySqlTableWithColumns<Omit<BuildAliasTable<T, Alias>['_'], 'columns'> & {
8
+ columns: {
9
+ [K in keyof T['_']['columns']]: MySqlColumn<BuildAliasTable<T, Alias>['_']['columns'][K]['_'] & {
10
+ name: T['_']['columns'][K]['_']['name'];
11
+ }>;
12
+ };
13
+ }>;
14
+ /********************************************************************************************************************
15
+ * MySqlSelectedColumns
16
+ * ******************************************************************************************************************/
17
+ export type MySqlSelectedColumns<T extends readonly MySqlColumn[]> = {
18
+ [C in T[number] as C['_']['name']]: C;
19
+ };
20
+ /********************************************************************************************************************
21
+ * MySqlTableColumns
22
+ * ******************************************************************************************************************/
23
+ export type MySqlSelectedTableColumns<T extends MySqlTable> = {
24
+ [K in keyof T['_']['columns'] as string extends T['_']['columns'][K]['_']['name'] ? K : T['_']['columns'][K]['_']['name']]: T['_']['columns'][K];
25
+ };
26
+ /********************************************************************************************************************
27
+ * MySqlColumnSelectionName
28
+ * ******************************************************************************************************************/
29
+ export type MySqlColumnSelectionName<T extends MySqlTable> = (keyof T['_']['columns'] & string) | `${keyof T['_']['columns'] & string} as ${string}`;
30
+ /********************************************************************************************************************
31
+ * MySqlSelectedNamedColumn
32
+ * ******************************************************************************************************************/
33
+ type MySqlColumnForName<T extends MySqlTable, N extends string> = Extract<T['_']['columns'][Extract<N, keyof T['_']['columns']>], MySqlColumn>;
34
+ /********************************************************************************************************************
35
+ * MySqlSelectedNamedColumn
36
+ * ******************************************************************************************************************/
37
+ type MySqlSelectionKey<T extends MySqlTable, N extends string> = N extends `${string} as ${infer Alias}` ? Alias : string extends MySqlColumnForName<T, N>['_']['name'] ? N : MySqlColumnForName<T, N>['_']['name'];
38
+ /********************************************************************************************************************
39
+ * MySqlSelectedNamedColumn
40
+ * ******************************************************************************************************************/
41
+ type MySqlSelectionValue<T extends MySqlTable, N extends string> = N extends `${infer Name} as ${string}` ? SQL.Aliased<MySqlColumnForName<T, Name>['_']['data']> : MySqlColumnForName<T, N>;
42
+ /********************************************************************************************************************
43
+ * MySqlSelectedNamedColumn
44
+ * ******************************************************************************************************************/
45
+ type MySqlSelectedNamedColumn<T extends MySqlTable, N extends string> = {
46
+ [K in MySqlSelectionKey<T, N>]: MySqlSelectionValue<T, N>;
47
+ };
48
+ /********************************************************************************************************************
49
+ * MySqlSelectedNamedColumnUnion
50
+ * ******************************************************************************************************************/
51
+ export type MySqlSelectedNamedColumnUnion<T extends MySqlTable, N extends string> = {
52
+ [Name in N as MySqlSelectionKey<T, Name>]: MySqlSelectionValue<T, Name>;
53
+ };
54
+ /********************************************************************************************************************
55
+ * MySqlSelectedNamedColumns
56
+ * ******************************************************************************************************************/
57
+ export type MySqlSelectedNamedColumns<T extends MySqlTable, N extends readonly string[], Result = {}> = number extends N['length'] ? {
58
+ [Name in N[number] as MySqlSelectionKey<T, Name>]: MySqlSelectionValue<T, Name>;
59
+ } : N extends readonly [infer First extends string, ...infer Rest extends readonly string[]] ? MySqlSelectedNamedColumns<T, Rest, Omit<Result, MySqlSelectionKey<T, First>> & MySqlSelectedNamedColumn<T, First>> : Result;
60
+ /********************************************************************************************************************
61
+ * MySqlColumnGroup
62
+ * ******************************************************************************************************************/
63
+ type MySqlColumnGroup = readonly [MySqlTable, ...string[]];
64
+ /********************************************************************************************************************
65
+ * MySqlGroupColumns
66
+ * ******************************************************************************************************************/
67
+ type MySqlGroupColumns<G extends MySqlColumnGroup> = G extends readonly [infer T extends MySqlTable, ...infer N] ? N extends readonly [] ? MySqlSelectedTableColumns<T> : MySqlSelectedNamedColumns<T, Extract<N, readonly string[]>> : never;
68
+ /********************************************************************************************************************
69
+ * MySqlMergedGroupColumns
70
+ * ******************************************************************************************************************/
71
+ type MySqlMergedGroupColumns<G extends readonly MySqlColumnGroup[], Result = {}> = G extends readonly [
72
+ infer First extends MySqlColumnGroup,
73
+ ...infer Rest extends readonly MySqlColumnGroup[]
74
+ ] ? MySqlMergedGroupColumns<Rest, Omit<Result, keyof MySqlGroupColumns<First>> & MySqlGroupColumns<First>> : {
75
+ [P in keyof Result]: Result[P];
76
+ };
77
+ /********************************************************************************************************************
78
+ * MySqlTableColumns
79
+ * ******************************************************************************************************************/
80
+ export declare function TableColumns<A extends MySqlTable, const AN extends readonly MySqlColumnSelectionName<A>[], B extends MySqlTable, const BN extends readonly MySqlColumnSelectionName<B>[]>(a: readonly [A, ...AN], b: readonly [B, ...BN]): MySqlMergedGroupColumns<readonly [readonly [A, ...AN], readonly [B, ...BN]]>;
81
+ export declare function TableColumns<T extends MySqlTable>(table: T): MySqlSelectedTableColumns<T>;
82
+ export declare function TableColumns<T extends MySqlTable, N extends MySqlColumnSelectionName<T>>(table: T, ...names: N[] & MySqlColumnSelectionName<T>[]): MySqlSelectedNamedColumnUnion<T, N>;
83
+ export declare function TableColumns<T extends MySqlTable, N extends string>(table: T, ...names: N[] & MySqlColumnSelectionName<T>[]): Record<string, MySqlColumn | SQL.Aliased>;
84
+ export declare function TableColumns<const T extends readonly MySqlColumn[]>(columns: T): MySqlSelectedColumns<T>;
85
+ export declare function TableColumns<const T extends readonly [MySqlColumn, ...MySqlColumn[]]>(...columns: T): MySqlSelectedColumns<T>;
86
+ export declare function TableColumns<const G extends readonly [MySqlColumnGroup, ...MySqlColumnGroup[]]>(...groups: G & {
87
+ [I in keyof G]: readonly [G[I][0], ...MySqlColumnSelectionName<G[I][0]>[]];
88
+ }): MySqlMergedGroupColumns<G>;
89
+ export {};
@@ -0,0 +1,106 @@
1
+ import * as native from 'drizzle-orm';
2
+ import { MySqlTable } from 'drizzle-orm/mysql-core';
3
+ import type { Column, SQL } from 'drizzle-orm';
4
+ import type { MySqlColumnName, MySqlConditions, MySqlNullConditionInput } from './@types.cjs';
5
+ export declare function createConditions<TSchema extends Record<string, MySqlTable>>(schema: TSchema): {
6
+ eq: {
7
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
8
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlCompareValues<T> | undefined): SQL | undefined;
9
+ } & {
10
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
11
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
12
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
13
+ };
14
+ ne: {
15
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
16
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlCompareValues<T> | undefined): SQL | undefined;
17
+ } & {
18
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
19
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
20
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
21
+ };
22
+ gt: {
23
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
24
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlCompareValues<T> | undefined): SQL | undefined;
25
+ } & {
26
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
27
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
28
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
29
+ };
30
+ gte: {
31
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
32
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlCompareValues<T> | undefined): SQL | undefined;
33
+ } & {
34
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
35
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
36
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
37
+ };
38
+ lt: {
39
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
40
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlCompareValues<T> | undefined): SQL | undefined;
41
+ } & {
42
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
43
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
44
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
45
+ };
46
+ lte: {
47
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
48
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlCompareValues<T> | undefined): SQL | undefined;
49
+ } & {
50
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
51
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
52
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
53
+ };
54
+ inArray: {
55
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlArrayCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
56
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlArrayCompareValues<T> | undefined): SQL | undefined;
57
+ } & typeof native.inArray;
58
+ notInArray: {
59
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlArrayCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
60
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlArrayCompareValues<T> | undefined): SQL | undefined;
61
+ } & typeof native.notInArray;
62
+ between: {
63
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlRangeCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
64
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlRangeCompareValues<T> | undefined): SQL | undefined;
65
+ } & typeof native.between;
66
+ notBetween: {
67
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlRangeCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
68
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlRangeCompareValues<T> | undefined): SQL | undefined;
69
+ } & typeof native.notBetween;
70
+ like: {
71
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlPatternCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
72
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlPatternCompareValues<T> | undefined): SQL | undefined;
73
+ } & typeof native.like;
74
+ notLike: {
75
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlPatternCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
76
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlPatternCompareValues<T> | undefined): SQL | undefined;
77
+ } & typeof native.notLike;
78
+ ilike: {
79
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlPatternCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
80
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlPatternCompareValues<T> | undefined): SQL | undefined;
81
+ } & typeof native.ilike;
82
+ notIlike: {
83
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.cjs").MySqlPatternCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
84
+ <T extends MySqlTable>(table: T, values: import("./@types.cjs").MySqlPatternCompareValues<T> | undefined): SQL | undefined;
85
+ } & typeof native.notIlike;
86
+ isNull: {
87
+ <T extends MySqlTable>(table: T, name: MySqlColumnName<T>): SQL;
88
+ <T extends MySqlTable>(table: T, names: MySqlNullConditionInput<T>): SQL | undefined;
89
+ <K extends keyof TSchema & string>(table: K, name: MySqlColumnName<(typeof schema)[K]>): SQL;
90
+ <K extends keyof TSchema & string>(table: K, names: MySqlNullConditionInput<(typeof schema)[K]>): SQL | undefined;
91
+ } & typeof native.isNull;
92
+ isNotNull: {
93
+ <T extends MySqlTable>(table: T, name: MySqlColumnName<T>): SQL;
94
+ <T extends MySqlTable>(table: T, names: MySqlNullConditionInput<T>): SQL | undefined;
95
+ <K extends keyof TSchema & string>(table: K, name: MySqlColumnName<(typeof schema)[K]>): SQL;
96
+ <K extends keyof TSchema & string>(table: K, names: MySqlNullConditionInput<(typeof schema)[K]>): SQL | undefined;
97
+ } & typeof native.isNotNull;
98
+ and: {
99
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, options: MySqlConditions<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>>): SQL | undefined;
100
+ <T extends MySqlTable>(table: T, options: MySqlConditions<T>): SQL | undefined;
101
+ } & ((...conditions: (native.SQLWrapper | false | undefined)[]) => SQL | undefined);
102
+ or: {
103
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, options: MySqlConditions<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>>): SQL | undefined;
104
+ <T extends MySqlTable>(table: T, options: MySqlConditions<T>): SQL | undefined;
105
+ } & ((...conditions: (native.SQLWrapper | false | undefined)[]) => SQL | undefined);
106
+ };
@@ -0,0 +1,106 @@
1
+ import * as native from 'drizzle-orm';
2
+ import { MySqlTable } from 'drizzle-orm/mysql-core';
3
+ import type { Column, SQL } from 'drizzle-orm';
4
+ import type { MySqlColumnName, MySqlConditions, MySqlNullConditionInput } from './@types.js';
5
+ export declare function createConditions<TSchema extends Record<string, MySqlTable>>(schema: TSchema): {
6
+ eq: {
7
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
8
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlCompareValues<T> | undefined): SQL | undefined;
9
+ } & {
10
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
11
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
12
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
13
+ };
14
+ ne: {
15
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
16
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlCompareValues<T> | undefined): SQL | undefined;
17
+ } & {
18
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
19
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
20
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
21
+ };
22
+ gt: {
23
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
24
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlCompareValues<T> | undefined): SQL | undefined;
25
+ } & {
26
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
27
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
28
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
29
+ };
30
+ gte: {
31
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
32
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlCompareValues<T> | undefined): SQL | undefined;
33
+ } & {
34
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
35
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
36
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
37
+ };
38
+ lt: {
39
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
40
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlCompareValues<T> | undefined): SQL | undefined;
41
+ } & {
42
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
43
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
44
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
45
+ };
46
+ lte: {
47
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
48
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlCompareValues<T> | undefined): SQL | undefined;
49
+ } & {
50
+ <TColumn extends Column>(left: TColumn, right: native.GetColumnData<TColumn, "raw"> | native.SQLWrapper): SQL;
51
+ <T>(left: SQL.Aliased<T>, right: T | native.SQLWrapper): SQL;
52
+ <T extends native.SQLWrapper>(left: Exclude<T, MySqlTable>, right: unknown): SQL;
53
+ };
54
+ inArray: {
55
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlArrayCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
56
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlArrayCompareValues<T> | undefined): SQL | undefined;
57
+ } & typeof native.inArray;
58
+ notInArray: {
59
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlArrayCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
60
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlArrayCompareValues<T> | undefined): SQL | undefined;
61
+ } & typeof native.notInArray;
62
+ between: {
63
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlRangeCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
64
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlRangeCompareValues<T> | undefined): SQL | undefined;
65
+ } & typeof native.between;
66
+ notBetween: {
67
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlRangeCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
68
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlRangeCompareValues<T> | undefined): SQL | undefined;
69
+ } & typeof native.notBetween;
70
+ like: {
71
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlPatternCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
72
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlPatternCompareValues<T> | undefined): SQL | undefined;
73
+ } & typeof native.like;
74
+ notLike: {
75
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlPatternCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
76
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlPatternCompareValues<T> | undefined): SQL | undefined;
77
+ } & typeof native.notLike;
78
+ ilike: {
79
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlPatternCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
80
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlPatternCompareValues<T> | undefined): SQL | undefined;
81
+ } & typeof native.ilike;
82
+ notIlike: {
83
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, values: import("./@types.js").MySqlPatternCompareValues<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>> | undefined): SQL | undefined;
84
+ <T extends MySqlTable>(table: T, values: import("./@types.js").MySqlPatternCompareValues<T> | undefined): SQL | undefined;
85
+ } & typeof native.notIlike;
86
+ isNull: {
87
+ <T extends MySqlTable>(table: T, name: MySqlColumnName<T>): SQL;
88
+ <T extends MySqlTable>(table: T, names: MySqlNullConditionInput<T>): SQL | undefined;
89
+ <K extends keyof TSchema & string>(table: K, name: MySqlColumnName<(typeof schema)[K]>): SQL;
90
+ <K extends keyof TSchema & string>(table: K, names: MySqlNullConditionInput<(typeof schema)[K]>): SQL | undefined;
91
+ } & typeof native.isNull;
92
+ isNotNull: {
93
+ <T extends MySqlTable>(table: T, name: MySqlColumnName<T>): SQL;
94
+ <T extends MySqlTable>(table: T, names: MySqlNullConditionInput<T>): SQL | undefined;
95
+ <K extends keyof TSchema & string>(table: K, name: MySqlColumnName<(typeof schema)[K]>): SQL;
96
+ <K extends keyof TSchema & string>(table: K, names: MySqlNullConditionInput<(typeof schema)[K]>): SQL | undefined;
97
+ } & typeof native.isNotNull;
98
+ and: {
99
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, options: MySqlConditions<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>>): SQL | undefined;
100
+ <T extends MySqlTable>(table: T, options: MySqlConditions<T>): SQL | undefined;
101
+ } & ((...conditions: (native.SQLWrapper | false | undefined)[]) => SQL | undefined);
102
+ or: {
103
+ <T extends (keyof TSchema & string) | MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>(table: T, options: MySqlConditions<T extends keyof TSchema & string ? TSchema[T] : Extract<T, MySqlTable<import("drizzle-orm/mysql-core").TableConfig>>>): SQL | undefined;
104
+ <T extends MySqlTable>(table: T, options: MySqlConditions<T>): SQL | undefined;
105
+ } & ((...conditions: (native.SQLWrapper | false | undefined)[]) => SQL | undefined);
106
+ };