rawsql-ts 0.23.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.min.js +10 -10
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/models/Clause.d.ts +30 -2
- package/dist/esm/models/Clause.js +25 -2
- package/dist/esm/models/Clause.js.map +1 -1
- package/dist/esm/models/InsertQuery.d.ts +3 -1
- package/dist/esm/models/InsertQuery.js +3 -2
- package/dist/esm/models/InsertQuery.js.map +1 -1
- package/dist/esm/models/SqlPrintToken.d.ts +1 -0
- package/dist/esm/models/SqlPrintToken.js +1 -0
- package/dist/esm/models/SqlPrintToken.js.map +1 -1
- package/dist/esm/models/ValueComponent.d.ts +13 -2
- package/dist/esm/models/ValueComponent.js +12 -1
- package/dist/esm/models/ValueComponent.js.map +1 -1
- package/dist/esm/parsers/FunctionExpressionParser.d.ts +8 -0
- package/dist/esm/parsers/FunctionExpressionParser.js +66 -5
- package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/parsers/GroupByParser.d.ts +1 -0
- package/dist/esm/parsers/GroupByParser.js +30 -7
- package/dist/esm/parsers/GroupByParser.js.map +1 -1
- package/dist/esm/parsers/InsertQueryParser.d.ts +2 -0
- package/dist/esm/parsers/InsertQueryParser.js +120 -3
- package/dist/esm/parsers/InsertQueryParser.js.map +1 -1
- package/dist/esm/parsers/ReturningClauseParser.d.ts +1 -0
- package/dist/esm/parsers/ReturningClauseParser.js +46 -2
- package/dist/esm/parsers/ReturningClauseParser.js.map +1 -1
- package/dist/esm/parsers/SqlPrintTokenParser.d.ts +3 -0
- package/dist/esm/parsers/SqlPrintTokenParser.js +89 -2
- package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/parsers/ValueParser.d.ts +1 -0
- package/dist/esm/parsers/ValueParser.js +39 -1
- package/dist/esm/parsers/ValueParser.js.map +1 -1
- package/dist/esm/tokenReaders/CommandTokenReader.js +5 -0
- package/dist/esm/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/transformers/CTECollector.d.ts +1 -0
- package/dist/esm/transformers/CTECollector.js +5 -1
- package/dist/esm/transformers/CTECollector.js.map +1 -1
- package/dist/esm/transformers/CTEDisabler.d.ts +2 -1
- package/dist/esm/transformers/CTEDisabler.js +7 -2
- package/dist/esm/transformers/CTEDisabler.js.map +1 -1
- package/dist/esm/transformers/CTETableReferenceCollector.d.ts +1 -0
- package/dist/esm/transformers/CTETableReferenceCollector.js +5 -1
- package/dist/esm/transformers/CTETableReferenceCollector.js.map +1 -1
- package/dist/esm/transformers/ColumnReferenceCollector.d.ts +1 -0
- package/dist/esm/transformers/ColumnReferenceCollector.js +8 -1
- package/dist/esm/transformers/ColumnReferenceCollector.js.map +1 -1
- package/dist/esm/transformers/DynamicQueryBuilder.js +1 -1
- package/dist/esm/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/esm/transformers/PruneOptionalConditionBranches.js +40 -8
- package/dist/esm/transformers/PruneOptionalConditionBranches.js.map +1 -1
- package/dist/esm/transformers/SSSQLFilterBuilder.d.ts +2 -0
- package/dist/esm/transformers/SSSQLFilterBuilder.js +85 -10
- package/dist/esm/transformers/SSSQLFilterBuilder.js.map +1 -1
- package/dist/esm/transformers/SelectableColumnCollector.d.ts +1 -0
- package/dist/esm/transformers/SelectableColumnCollector.js +5 -1
- package/dist/esm/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/esm/transformers/TableSourceCollector.d.ts +1 -0
- package/dist/esm/transformers/TableSourceCollector.js +5 -1
- package/dist/esm/transformers/TableSourceCollector.js.map +1 -1
- package/dist/esm/utils/OperatorPrecedence.js +1 -0
- package/dist/esm/utils/OperatorPrecedence.js.map +1 -1
- package/dist/esm/utils/ParameterRemover.d.ts +1 -0
- package/dist/esm/utils/ParameterRemover.js +14 -2
- package/dist/esm/utils/ParameterRemover.js.map +1 -1
- package/dist/esm/utils/ValueComponentRewriter.js +5 -1
- package/dist/esm/utils/ValueComponentRewriter.js.map +1 -1
- package/dist/index.min.js +10 -10
- package/dist/index.min.js.map +4 -4
- package/dist/models/Clause.js +28 -3
- package/dist/models/Clause.js.map +1 -1
- package/dist/models/InsertQuery.js +3 -2
- package/dist/models/InsertQuery.js.map +1 -1
- package/dist/models/SqlPrintToken.js +1 -0
- package/dist/models/SqlPrintToken.js.map +1 -1
- package/dist/models/ValueComponent.js +14 -2
- package/dist/models/ValueComponent.js.map +1 -1
- package/dist/parsers/FunctionExpressionParser.js +66 -5
- package/dist/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/parsers/GroupByParser.js +30 -7
- package/dist/parsers/GroupByParser.js.map +1 -1
- package/dist/parsers/InsertQueryParser.js +119 -2
- package/dist/parsers/InsertQueryParser.js.map +1 -1
- package/dist/parsers/ReturningClauseParser.js +45 -1
- package/dist/parsers/ReturningClauseParser.js.map +1 -1
- package/dist/parsers/SqlPrintTokenParser.js +87 -0
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/parsers/ValueParser.js +38 -0
- package/dist/parsers/ValueParser.js.map +1 -1
- package/dist/src/models/Clause.d.ts +30 -2
- package/dist/src/models/InsertQuery.d.ts +3 -1
- package/dist/src/models/SqlPrintToken.d.ts +1 -0
- package/dist/src/models/ValueComponent.d.ts +13 -2
- package/dist/src/parsers/FunctionExpressionParser.d.ts +8 -0
- package/dist/src/parsers/GroupByParser.d.ts +1 -0
- package/dist/src/parsers/InsertQueryParser.d.ts +2 -0
- package/dist/src/parsers/ReturningClauseParser.d.ts +1 -0
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +3 -0
- package/dist/src/parsers/ValueParser.d.ts +1 -0
- package/dist/src/transformers/CTECollector.d.ts +1 -0
- package/dist/src/transformers/CTEDisabler.d.ts +2 -1
- package/dist/src/transformers/CTETableReferenceCollector.d.ts +1 -0
- package/dist/src/transformers/ColumnReferenceCollector.d.ts +1 -0
- package/dist/src/transformers/SSSQLFilterBuilder.d.ts +2 -0
- package/dist/src/transformers/SelectableColumnCollector.d.ts +1 -0
- package/dist/src/transformers/TableSourceCollector.d.ts +1 -0
- package/dist/src/utils/ParameterRemover.d.ts +1 -0
- package/dist/tokenReaders/CommandTokenReader.js +5 -0
- package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/transformers/CTECollector.js +4 -0
- package/dist/transformers/CTECollector.js.map +1 -1
- package/dist/transformers/CTEDisabler.js +6 -1
- package/dist/transformers/CTEDisabler.js.map +1 -1
- package/dist/transformers/CTETableReferenceCollector.js +4 -0
- package/dist/transformers/CTETableReferenceCollector.js.map +1 -1
- package/dist/transformers/ColumnReferenceCollector.js +7 -0
- package/dist/transformers/ColumnReferenceCollector.js.map +1 -1
- package/dist/transformers/DynamicQueryBuilder.js +1 -1
- package/dist/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/transformers/PruneOptionalConditionBranches.js +39 -7
- package/dist/transformers/PruneOptionalConditionBranches.js.map +1 -1
- package/dist/transformers/SSSQLFilterBuilder.js +84 -9
- package/dist/transformers/SSSQLFilterBuilder.js.map +1 -1
- package/dist/transformers/SelectableColumnCollector.js +4 -0
- package/dist/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/transformers/TableSourceCollector.js +4 -0
- package/dist/transformers/TableSourceCollector.js.map +1 -1
- package/dist/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/utils/OperatorPrecedence.js +1 -0
- package/dist/utils/OperatorPrecedence.js.map +1 -1
- package/dist/utils/ParameterRemover.js +13 -1
- package/dist/utils/ParameterRemover.js.map +1 -1
- package/dist/utils/ValueComponentRewriter.js +4 -0
- package/dist/utils/ValueComponentRewriter.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { PartitionByClause, OrderByClause, OrderByItem, SelectClause, SelectItem, Distinct, DistinctOn, SortDirection, NullsSortDirection, TableSource, SourceExpression, FromClause, JoinClause, JoinOnClause, JoinUsingClause, FunctionSource, SourceAliasExpression, WhereClause, GroupByClause, HavingClause, SubQuerySource, WindowFrameClause, LimitClause, ForClause, OffsetClause, WindowsClause as WindowClause, CommonTable, WithClause, FetchClause, FetchExpression, InsertClause, UpdateClause, DeleteClause, UsingClause, SetClause, ReturningClause, SetClauseItem } from "../models/Clause";
|
|
1
|
+
import { PartitionByClause, OrderByClause, OrderByItem, SelectClause, SelectItem, Distinct, DistinctOn, SortDirection, NullsSortDirection, TableSource, SourceExpression, FromClause, JoinClause, JoinOnClause, JoinUsingClause, FunctionSource, SourceAliasExpression, WhereClause, GroupByClause, HavingClause, SubQuerySource, WindowFrameClause, LimitClause, ForClause, OffsetClause, WindowsClause as WindowClause, CommonTable, WithClause, FetchClause, FetchExpression, InsertClause, OnConflictClause, UpdateClause, DeleteClause, UsingClause, SetClause, ReturningClause, SetClauseItem } from "../models/Clause";
|
|
2
2
|
import { HintClause } from "../models/HintClause";
|
|
3
3
|
import { BinarySelectQuery, SimpleSelectQuery, ValuesQuery } from "../models/SelectQuery";
|
|
4
4
|
import { SqlPrintToken, SqlPrintTokenType, SqlPrintTokenContainerType } from "../models/SqlPrintToken";
|
|
5
5
|
import { SelectQueryWithClauseHelper } from "../utils/SelectQueryWithClauseHelper";
|
|
6
|
-
import { ValueList, ColumnReference, FunctionCall, UnaryExpression, BinaryExpression, LiteralValue, ParameterExpression, SwitchCaseArgument, CaseKeyValuePair, RawString, IdentifierString, ParenExpression, CastExpression, CaseExpression, ArrayExpression, ArrayQueryExpression, ArraySliceExpression, ArrayIndexExpression, BetweenExpression, StringSpecifierExpression, TypeValue, TupleExpression, WindowFrameExpression, QualifiedName, InlineQuery, WindowFrameSpec, WindowFrameBoundStatic, WindowFrameBoundaryValue } from "../models/ValueComponent";
|
|
6
|
+
import { ValueList, ColumnReference, FunctionCall, UnaryExpression, BinaryExpression, LiteralValue, ParameterExpression, SwitchCaseArgument, CaseKeyValuePair, RawString, IdentifierString, ParenExpression, CastExpression, CaseExpression, ArrayExpression, ArrayQueryExpression, ArraySliceExpression, ArrayIndexExpression, BetweenExpression, JsonPredicateExpression, StringSpecifierExpression, TypeValue, TupleExpression, WindowFrameExpression, QualifiedName, InlineQuery, WindowFrameSpec, WindowFrameBoundStatic, WindowFrameBoundaryValue } from "../models/ValueComponent";
|
|
7
7
|
import { ParameterCollector } from "../transformers/ParameterCollector";
|
|
8
8
|
import { IdentifierDecorator } from "./IdentifierDecorator";
|
|
9
9
|
import { ParameterDecorator } from "./ParameterDecorator";
|
|
@@ -195,6 +195,7 @@ export class SqlPrintTokenParser {
|
|
|
195
195
|
this.handlers.set(ArraySliceExpression.kind, (expr) => this.visitArraySliceExpression(expr));
|
|
196
196
|
this.handlers.set(ArrayIndexExpression.kind, (expr) => this.visitArrayIndexExpression(expr));
|
|
197
197
|
this.handlers.set(BetweenExpression.kind, (expr) => this.visitBetweenExpression(expr));
|
|
198
|
+
this.handlers.set(JsonPredicateExpression.kind, (expr) => this.visitJsonPredicateExpression(expr));
|
|
198
199
|
this.handlers.set(StringSpecifierExpression.kind, (expr) => this.visitStringSpecifierExpression(expr));
|
|
199
200
|
this.handlers.set(TypeValue.kind, (expr) => this.visitTypeValue(expr));
|
|
200
201
|
this.handlers.set(TupleExpression.kind, (expr) => this.visitTupleExpression(expr));
|
|
@@ -244,6 +245,7 @@ export class SqlPrintTokenParser {
|
|
|
244
245
|
this.handlers.set(TupleExpression.kind, (expr) => this.visitTupleExpression(expr));
|
|
245
246
|
this.handlers.set(InsertQuery.kind, (expr) => this.visitInsertQuery(expr));
|
|
246
247
|
this.handlers.set(InsertClause.kind, (expr) => this.visitInsertClause(expr));
|
|
248
|
+
this.handlers.set(OnConflictClause.kind, (expr) => this.visitOnConflictClause(expr));
|
|
247
249
|
this.handlers.set(UpdateQuery.kind, (expr) => this.visitUpdateQuery(expr));
|
|
248
250
|
this.handlers.set(UpdateClause.kind, (expr) => this.visitUpdateClause(expr));
|
|
249
251
|
this.handlers.set(DeleteQuery.kind, (expr) => this.visitDeleteQuery(expr));
|
|
@@ -928,6 +930,10 @@ export class SqlPrintTokenParser {
|
|
|
928
930
|
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
929
931
|
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'with ordinality'));
|
|
930
932
|
}
|
|
933
|
+
if (arg.nullsTreatment) {
|
|
934
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
935
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, arg.nullsTreatment));
|
|
936
|
+
}
|
|
931
937
|
if (arg.over) {
|
|
932
938
|
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
933
939
|
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'over'));
|
|
@@ -2029,6 +2035,13 @@ export class SqlPrintTokenParser {
|
|
|
2029
2035
|
}
|
|
2030
2036
|
visitGroupByClause(arg) {
|
|
2031
2037
|
const token = new SqlPrintToken(SqlPrintTokenType.keyword, 'group by', SqlPrintTokenContainerType.GroupByClause);
|
|
2038
|
+
if (arg.mode) {
|
|
2039
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2040
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, arg.mode));
|
|
2041
|
+
}
|
|
2042
|
+
if (arg.grouping.length === 0) {
|
|
2043
|
+
return token;
|
|
2044
|
+
}
|
|
2032
2045
|
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2033
2046
|
for (let i = 0; i < arg.grouping.length; i++) {
|
|
2034
2047
|
if (i > 0) {
|
|
@@ -2298,6 +2311,10 @@ export class SqlPrintTokenParser {
|
|
|
2298
2311
|
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2299
2312
|
token.innerTokens.push(this.visit(arg.selectQuery));
|
|
2300
2313
|
}
|
|
2314
|
+
if (arg.onConflictClause) {
|
|
2315
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2316
|
+
token.innerTokens.push(arg.onConflictClause.accept(this));
|
|
2317
|
+
}
|
|
2301
2318
|
if (arg.returningClause) {
|
|
2302
2319
|
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2303
2320
|
token.innerTokens.push(arg.returningClause.accept(this));
|
|
@@ -2307,6 +2324,59 @@ export class SqlPrintTokenParser {
|
|
|
2307
2324
|
}
|
|
2308
2325
|
return token;
|
|
2309
2326
|
}
|
|
2327
|
+
visitJsonPredicateExpression(arg) {
|
|
2328
|
+
const token = new SqlPrintToken(SqlPrintTokenType.container, '', SqlPrintTokenContainerType.BinaryExpression);
|
|
2329
|
+
token.innerTokens.push(this.visit(arg.expression));
|
|
2330
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2331
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.operator, arg.negated ? 'is not' : 'is'));
|
|
2332
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2333
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'json'));
|
|
2334
|
+
if (arg.jsonType) {
|
|
2335
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2336
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, arg.jsonType));
|
|
2337
|
+
}
|
|
2338
|
+
if (arg.uniqueKeys) {
|
|
2339
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2340
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, `${arg.uniqueKeys} unique keys`));
|
|
2341
|
+
}
|
|
2342
|
+
return token;
|
|
2343
|
+
}
|
|
2344
|
+
visitOnConflictClause(arg) {
|
|
2345
|
+
const token = new SqlPrintToken(SqlPrintTokenType.keyword, 'on conflict', SqlPrintTokenContainerType.OnConflictClause);
|
|
2346
|
+
if (arg.target) {
|
|
2347
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2348
|
+
if (arg.targetKind === "constraint") {
|
|
2349
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'on constraint'));
|
|
2350
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2351
|
+
}
|
|
2352
|
+
token.innerTokens.push(arg.target.accept(this));
|
|
2353
|
+
}
|
|
2354
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2355
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, this.formatOnConflictAction(arg)));
|
|
2356
|
+
if (arg.setClause) {
|
|
2357
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2358
|
+
token.innerTokens.push(arg.setClause.accept(this));
|
|
2359
|
+
}
|
|
2360
|
+
if (arg.forClause) {
|
|
2361
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2362
|
+
token.innerTokens.push(arg.forClause.accept(this));
|
|
2363
|
+
}
|
|
2364
|
+
if (arg.whereClause) {
|
|
2365
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2366
|
+
token.innerTokens.push(arg.whereClause.accept(this));
|
|
2367
|
+
}
|
|
2368
|
+
return token;
|
|
2369
|
+
}
|
|
2370
|
+
formatOnConflictAction(arg) {
|
|
2371
|
+
switch (arg.action) {
|
|
2372
|
+
case "nothing":
|
|
2373
|
+
return "do nothing";
|
|
2374
|
+
case "select":
|
|
2375
|
+
return "do select";
|
|
2376
|
+
case "update":
|
|
2377
|
+
return "do update";
|
|
2378
|
+
}
|
|
2379
|
+
}
|
|
2310
2380
|
visitInsertClause(arg) {
|
|
2311
2381
|
const token = new SqlPrintToken(SqlPrintTokenType.container, '', SqlPrintTokenContainerType.InsertClause);
|
|
2312
2382
|
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'insert into'));
|
|
@@ -2549,6 +2619,23 @@ export class SqlPrintTokenParser {
|
|
|
2549
2619
|
visitReturningClause(arg) {
|
|
2550
2620
|
const token = new SqlPrintToken(SqlPrintTokenType.keyword, 'returning', SqlPrintTokenContainerType.ReturningClause);
|
|
2551
2621
|
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2622
|
+
if (arg.aliases.length > 0) {
|
|
2623
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'with'));
|
|
2624
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2625
|
+
token.innerTokens.push(SqlPrintTokenParser.PAREN_OPEN_TOKEN);
|
|
2626
|
+
for (let i = 0; i < arg.aliases.length; i++) {
|
|
2627
|
+
if (i > 0) {
|
|
2628
|
+
token.innerTokens.push(...SqlPrintTokenParser.commaSpaceTokens());
|
|
2629
|
+
}
|
|
2630
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, arg.aliases[i].kind));
|
|
2631
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2632
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'as'));
|
|
2633
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2634
|
+
token.innerTokens.push(this.visit(arg.aliases[i].alias));
|
|
2635
|
+
}
|
|
2636
|
+
token.innerTokens.push(SqlPrintTokenParser.PAREN_CLOSE_TOKEN);
|
|
2637
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
2638
|
+
}
|
|
2552
2639
|
for (let i = 0; i < arg.items.length; i++) {
|
|
2553
2640
|
if (i > 0) {
|
|
2554
2641
|
token.innerTokens.push(...SqlPrintTokenParser.commaSpaceTokens());
|