@grest-ts/sql 0.0.5
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/LICENSE +21 -0
- package/README.md +498 -0
- package/dist/src/MysqlTable.d.ts +35 -0
- package/dist/src/MysqlTable.d.ts.map +1 -0
- package/dist/src/MysqlTable.js +70 -0
- package/dist/src/MysqlTable.js.map +1 -0
- package/dist/src/MysqlTableStructureParser.d.ts +106 -0
- package/dist/src/MysqlTableStructureParser.d.ts.map +1 -0
- package/dist/src/MysqlTableStructureParser.js +189 -0
- package/dist/src/MysqlTableStructureParser.js.map +1 -0
- package/dist/src/SQL.d.ts +72 -0
- package/dist/src/SQL.d.ts.map +1 -0
- package/dist/src/SQL.js +94 -0
- package/dist/src/SQL.js.map +1 -0
- package/dist/src/SqlExpression.d.ts +49 -0
- package/dist/src/SqlExpression.d.ts.map +1 -0
- package/dist/src/SqlExpression.js +117 -0
- package/dist/src/SqlExpression.js.map +1 -0
- package/dist/src/SqlFunctions.d.ts +118 -0
- package/dist/src/SqlFunctions.d.ts.map +1 -0
- package/dist/src/SqlFunctions.js +331 -0
- package/dist/src/SqlFunctions.js.map +1 -0
- package/dist/src/Symbols.d.ts +11 -0
- package/dist/src/Symbols.d.ts.map +1 -0
- package/dist/src/Symbols.js +11 -0
- package/dist/src/Symbols.js.map +1 -0
- package/dist/src/Types.d.ts +110 -0
- package/dist/src/Types.d.ts.map +1 -0
- package/dist/src/Types.js +34 -0
- package/dist/src/Types.js.map +1 -0
- package/dist/src/delete/DeleteBuilder.d.ts +19 -0
- package/dist/src/delete/DeleteBuilder.d.ts.map +1 -0
- package/dist/src/delete/DeleteBuilder.js +50 -0
- package/dist/src/delete/DeleteBuilder.js.map +1 -0
- package/dist/src/delete/DeleteInterfaces.d.ts +27 -0
- package/dist/src/delete/DeleteInterfaces.d.ts.map +1 -0
- package/dist/src/delete/DeleteInterfaces.js +2 -0
- package/dist/src/delete/DeleteInterfaces.js.map +1 -0
- package/dist/src/escape.d.ts +4 -0
- package/dist/src/escape.d.ts.map +1 -0
- package/dist/src/escape.js +50 -0
- package/dist/src/escape.js.map +1 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +7 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/insert/InsertBuilder.d.ts +19 -0
- package/dist/src/insert/InsertBuilder.d.ts.map +1 -0
- package/dist/src/insert/InsertBuilder.js +62 -0
- package/dist/src/insert/InsertBuilder.js.map +1 -0
- package/dist/src/insert/InsertInterfaces.d.ts +11 -0
- package/dist/src/insert/InsertInterfaces.d.ts.map +1 -0
- package/dist/src/insert/InsertInterfaces.js +2 -0
- package/dist/src/insert/InsertInterfaces.js.map +1 -0
- package/dist/src/select/SelectBuilder.d.ts +72 -0
- package/dist/src/select/SelectBuilder.d.ts.map +1 -0
- package/dist/src/select/SelectBuilder.js +315 -0
- package/dist/src/select/SelectBuilder.js.map +1 -0
- package/dist/src/select/parts/GatewayWhere.d.ts +17 -0
- package/dist/src/select/parts/GatewayWhere.d.ts.map +1 -0
- package/dist/src/select/parts/GatewayWhere.js +2 -0
- package/dist/src/select/parts/GatewayWhere.js.map +1 -0
- package/dist/src/select/parts/S0Union.d.ts +20 -0
- package/dist/src/select/parts/S0Union.d.ts.map +1 -0
- package/dist/src/select/parts/S0Union.js +2 -0
- package/dist/src/select/parts/S0Union.js.map +1 -0
- package/dist/src/select/parts/S0Uses.d.ts +6 -0
- package/dist/src/select/parts/S0Uses.d.ts.map +1 -0
- package/dist/src/select/parts/S0Uses.js +2 -0
- package/dist/src/select/parts/S0Uses.js.map +1 -0
- package/dist/src/select/parts/S0With.d.ts +6 -0
- package/dist/src/select/parts/S0With.d.ts.map +1 -0
- package/dist/src/select/parts/S0With.js +2 -0
- package/dist/src/select/parts/S0With.js.map +1 -0
- package/dist/src/select/parts/S1Join.d.ts +12 -0
- package/dist/src/select/parts/S1Join.d.ts.map +1 -0
- package/dist/src/select/parts/S1Join.js +2 -0
- package/dist/src/select/parts/S1Join.js.map +1 -0
- package/dist/src/select/parts/S2Columns.d.ts +35 -0
- package/dist/src/select/parts/S2Columns.d.ts.map +1 -0
- package/dist/src/select/parts/S2Columns.js +3 -0
- package/dist/src/select/parts/S2Columns.js.map +1 -0
- package/dist/src/select/parts/S2Where.d.ts +13 -0
- package/dist/src/select/parts/S2Where.d.ts.map +1 -0
- package/dist/src/select/parts/S2Where.js +2 -0
- package/dist/src/select/parts/S2Where.js.map +1 -0
- package/dist/src/select/parts/S3GroupBy.d.ts +10 -0
- package/dist/src/select/parts/S3GroupBy.d.ts.map +1 -0
- package/dist/src/select/parts/S3GroupBy.js +2 -0
- package/dist/src/select/parts/S3GroupBy.js.map +1 -0
- package/dist/src/select/parts/S4Having.d.ts +10 -0
- package/dist/src/select/parts/S4Having.d.ts.map +1 -0
- package/dist/src/select/parts/S4Having.js +2 -0
- package/dist/src/select/parts/S4Having.js.map +1 -0
- package/dist/src/select/parts/S5OrderBy.d.ts +9 -0
- package/dist/src/select/parts/S5OrderBy.d.ts.map +1 -0
- package/dist/src/select/parts/S5OrderBy.js +2 -0
- package/dist/src/select/parts/S5OrderBy.js.map +1 -0
- package/dist/src/select/parts/S6Limit.d.ts +7 -0
- package/dist/src/select/parts/S6Limit.d.ts.map +1 -0
- package/dist/src/select/parts/S6Limit.js +2 -0
- package/dist/src/select/parts/S6Limit.js.map +1 -0
- package/dist/src/select/parts/S7Exec.d.ts +26 -0
- package/dist/src/select/parts/S7Exec.d.ts.map +1 -0
- package/dist/src/select/parts/S7Exec.js +2 -0
- package/dist/src/select/parts/S7Exec.js.map +1 -0
- package/dist/src/tsconfig.json +16 -0
- package/dist/src/update/UpdateBuilder.d.ts +28 -0
- package/dist/src/update/UpdateBuilder.d.ts.map +1 -0
- package/dist/src/update/UpdateBuilder.js +77 -0
- package/dist/src/update/UpdateBuilder.js.map +1 -0
- package/dist/src/update/UpdateInterfaces.d.ts +34 -0
- package/dist/src/update/UpdateInterfaces.d.ts.map +1 -0
- package/dist/src/update/UpdateInterfaces.js +2 -0
- package/dist/src/update/UpdateInterfaces.js.map +1 -0
- package/dist/tsconfig.publish.tsbuildinfo +1 -0
- package/package.json +54 -0
- package/src/MysqlTable.ts +102 -0
- package/src/MysqlTableStructureParser.ts +283 -0
- package/src/SQL.ts +244 -0
- package/src/SqlExpression.ts +172 -0
- package/src/SqlFunctions.ts +471 -0
- package/src/Symbols.ts +11 -0
- package/src/Types.ts +244 -0
- package/src/delete/DeleteBuilder.ts +65 -0
- package/src/delete/DeleteInterfaces.ts +70 -0
- package/src/escape.ts +52 -0
- package/src/index.ts +6 -0
- package/src/insert/InsertBuilder.ts +76 -0
- package/src/insert/InsertInterfaces.ts +16 -0
- package/src/select/SelectBuilder.ts +372 -0
- package/src/select/parts/GatewayWhere.ts +31 -0
- package/src/select/parts/S0Union.ts +43 -0
- package/src/select/parts/S0Uses.ts +21 -0
- package/src/select/parts/S0With.ts +21 -0
- package/src/select/parts/S1Join.ts +39 -0
- package/src/select/parts/S2Columns.ts +68 -0
- package/src/select/parts/S2Where.ts +51 -0
- package/src/select/parts/S3GroupBy.ts +23 -0
- package/src/select/parts/S4Having.ts +24 -0
- package/src/select/parts/S5OrderBy.ts +21 -0
- package/src/select/parts/S6Limit.ts +9 -0
- package/src/select/parts/S7Exec.ts +41 -0
- package/src/tsconfig.json +16 -0
- package/src/update/UpdateBuilder.ts +96 -0
- package/src/update/UpdateInterfaces.ts +87 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const SQL_EXPRESSION: unique symbol;
|
|
2
|
+
declare const SQL_ALIAS: unique symbol;
|
|
3
|
+
declare const SQL_ALIAS_FOR_WITH_QUERY: unique symbol;
|
|
4
|
+
declare const SQL_ENTITY: unique symbol;
|
|
5
|
+
declare const SQL_EDIT_ENTITY: unique symbol;
|
|
6
|
+
export { SQL_ENTITY };
|
|
7
|
+
export { SQL_EDIT_ENTITY };
|
|
8
|
+
export { SQL_ALIAS_FOR_WITH_QUERY };
|
|
9
|
+
export { SQL_ALIAS };
|
|
10
|
+
export { SQL_EXPRESSION };
|
|
11
|
+
//# sourceMappingURL=Symbols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../src/Symbols.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,eAA6B,CAAA;AACjD,QAAA,MAAM,SAAS,eAAkB,CAAA;AACjC,QAAA,MAAM,wBAAwB,eAAqB,CAAA;AACnD,QAAA,MAAM,UAAU,eAAmB,CAAA;AACnC,QAAA,MAAM,eAAe,eAAwB,CAAA;AAE7C,OAAO,EAAC,UAAU,EAAC,CAAC;AACpB,OAAO,EAAC,eAAe,EAAC,CAAC;AACzB,OAAO,EAAC,wBAAwB,EAAC,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,CAAC;AACnB,OAAO,EAAC,cAAc,EAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const SQL_EXPRESSION = Symbol("Table expression");
|
|
2
|
+
const SQL_ALIAS = Symbol("Alias");
|
|
3
|
+
const SQL_ALIAS_FOR_WITH_QUERY = Symbol("RefAlias");
|
|
4
|
+
const SQL_ENTITY = Symbol("Entity");
|
|
5
|
+
const SQL_EDIT_ENTITY = Symbol("Edit entity");
|
|
6
|
+
export { SQL_ENTITY };
|
|
7
|
+
export { SQL_EDIT_ENTITY };
|
|
8
|
+
export { SQL_ALIAS_FOR_WITH_QUERY };
|
|
9
|
+
export { SQL_ALIAS };
|
|
10
|
+
export { SQL_EXPRESSION };
|
|
11
|
+
//# sourceMappingURL=Symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../src/Symbols.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;AACjC,MAAM,wBAAwB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;AACnD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AACnC,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;AAE7C,OAAO,EAAC,UAAU,EAAC,CAAC;AACpB,OAAO,EAAC,eAAe,EAAC,CAAC;AACzB,OAAO,EAAC,wBAAwB,EAAC,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,CAAC;AACnB,OAAO,EAAC,cAAc,EAAC,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Expr } from "./SqlExpression";
|
|
2
|
+
import { SQL_ALIAS, SQL_ALIAS_FOR_WITH_QUERY, SQL_EDIT_ENTITY, SQL_ENTITY, SQL_EXPRESSION } from "./Symbols";
|
|
3
|
+
import { ColumnDataType } from "./MysqlTableStructureParser";
|
|
4
|
+
export type Key<Alias extends string> = Record<Alias, true>;
|
|
5
|
+
export type SqlQuery<Result> = {
|
|
6
|
+
[SQL_ENTITY]: Result;
|
|
7
|
+
toSqlString(): string;
|
|
8
|
+
};
|
|
9
|
+
export type SqlSelectQuery<Result> = SqlQuery<Result> & {
|
|
10
|
+
transformResult<T>(row: T[]): Promise<T[]>;
|
|
11
|
+
};
|
|
12
|
+
export type SelectExecutor<Result, Args extends any[] = never, Arg1 extends any = never> = (sql: string, ...args: Args) => Promise<Result[]>;
|
|
13
|
+
declare const TAB = " ";
|
|
14
|
+
declare const DISTINCT = "DISTINCT";
|
|
15
|
+
export { DISTINCT, TAB };
|
|
16
|
+
export type AliasedTable<Alias extends string, TableRef, Entity, EditEntity, AliasForWithQuery extends string | NotUsingWithPart> = {
|
|
17
|
+
[SQL_ALIAS]: Alias;
|
|
18
|
+
[SQL_EXPRESSION]: TableRef;
|
|
19
|
+
[SQL_ALIAS_FOR_WITH_QUERY]: AliasForWithQuery;
|
|
20
|
+
[SQL_ENTITY]: Entity;
|
|
21
|
+
[SQL_EDIT_ENTITY]: EditEntity;
|
|
22
|
+
} & {
|
|
23
|
+
[K in keyof Entity]: Expr<TableRef, K, Entity[K]>;
|
|
24
|
+
};
|
|
25
|
+
export type AnyAliasedTableDef = AliasedTable<string, string, {}, {}, string | NotUsingWithPart>;
|
|
26
|
+
export type DbTableDefinition<T> = {
|
|
27
|
+
[P in keyof T]: {
|
|
28
|
+
type: ColumnDataType;
|
|
29
|
+
len?: number;
|
|
30
|
+
default?: any;
|
|
31
|
+
isAutoIncrement?: true;
|
|
32
|
+
isPrimary?: true;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export type InsertRow<InsertRow, FullRow> = {
|
|
36
|
+
[P in keyof InsertRow]: P extends keyof FullRow ? FullRow[P] : never;
|
|
37
|
+
};
|
|
38
|
+
export type UpdateRow<InsertRow, FullRow> = {
|
|
39
|
+
[P in keyof InsertRow]?: P extends keyof FullRow ? FullRow[P] : never;
|
|
40
|
+
};
|
|
41
|
+
export type NotUsingWithPart = {
|
|
42
|
+
__not_referenced: true;
|
|
43
|
+
};
|
|
44
|
+
export type PrepareQueryArgument = {
|
|
45
|
+
__prepare_argument: true;
|
|
46
|
+
expression: string;
|
|
47
|
+
};
|
|
48
|
+
export declare function isPrepareArgument(arg: unknown): arg is PrepareQueryArgument;
|
|
49
|
+
export type SQL_BOOL = 0 | 1;
|
|
50
|
+
export type COMPARISON_SIGNS = "!=" | "<>" | "=" | ">=" | ">" | "<" | "<=" | "LIKE" | "NOT LIKE";
|
|
51
|
+
declare const ComparisonOperandsLookup: Set<COMPARISON_SIGNS>;
|
|
52
|
+
export { ComparisonOperandsLookup };
|
|
53
|
+
export type DATE_ADD_UNITS = "MICROSECOND" | 'SECOND' | 'MINUTE' | 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'QUARTER' | 'YEAR' | 'SECOND_MICROSECOND' | 'MINUTE_MICROSECOND' | 'MINUTE_SECOND' | 'HOUR_MICROSECOND' | 'HOUR_SECOND' | 'HOUR_MINUTE' | 'DAY_MICROSECOND' | 'DAY_SECOND' | 'DAY_MINUTE' | 'DAY_HOUR' | 'YEAR_MONTH';
|
|
54
|
+
declare const DateAddUnitsLookup: Set<DATE_ADD_UNITS>;
|
|
55
|
+
export { DateAddUnitsLookup };
|
|
56
|
+
/**
|
|
57
|
+
* Check if Alias ("c") already exists in UsedAliases=(R<"c"> & ...)
|
|
58
|
+
*/
|
|
59
|
+
export type isAliasAlreadyUsed<Aliases, Alias extends string, OUT> = Alias extends keyof Aliases ? `Alias '${Alias}' is already used!` : OUT;
|
|
60
|
+
type _extractMissingAlias<Tables, CheckTables> = {
|
|
61
|
+
[K in keyof CheckTables]: K extends keyof Tables ? never : K;
|
|
62
|
+
}[keyof CheckTables];
|
|
63
|
+
/**
|
|
64
|
+
* Check if UsedTablesToMatch=(R<Alias.Table> & ...) exists in UsedTables=(R<Alias.Table> & ...)
|
|
65
|
+
*/
|
|
66
|
+
export type isTableReferenced<Tables, CheckTables, OUT> = keyof CheckTables extends keyof Tables ? OUT : `Table '${_extractMissingAlias<Tables, CheckTables> extends `${infer TableRef}` ? `${TableRef}` : "???"}' is not used in this query!`;
|
|
67
|
+
/**
|
|
68
|
+
* Anyone finds a better way, please write it. Rules are as follows:
|
|
69
|
+
* 1) A is always first
|
|
70
|
+
* 2) B can only appear after A
|
|
71
|
+
*
|
|
72
|
+
To generate this stuff :)
|
|
73
|
+
function gen(len) {
|
|
74
|
+
if (len <= 0) return [];
|
|
75
|
+
const results = new Set(["A"]);
|
|
76
|
+
function generateCombinations(currentLen, currentStr) {
|
|
77
|
+
if (currentLen >= len) return;
|
|
78
|
+
const nextA = currentStr + ',A';
|
|
79
|
+
generateCombinations(currentLen + 1, nextA);
|
|
80
|
+
results.add(nextA);
|
|
81
|
+
if (currentStr[currentStr.length - 1] !== 'B') {
|
|
82
|
+
const nextB = currentStr + ',B';
|
|
83
|
+
generateCombinations(currentLen, nextB);
|
|
84
|
+
results.add(nextB);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
generateCombinations(1, 'A');
|
|
88
|
+
return "[" + Array.from(results.values()).sort().join("]\n | [") + "]";
|
|
89
|
+
}
|
|
90
|
+
console.log(gen(5)); // Example usage
|
|
91
|
+
*/
|
|
92
|
+
export type ORDER_BY = "asc" | "desc" | "ASC" | "DESC";
|
|
93
|
+
export type OrderByStructure<A, B = ORDER_BY> = [
|
|
94
|
+
A
|
|
95
|
+
] | [A, A] | [A, A, A] | [A, A, A, A] | [A, A, A, A, A] | [A, A, A, A, B] | [A, A, A, A, B, A] | [A, A, A, B] | [A, A, A, B, A] | [A, A, A, B, A, A] | [A, A, A, B, A, B] | [A, A, A, B, A, B, A] | [A, A, B] | [A, A, B, A] | [A, A, B, A, A] | [A, A, B, A, A, A] | [A, A, B, A, A, B] | [A, A, B, A, A, B, A] | [A, A, B, A, B] | [A, A, B, A, B, A] | [A, A, B, A, B, A, A] | [A, A, B, A, B, A, B] | [A, A, B, A, B, A, B, A] | [A, B] | [A, B, A] | [A, B, A, A] | [A, B, A, A, A] | [A, B, A, A, A, A] | [A, B, A, A, A, B] | [A, B, A, A, A, B, A] | [A, B, A, A, B] | [A, B, A, A, B, A] | [A, B, A, A, B, A, A] | [A, B, A, A, B, A, B] | [A, B, A, A, B, A, B, A] | [A, B, A, B] | [A, B, A, B, A] | [A, B, A, B, A, A] | [A, B, A, B, A, A, A] | [A, B, A, B, A, A, B] | [A, B, A, B, A, A, B, A] | [A, B, A, B, A, B] | [A, B, A, B, A, B, A] | [A, B, A, B, A, B, A, A] | [A, B, A, B, A, B, A, B] | [A, B, A, B, A, B, A, B, A];
|
|
96
|
+
export type isColumnOkToUse<Tables, ColumnExpressions> = ColumnExpressions extends [] ? ColumnExpressions : ColumnExpressions extends [infer A, ...(infer Rest)] ? [_checkThatTableOrColumnCanBeReferenced<Tables, A>, ...isColumnOkToUse<Tables, Rest>] : ColumnExpressions;
|
|
97
|
+
type _checkThatTableOrColumnCanBeReferenced<Tables, Expr> = Expr extends {
|
|
98
|
+
tableRef: string;
|
|
99
|
+
} ? Expr["tableRef"] extends keyof Tables ? Expr : `Table '${_getMissing<Tables, Expr["tableRef"]>}' is not used in this query!` : Expr;
|
|
100
|
+
type _getMissing<Tables, Check> = Check extends keyof Tables ? never : Check;
|
|
101
|
+
export type IsAMatchingB<Result, Entity, OUT> = _findDifferentPropertyNames<Result, Entity> extends never ? OUT : _findDifferentPropertyNames<Result, Entity>;
|
|
102
|
+
type _valuesToUnion<T> = T[keyof T];
|
|
103
|
+
type _findDifferentPropertyNames<Result, Entity> = _valuesToUnion<{
|
|
104
|
+
[K in Exclude<keyof Entity, keyof Result>]: `Property '${K extends string ? K : ""}' is missing!`;
|
|
105
|
+
}> | _valuesToUnion<{
|
|
106
|
+
[K in Exclude<keyof Result, keyof Entity>]: `Property '${K extends string ? K : ""}' should not be listed!`;
|
|
107
|
+
}> | _valuesToUnion<{
|
|
108
|
+
[K in keyof Result & keyof Entity]: Result[K] extends Entity[K] ? never : `Property '${K extends string ? K : ""}' type does not match!`;
|
|
109
|
+
}>;
|
|
110
|
+
//# sourceMappingURL=Types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/Types.ts"],"names":[],"mappings":"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AClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,CAAC,GACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAIjC,MAAM,MAAM,eAAe,CAAC,MAAM,EAAE,iBAAiB,IACjD,iBAAiB,SAAS,EAAE,GACtB,iBAAiB,GACjB,iBAAiB,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAChD,CAAC,sCAAsC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GACrF,iBAAiB,CAAC;AAEhC,KAAK,sCAAsC,CAAC,MAAM,EAAE,IAAI,IACpD,IAAI,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,MAAM,MAAM,GACjC,IAAI,GACF,UAAU,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,8BAA8B,GACjF,IAAI,CAAA;AAEd,KAAK,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,SAAS,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAI7E,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,KAAK,GAAG,GAAG,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9J,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,KAAK,2BAA2B,CAAC,MAAM,EAAE,MAAM,IAC3C,cAAc,CAAC;KAAG,CAAC,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,EAAE,eAAe;CAAE,CAAC,GACnH,cAAc,CAAC;KAAG,CAAC,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,EAAE,yBAAyB;CAAE,CAAC,GAC/H,cAAc,CAAC;KAAG,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,aAAa,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,EAAE,wBAAwB;CAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SQL_ALIAS, SQL_ALIAS_FOR_WITH_QUERY, SQL_EDIT_ENTITY, SQL_ENTITY, SQL_EXPRESSION } from "./Symbols.js";
|
|
2
|
+
const TAB = " ";
|
|
3
|
+
const DISTINCT = "DISTINCT";
|
|
4
|
+
export { DISTINCT, TAB };
|
|
5
|
+
export function isPrepareArgument(arg) {
|
|
6
|
+
return arg?.__prepare_argument === true;
|
|
7
|
+
}
|
|
8
|
+
const ComparisonOperandsLookup = new Set(["!=", "=", ">=", ">", "<", "<=", "LIKE", "NOT LIKE"]);
|
|
9
|
+
export { ComparisonOperandsLookup };
|
|
10
|
+
const DateAddUnitsLookup = new Set([
|
|
11
|
+
"MICROSECOND",
|
|
12
|
+
'SECOND',
|
|
13
|
+
'MINUTE',
|
|
14
|
+
'HOUR',
|
|
15
|
+
'DAY',
|
|
16
|
+
'WEEK',
|
|
17
|
+
'MONTH',
|
|
18
|
+
'QUARTER',
|
|
19
|
+
'YEAR',
|
|
20
|
+
'SECOND_MICROSECOND',
|
|
21
|
+
'MINUTE_MICROSECOND',
|
|
22
|
+
'MINUTE_SECOND',
|
|
23
|
+
'HOUR_MICROSECOND',
|
|
24
|
+
'HOUR_SECOND',
|
|
25
|
+
'HOUR_MINUTE',
|
|
26
|
+
'DAY_MICROSECOND',
|
|
27
|
+
'DAY_SECOND',
|
|
28
|
+
'DAY_MINUTE',
|
|
29
|
+
'DAY_HOUR',
|
|
30
|
+
'YEAR_MONTH'
|
|
31
|
+
]);
|
|
32
|
+
export { DateAddUnitsLookup };
|
|
33
|
+
// ----------------------------------------------
|
|
34
|
+
//# sourceMappingURL=Types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/Types.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAE,wBAAwB,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AAoB3G,MAAM,GAAG,GAAG,IAAI,CAAC;AACjB,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAE,GAAG,EAAC,CAAA;AAkCtB,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC1C,OAAQ,GAAW,EAAE,kBAAkB,KAAK,IAAI,CAAC;AACrD,CAAC;AAQD,MAAM,wBAAwB,GAA0B,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC,CAAA;AAE/H,OAAO,EAAC,wBAAwB,EAAC,CAAA;AAuBjC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IACpD,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,SAAS;IACT,MAAM;IACN,oBAAoB;IACpB,oBAAoB;IACpB,eAAe;IACf,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,YAAY;CACN,CAAC,CAAC;AAEZ,OAAO,EAAC,kBAAkB,EAAC,CAAA;AAgI3B,iDAAiD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OrderByStructure } from "../Types";
|
|
2
|
+
import { AnyExpr, SqlExpression } from "../SqlExpression";
|
|
3
|
+
import { DeleteLimitMethods, DeleteOrderByMethods, DeleteWhereMethods, ExecDeleteMethods, GatewayDeleteOrderByMethods, GatewayDeleteWhereMethods } from "./DeleteInterfaces";
|
|
4
|
+
import { SQL_ENTITY } from "../Symbols";
|
|
5
|
+
export declare class DeleteBuilder<Tables, Entity> implements DeleteWhereMethods<Tables>, DeleteOrderByMethods<Tables>, DeleteLimitMethods, ExecDeleteMethods, GatewayDeleteWhereMethods<Entity>, GatewayDeleteOrderByMethods<Entity> {
|
|
6
|
+
readonly [SQL_ENTITY]: undefined;
|
|
7
|
+
private _from;
|
|
8
|
+
private readonly _where;
|
|
9
|
+
private readonly _orderBy;
|
|
10
|
+
private _limit;
|
|
11
|
+
from(table: string, alias: string): this;
|
|
12
|
+
where(...cols: any | SqlExpression<any, any, any>): this;
|
|
13
|
+
orderBy(...items: any | OrderByStructure<AnyExpr>): this;
|
|
14
|
+
noLimit(): this;
|
|
15
|
+
limit1(): this;
|
|
16
|
+
limit(limit: number | [number, number]): this;
|
|
17
|
+
toSqlString(lvl?: number): string;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=DeleteBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteBuilder.d.ts","sourceRoot":"","sources":["../../../src/delete/DeleteBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAM,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAC,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,yBAAyB,EAAC,MAAM,oBAAoB,CAAC;AAC3K,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAEtC,qBAAa,aAAa,CAAC,MAAM,EAAE,MAAM,CAAE,YAAW,kBAAkB,CAAC,MAAM,CAAC,EAC5E,oBAAoB,CAAC,MAAM,CAAC,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,CAAC,MAAM,CAAC,EACjC,2BAA2B,CAAC,MAAM,CAAC;IAEnC,SAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAExC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,MAAM,CAAS;IAEhB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKxC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI;IASxD,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI;IAKxD,OAAO,IAAI,IAAI;IAIf,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAS7C,WAAW,CAAC,GAAG,GAAE,MAAU,GAAG,MAAM;CAO9C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { TAB } from "../Types.js";
|
|
2
|
+
import { escapeId } from "../escape.js";
|
|
3
|
+
import { orderByStructureToSqlString } from "../SqlFunctions.js";
|
|
4
|
+
import { SQL_ENTITY } from "../Symbols.js";
|
|
5
|
+
export class DeleteBuilder {
|
|
6
|
+
[SQL_ENTITY]; // never used
|
|
7
|
+
_from;
|
|
8
|
+
_where = [];
|
|
9
|
+
_orderBy = [];
|
|
10
|
+
_limit;
|
|
11
|
+
from(table, alias) {
|
|
12
|
+
this._from = table + (alias ? " as " + escapeId(alias) : "");
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
where(...cols) {
|
|
16
|
+
for (let i = 0; i < cols.length; i++) {
|
|
17
|
+
if (cols[i]) {
|
|
18
|
+
this._where.push(cols[i].expression);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
orderBy(...items) {
|
|
24
|
+
this._orderBy.push(...orderByStructureToSqlString(items));
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
noLimit() {
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
limit1() {
|
|
31
|
+
return this.limit(1);
|
|
32
|
+
}
|
|
33
|
+
limit(limit) {
|
|
34
|
+
if (Array.isArray(limit)) {
|
|
35
|
+
this._limit = Number(limit[0]) + "," + Number(limit[1]);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this._limit = String(Number(limit));
|
|
39
|
+
}
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
toSqlString(lvl = 0) {
|
|
43
|
+
const tabs = TAB.repeat(lvl);
|
|
44
|
+
return "DELETE FROM " + this._from + "\n" +
|
|
45
|
+
(this._where.length === 0 ? tabs + "WHERE " + this._where.join(" AND ") + "\n" : "WHERE 1=2") +
|
|
46
|
+
(this._orderBy.length > 0 ? tabs + "ORDER BY " + this._orderBy.join(", ") + "\n" : "") +
|
|
47
|
+
(this._limit ? tabs + "LIMIT " + this._limit + "\n" : "");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=DeleteBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteBuilder.js","sourceRoot":"","sources":["../../../src/delete/DeleteBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,GAAG,EAAC,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAC,2BAA2B,EAAC,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,aAAa;IAON,CAAC,UAAU,CAAC,CAAY,CAAC,aAAa;IAE9C,KAAK,CAAS;IACL,MAAM,GAAa,EAAE,CAAC;IACtB,QAAQ,GAAa,EAAE,CAAC;IACjC,MAAM,CAAS;IAEhB,IAAI,CAAC,KAAa,EAAE,KAAa;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,GAAG,IAAwC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;YACxC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,OAAO,CAAC,GAAG,KAAsC;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,KAAgC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW,CAAC,MAAc,CAAC;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;YACrC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7F,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACjE,CAAC;CACJ"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { isColumnOkToUse, isTableReferenced, Key, OrderByStructure, SQL_BOOL, SqlQuery } from "../Types";
|
|
2
|
+
import { Expr } from "../SqlExpression";
|
|
3
|
+
export interface GatewayDeleteWhereMethods<Entity> {
|
|
4
|
+
where(c1: Partial<Entity>): GatewayDeleteOrderByMethods<Entity>;
|
|
5
|
+
}
|
|
6
|
+
export interface GatewayDeleteOrderByMethods<Entity> extends DeleteLimitMethods {
|
|
7
|
+
orderBy(fields: keyof Entity): DeleteLimitMethods;
|
|
8
|
+
}
|
|
9
|
+
export interface DeleteWhereMethods<Tables> {
|
|
10
|
+
where<T1 extends string, T2 extends string = never, T3 extends string = never, T4 extends string = never, T5 extends string = never, T6 extends string = never, T7 extends string = never, T8 extends string = never, T9 extends string = never, T10 extends string = never, T = Tables>(c1: C<T, T1>, c2?: C<T, T2>, c3?: C<T, T3>, c4?: C<T, T4>, c5?: C<T, T5>, c6?: C<T, T6>, c7?: C<T, T7>, c8?: C<T, T8>, c9?: C<T, T9>, c10?: C<T, T10>): DeleteOrderByMethods<Tables> & DeleteLimitMethods;
|
|
11
|
+
}
|
|
12
|
+
type C<Tables, T extends string> = isTableReferenced<Tables, Key<T>, Expr<T, unknown, SQL_BOOL>>;
|
|
13
|
+
export interface DeleteOrderByMethods<Tables> extends DeleteLimitMethods {
|
|
14
|
+
orderBy<TableRef, Columns extends OrderByStructure<Expr<TableRef, string | unknown, any>>>(...items: isColumnOkToUse<Tables, Columns>): DeleteLimitMethods;
|
|
15
|
+
}
|
|
16
|
+
export interface DeleteLimitMethods {
|
|
17
|
+
noLimit(): ExecDeleteMethods;
|
|
18
|
+
limit(limit: number | [number, number]): ExecDeleteMethods;
|
|
19
|
+
limit1(): ExecDeleteMethods;
|
|
20
|
+
}
|
|
21
|
+
export interface ExecDeleteMethods extends SqlQuery<{
|
|
22
|
+
affectedRows: number;
|
|
23
|
+
}> {
|
|
24
|
+
toString(lvl?: number): string;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=DeleteInterfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteInterfaces.d.ts","sourceRoot":"","sources":["../../../src/delete/DeleteInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AACvG,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAEtC,MAAM,WAAW,yBAAyB,CAAC,MAAM;IAE7C,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,2BAA2B,CAAC,MAAM,CAAE,SAAQ,kBAAkB;IAE3E,OAAO,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,kBAAkB,CAAA;CAEpD;AAED,MAAM,WAAW,kBAAkB,CAAC,MAAM;IAEtC,KAAK,CACD,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,CAAC,GAAG,MAAM,EAEV,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACZ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAChB,oBAAoB,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAA;CAEvD;AAED,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEhG,MAAM,WAAW,oBAAoB,CAAC,MAAM,CAAE,SAAQ,kBAAkB;IACpE,OAAO,CACH,QAAQ,EACR,OAAO,SAAS,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,EAEvE,GAAG,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,kBAAkB,CAAA;CACxB;AAGD,MAAM,WAAW,kBAAkB;IAC/B,OAAO,IAAI,iBAAiB,CAAA;IAE5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAA;IAE1D,MAAM,IAAI,iBAAiB,CAAA;CAC9B;AAGD,MAAM,WAAW,iBAAkB,SAAQ,QAAQ,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;IAEzE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAEjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteInterfaces.js","sourceRoot":"","sources":["../../../src/delete/DeleteInterfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,SAAS,CAAC;AAG7C,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,oBAAoB,GAAG,MAAM,CAElG;AAqCD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS9C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import sql from "sqlstring";
|
|
2
|
+
export function escape(value) {
|
|
3
|
+
return sql.escape(value);
|
|
4
|
+
}
|
|
5
|
+
const mysqlReservedKeywords = new Set([
|
|
6
|
+
"ADD", "ALL", "ALTER", "ANALYZE", "AND", "AS", "ASC", "AUTO_INCREMENT",
|
|
7
|
+
"BETWEEN", "BIGINT", "BINARY", "BLOB", "BOTH", "BY", "CALL", "CASCADE",
|
|
8
|
+
"CASE", "CHANGE", "CHAR", "CHARACTER", "CHECK", "COLLATE", "COLUMN",
|
|
9
|
+
"CONDITION", "CONSTRAINT", "CONTINUE", "CONVERT", "CREATE", "CROSS",
|
|
10
|
+
"CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR",
|
|
11
|
+
"DATABASE", "DATABASES", "DAY_HOUR", "DAY_MICROSECOND", "DAY_MINUTE",
|
|
12
|
+
"DAY_SECOND", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DELAYED", "DELETE",
|
|
13
|
+
"DESC", "DESCRIBE", "DETERMINISTIC", "DISTINCT", "DISTINCTROW", "DIV",
|
|
14
|
+
"DOUBLE", "DROP", "DUAL", "EACH", "ELSE", "ELSEIF", "ENCLOSED", "ESCAPED",
|
|
15
|
+
"EXISTS", "EXIT", "EXPLAIN", "FALSE", "FETCH", "FLOAT", "FLOAT4", "FLOAT8",
|
|
16
|
+
"FOR", "FORCE", "FOREIGN", "FROM", "FULLTEXT", "GRANT", "GROUP", "HAVING",
|
|
17
|
+
"HIGH_PRIORITY", "HOUR_MICROSECOND", "HOUR_MINUTE", "HOUR_SECOND", "IF",
|
|
18
|
+
"IGNORE", "IN", "INDEX", "INFILE", "INNER", "INOUT", "INSENSITIVE", "INSERT",
|
|
19
|
+
"INT", "INT1", "INT2", "INT3", "INT4", "INT8", "INTEGER", "INTERVAL", "INTO",
|
|
20
|
+
"IS", "ITERATE", "JOIN", "KEY", "KEYS", "KILL", "LEADING", "LEAVE", "LEFT",
|
|
21
|
+
"LIKE", "LIMIT", "LINES", "LOAD", "LOCALTIME", "LOCALTIMESTAMP", "LOCK", "LONG",
|
|
22
|
+
"LONGBLOB", "LONGTEXT", "LOOP", "LOW_PRIORITY", "MATCH", "MEDIUMBLOB",
|
|
23
|
+
"MEDIUMINT", "MEDIUMTEXT", "MIDDLEINT", "MINUTE_MICROSECOND", "MINUTE_SECOND",
|
|
24
|
+
"MOD", "MODIFIES", "NATURAL", "NOT", "NO_WRITE_TO_BINLOG", "NULL", "NUMERIC",
|
|
25
|
+
"ON", "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", "OUT", "OUTER",
|
|
26
|
+
"OUTFILE", "PRECISION", "PRIMARY", "PROCEDURE", "PURGE", "RANGE", "READ",
|
|
27
|
+
"READS", "REAL", "REFERENCES", "REGEXP", "RELEASE", "RENAME", "REPEAT",
|
|
28
|
+
"REPLACE", "REQUIRE", "RESTRICT", "RETURN", "REVOKE", "RIGHT", "RLIKE",
|
|
29
|
+
"SCHEMA", "SCHEMAS", "SECOND_MICROSECOND", "SELECT", "SENSITIVE", "SEPARATOR",
|
|
30
|
+
"SET", "SHOW", "SMALLINT", "SPATIAL", "SPECIFIC", "SQL", "SQLEXCEPTION",
|
|
31
|
+
"SQLSTATE", "SQLWARNING", "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT",
|
|
32
|
+
"SSL", "STARTING", "STRAIGHT_JOIN", "TABLE", "TERMINATED", "THEN", "TINYBLOB",
|
|
33
|
+
"TINYINT", "TINYTEXT", "TO", "TRAILING", "TRIGGER", "TRUE", "UNDO", "UNION",
|
|
34
|
+
"UNIQUE", "UNLOCK", "UNSIGNED", "UPDATE", "USAGE", "USE", "USING", "UTC_DATE",
|
|
35
|
+
"UTC_TIME", "UTC_TIMESTAMP", "VALUES", "VARBINARY", "VARCHAR", "VARCHARACTER",
|
|
36
|
+
"VARYING", "WHEN", "WHERE", "WHILE", "WITH", "WRITE", "XOR", "YEAR_MONTH",
|
|
37
|
+
"ZEROFILL", "ROWS"
|
|
38
|
+
]);
|
|
39
|
+
export function escapeId(value) {
|
|
40
|
+
// We could skip/remove this check, but it makes prettier SQL queries as 99% of strings here do not need escaping.
|
|
41
|
+
if (typeof value === "string"
|
|
42
|
+
&& /^[a-zA-Z][a-zA-Z0-9_]*$/.test(value)
|
|
43
|
+
&& !mysqlReservedKeywords.has(value.toUpperCase())) {
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return sql.escapeId(value);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=escape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ExecInsertMethods, InsertSetMethods } from "./InsertInterfaces";
|
|
2
|
+
import { SQL_ENTITY } from "../Symbols";
|
|
3
|
+
export declare class InsertBuilder<Entity> implements ExecInsertMethods, InsertSetMethods<Entity> {
|
|
4
|
+
readonly [SQL_ENTITY]: undefined;
|
|
5
|
+
private _ignore;
|
|
6
|
+
private _tableName;
|
|
7
|
+
private _set;
|
|
8
|
+
private _valueNames;
|
|
9
|
+
private _valuesObjects;
|
|
10
|
+
private _select;
|
|
11
|
+
to(tableName: string): this;
|
|
12
|
+
ignore(): this;
|
|
13
|
+
select(query: any): this;
|
|
14
|
+
set(obj: any): this;
|
|
15
|
+
values(objects: any[]): this;
|
|
16
|
+
private toValuesString;
|
|
17
|
+
toSqlString(): string;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=InsertBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InsertBuilder.d.ts","sourceRoot":"","sources":["../../../src/insert/InsertBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAC,UAAU,EAAiB,MAAM,YAAY,CAAC;AAEtD,qBAAa,aAAa,CAAC,MAAM,CAAE,YAAW,iBAAiB,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAErF,SAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAExC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,IAAI,CAAe;IAE3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,OAAO,CAAS;IAGjB,EAAE,CAAC,SAAS,EAAE,MAAM;IAKpB,MAAM;IAKN,MAAM,CAAC,KAAK,EAAE,GAAG;IAKjB,GAAG,CAAC,GAAG,EAAE,GAAG;IAOZ,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE;IAW5B,OAAO,CAAC,cAAc;IAiBf,WAAW;CAMrB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { escape, escapeId } from "../escape.js";
|
|
2
|
+
import { SQL_ENTITY, SQL_EXPRESSION } from "../Symbols.js";
|
|
3
|
+
export class InsertBuilder {
|
|
4
|
+
[SQL_ENTITY]; // never used
|
|
5
|
+
_ignore = false;
|
|
6
|
+
_tableName;
|
|
7
|
+
_set = [];
|
|
8
|
+
_valueNames;
|
|
9
|
+
_valuesObjects;
|
|
10
|
+
_select;
|
|
11
|
+
to(tableName) {
|
|
12
|
+
this._tableName = tableName;
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
ignore() {
|
|
16
|
+
this._ignore = true;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
select(query) {
|
|
20
|
+
this._select = query[SQL_EXPRESSION];
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
set(obj) {
|
|
24
|
+
for (const prop in obj) {
|
|
25
|
+
this._set.push(escapeId(prop) + " = " + escape(obj[prop]));
|
|
26
|
+
}
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
values(objects) {
|
|
30
|
+
this._valueNames = new Set();
|
|
31
|
+
for (let i = 0; i < objects.length; i++) {
|
|
32
|
+
for (const prop in objects[i]) {
|
|
33
|
+
this._valueNames.add(prop);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
this._valuesObjects = objects;
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
toValuesString() {
|
|
40
|
+
const valueNames = Array.from(this._valueNames.values());
|
|
41
|
+
const fields = "(" + valueNames.map(e => escapeId(e)).join(", ") + ") VALUES \n";
|
|
42
|
+
const cols = [];
|
|
43
|
+
for (let i = 0; i < this._valuesObjects.length; i++) {
|
|
44
|
+
const obj = this._valuesObjects[i];
|
|
45
|
+
const col = [];
|
|
46
|
+
for (let v = 0; v < valueNames.length; v++) {
|
|
47
|
+
const value = obj[valueNames[v]];
|
|
48
|
+
col.push(value === undefined ? "NULL" : escape(value));
|
|
49
|
+
}
|
|
50
|
+
cols.push("(" + col.join(", ") + ")");
|
|
51
|
+
col.length = 0;
|
|
52
|
+
}
|
|
53
|
+
return fields + cols.join(",\n");
|
|
54
|
+
}
|
|
55
|
+
toSqlString() {
|
|
56
|
+
return "INSERT " + (this._ignore ? "IGNORE " : "") + "INTO " + this._tableName + " " +
|
|
57
|
+
(this._set.length > 0 ? "SET \n " + this._set.join(",\n") + "\n" : "") +
|
|
58
|
+
(this._valueNames?.size > 0 ? "" + this.toValuesString() : "") +
|
|
59
|
+
(this._select ? this._select : "");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=InsertBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InsertBuilder.js","sourceRoot":"","sources":["../../../src/insert/InsertBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AliasedTable, IsAMatchingB, NotUsingWithPart, SqlQuery } from "../Types";
|
|
2
|
+
export interface ExecInsertMethods extends SqlQuery<{
|
|
3
|
+
insertId: number;
|
|
4
|
+
}> {
|
|
5
|
+
}
|
|
6
|
+
export interface InsertSetMethods<Entity> {
|
|
7
|
+
set(value: Entity): ExecInsertMethods;
|
|
8
|
+
values(value: Entity[]): ExecInsertMethods;
|
|
9
|
+
select<Result>(value: IsAMatchingB<Result, Entity, AliasedTable<string, string, Result, object, NotUsingWithPart>>): ExecInsertMethods;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=InsertInterfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InsertInterfaces.d.ts","sourceRoot":"","sources":["../../../src/insert/InsertInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,iBAAkB,SAAQ,QAAQ,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;CAExE;AAED,MAAM,WAAW,gBAAgB,CAAC,MAAM;IAEpC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAA;IAErC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAA;IAE1C,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,GAAG,iBAAiB,CAAA;CACzI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InsertInterfaces.js","sourceRoot":"","sources":["../../../src/insert/InsertInterfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Over, SqlExpression, Transformer } from "../SqlExpression";
|
|
2
|
+
import { WhereMethods } from "./parts/S2Where";
|
|
3
|
+
import { ColumnsMethods } from "./parts/S2Columns";
|
|
4
|
+
import { JoinMethods } from "./parts/S1Join";
|
|
5
|
+
import { WithMethods } from "./parts/S0With";
|
|
6
|
+
import { UsesMethods } from "./parts/S0Uses";
|
|
7
|
+
import { UnionMethods } from "./parts/S0Union";
|
|
8
|
+
import { GroupByMethods } from "./parts/S3GroupBy";
|
|
9
|
+
import { HavingMethods } from "./parts/S4Having";
|
|
10
|
+
import { OrderByMethods } from "./parts/S5OrderBy";
|
|
11
|
+
import { LimitMethods } from "./parts/S6Limit";
|
|
12
|
+
import { ExecMethods } from "./parts/S7Exec";
|
|
13
|
+
import { SQL_ENTITY } from "../Symbols";
|
|
14
|
+
import { AliasedTable, AnyAliasedTableDef, SelectExecutor } from "../Types";
|
|
15
|
+
import { GatewaySelectGroupByMethods, GatewaySelectLimitMethods, GatewaySelectOrderByMethods, GatewayWhereMethods } from "./parts/GatewayWhere";
|
|
16
|
+
export declare class SelectBuilder<Result, Aliases, AliasesFromWith, Tables> implements UnionMethods<Result>, WithMethods<AliasesFromWith>, UsesMethods<Aliases, Tables>, JoinMethods<Aliases, AliasesFromWith, Tables>, ColumnsMethods<Result, Tables>, WhereMethods<Result, Tables>, GroupByMethods<Result, Tables>, HavingMethods<Result, Tables>, OrderByMethods<Result, Tables>, LimitMethods<Result>, ExecMethods<Result>, GatewayWhereMethods<Result, Tables>, GatewaySelectGroupByMethods<Result, Tables>, GatewaySelectOrderByMethods<Result, Tables>, GatewaySelectOrderByMethods<Result, Tables>, GatewaySelectLimitMethods<Result> {
|
|
17
|
+
readonly [SQL_ENTITY]: undefined;
|
|
18
|
+
private _withQueries;
|
|
19
|
+
private _from;
|
|
20
|
+
private readonly _columns;
|
|
21
|
+
private _columnStruct;
|
|
22
|
+
private readonly _joins;
|
|
23
|
+
private readonly _windows;
|
|
24
|
+
private readonly _where;
|
|
25
|
+
private readonly _having;
|
|
26
|
+
private readonly _groupBy;
|
|
27
|
+
private _orderBy;
|
|
28
|
+
private _limit;
|
|
29
|
+
private readonly unions;
|
|
30
|
+
private _unionColumnOrder;
|
|
31
|
+
private _distinct;
|
|
32
|
+
private _forUpdate;
|
|
33
|
+
readonly transformers: {
|
|
34
|
+
property: string;
|
|
35
|
+
transformer: Transformer<any, any>;
|
|
36
|
+
}[];
|
|
37
|
+
union(table: any | SelectBuilder<any, any, any, any>): SelectBuilder<any, any, any, any>;
|
|
38
|
+
unionAll(table: any | SelectBuilder<any, any, any, any>): SelectBuilder<any, any, any, any>;
|
|
39
|
+
private _union;
|
|
40
|
+
with(...tables: (any | AnyAliasedTableDef)[]): this;
|
|
41
|
+
uses(table: any | AnyAliasedTableDef): this;
|
|
42
|
+
selectFrom(table: any | AnyAliasedTableDef): this;
|
|
43
|
+
join(table: any | AnyAliasedTableDef, condition: any): this;
|
|
44
|
+
leftJoin(table: any | AnyAliasedTableDef, condition: any): this;
|
|
45
|
+
private _join;
|
|
46
|
+
window(name: string, func: (builder: Over<any>) => Over<any>): this;
|
|
47
|
+
distinct(): this;
|
|
48
|
+
columns(...cols: (any | string | SqlExpression<string, string, any>)[]): this;
|
|
49
|
+
one(): this;
|
|
50
|
+
allColumnsFrom(table: any | AnyAliasedTableDef): this;
|
|
51
|
+
noWhere(): any;
|
|
52
|
+
where(...cols: (any | undefined | null | "" | object | SqlExpression<string, string, any>)[]): any;
|
|
53
|
+
groupBy(...items: (any | SqlExpression<string, string, any>)[]): any;
|
|
54
|
+
groupByF(func: (res: any | AliasedTable<string, string, Result, unknown, any>) => (any | SqlExpression<string, string, any>)[]): any;
|
|
55
|
+
having(...items: (any | SqlExpression<string, string, any>)[]): any;
|
|
56
|
+
havingF(func: (res: any | AliasedTable<string, string, Result, unknown, any>) => (any | SqlExpression<string, string, any>)[]): this;
|
|
57
|
+
orderBy(...items: (any | SqlExpression<string, string, any>)[]): any;
|
|
58
|
+
orderByF(func: (res: any | AliasedTable<string, string, Result, unknown, any>) => (any | SqlExpression<string, string, any>)[]): this;
|
|
59
|
+
noLimit(): any;
|
|
60
|
+
limit(limit: number | [number, number]): any;
|
|
61
|
+
limit1(): any;
|
|
62
|
+
forUpdate(): any;
|
|
63
|
+
asScalar(alias: any): any;
|
|
64
|
+
as(alias: any): any;
|
|
65
|
+
transformResult<T>(rows: T[]): Promise<T[]>;
|
|
66
|
+
toString(lvl?: number): string;
|
|
67
|
+
toSqlString(): string;
|
|
68
|
+
private _toString;
|
|
69
|
+
exec<Args extends any[]>(executor: SelectExecutor<Result, Args>, ...args: Args): Promise<Result[]>;
|
|
70
|
+
execOne<Args extends any[]>(executor: SelectExecutor<Result, Args>, ...args: Args): Promise<Result>;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=SelectBuilder.d.ts.map
|