rawsql-ts 0.5.0-beta → 0.7.0-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -121
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/models/Clause.js +185 -19
- package/dist/esm/models/Clause.js.map +1 -1
- package/dist/esm/models/CreateTableQuery.js +12 -22
- package/dist/esm/models/CreateTableQuery.js.map +1 -1
- package/dist/esm/models/InsertQuery.js +2 -9
- package/dist/esm/models/InsertQuery.js.map +1 -1
- package/dist/esm/models/KeywordTrie.js +2 -0
- package/dist/esm/models/KeywordTrie.js.map +1 -1
- package/dist/esm/models/SimpleSelectQuery.js +17 -15
- package/dist/esm/models/SimpleSelectQuery.js.map +1 -1
- package/dist/esm/models/SqlPrintToken.js +94 -0
- package/dist/esm/models/SqlPrintToken.js.map +1 -0
- package/dist/esm/models/UpdateQuery.js +25 -0
- package/dist/esm/models/UpdateQuery.js.map +1 -0
- package/dist/esm/models/ValueComponent.js +105 -19
- package/dist/esm/models/ValueComponent.js.map +1 -1
- package/dist/esm/parsers/FetchClauseParser.js +84 -0
- package/dist/esm/parsers/FetchClauseParser.js.map +1 -0
- package/dist/esm/parsers/FullNameParser.js +94 -0
- package/dist/esm/parsers/FullNameParser.js.map +1 -0
- package/dist/esm/parsers/FunctionExpressionParser.js +33 -32
- package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/parsers/IdentifierDecorator.js +13 -0
- package/dist/esm/parsers/IdentifierDecorator.js.map +1 -0
- package/dist/esm/parsers/IdentifierParser.js +5 -30
- package/dist/esm/parsers/IdentifierParser.js.map +1 -1
- package/dist/esm/parsers/InsertQueryParser.js +7 -28
- package/dist/esm/parsers/InsertQueryParser.js.map +1 -1
- package/dist/esm/parsers/JoinClauseParser.js +13 -35
- package/dist/esm/parsers/JoinClauseParser.js.map +1 -1
- package/dist/esm/parsers/JoinOnClauseParser.js +17 -0
- package/dist/esm/parsers/JoinOnClauseParser.js.map +1 -0
- package/dist/esm/parsers/JoinUsingClauseParser.js +19 -0
- package/dist/esm/parsers/JoinUsingClauseParser.js.map +1 -0
- package/dist/esm/parsers/LimitClauseParser.js +1 -13
- package/dist/esm/parsers/LimitClauseParser.js.map +1 -1
- package/dist/esm/parsers/OffsetClauseParser.js +38 -0
- package/dist/esm/parsers/OffsetClauseParser.js.map +1 -0
- package/dist/esm/parsers/ParameterDecorator.js +36 -0
- package/dist/esm/parsers/ParameterDecorator.js.map +1 -0
- package/dist/esm/parsers/ReturningClauseParser.js +31 -0
- package/dist/esm/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/esm/parsers/SelectClauseParser.js +25 -2
- package/dist/esm/parsers/SelectClauseParser.js.map +1 -1
- package/dist/esm/parsers/SelectQueryParser.js +40 -13
- package/dist/esm/parsers/SelectQueryParser.js.map +1 -1
- package/dist/esm/parsers/SetClauseParser.js +39 -0
- package/dist/esm/parsers/SetClauseParser.js.map +1 -0
- package/dist/esm/parsers/SourceExpressionParser.js +19 -0
- package/dist/esm/parsers/SourceExpressionParser.js.map +1 -1
- package/dist/esm/parsers/SourceParser.js +31 -19
- package/dist/esm/parsers/SourceParser.js.map +1 -1
- package/dist/esm/parsers/SqlPrintTokenParser.js +1058 -0
- package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -0
- package/dist/esm/parsers/UpdateClauseParser.js +17 -0
- package/dist/esm/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/esm/parsers/UpdateQueryParser.js +84 -0
- package/dist/esm/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/esm/parsers/ValueParser.js +13 -11
- package/dist/esm/parsers/ValueParser.js.map +1 -1
- package/dist/esm/parsers/WindowClauseParser.js +27 -15
- package/dist/esm/parsers/WindowClauseParser.js.map +1 -1
- package/dist/esm/tokenReaders/BaseTokenReader.js +3 -3
- package/dist/esm/tokenReaders/BaseTokenReader.js.map +1 -1
- package/dist/esm/tokenReaders/CommandTokenReader.js +8 -2
- package/dist/esm/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/transformers/CTECollector.js +9 -10
- package/dist/esm/transformers/CTECollector.js.map +1 -1
- package/dist/esm/transformers/CTEDisabler.js +12 -11
- package/dist/esm/transformers/CTEDisabler.js.map +1 -1
- package/dist/esm/transformers/CTEInjector.js +2 -2
- package/dist/esm/transformers/Formatter.js +19 -569
- package/dist/esm/transformers/Formatter.js.map +1 -1
- package/dist/esm/transformers/LinePrinter.js +81 -0
- package/dist/esm/transformers/LinePrinter.js.map +1 -0
- package/dist/esm/transformers/QueryBuilder.js +62 -24
- package/dist/esm/transformers/QueryBuilder.js.map +1 -1
- package/dist/esm/transformers/SelectValueCollector.js +4 -4
- package/dist/esm/transformers/SelectableColumnCollector.js +26 -9
- package/dist/esm/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/esm/transformers/SqlFormatter.js +31 -0
- package/dist/esm/transformers/SqlFormatter.js.map +1 -0
- package/dist/esm/transformers/SqlOutputToken.js +9 -0
- package/dist/esm/transformers/SqlOutputToken.js.map +1 -0
- package/dist/esm/transformers/SqlPrinter.js +144 -0
- package/dist/esm/transformers/SqlPrinter.js.map +1 -0
- package/dist/esm/transformers/TableSourceCollector.js +32 -16
- package/dist/esm/transformers/TableSourceCollector.js.map +1 -1
- package/dist/esm/transformers/UpstreamSelectQueryFinder.js +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/models/Clause.d.ts +119 -14
- package/dist/esm/types/models/InsertQuery.d.ts +4 -9
- package/dist/esm/types/models/SimpleSelectQuery.d.ts +20 -5
- package/dist/esm/types/models/SqlPrintToken.d.ts +102 -0
- package/dist/esm/types/models/UpdateQuery.d.ts +31 -0
- package/dist/esm/types/models/ValueComponent.d.ts +45 -8
- package/dist/esm/types/parsers/FetchClauseParser.d.ts +24 -0
- package/dist/esm/types/parsers/FullNameParser.d.ts +27 -0
- package/dist/esm/types/parsers/IdentifierDecorator.d.ts +9 -0
- package/dist/esm/types/parsers/InsertQueryParser.d.ts +0 -1
- package/dist/esm/types/parsers/JoinClauseParser.d.ts +0 -2
- package/dist/esm/types/parsers/JoinOnClauseParser.d.ts +8 -0
- package/dist/esm/types/parsers/JoinUsingClauseParser.d.ts +8 -0
- package/dist/esm/types/parsers/OffsetClauseParser.d.ts +9 -0
- package/dist/esm/types/parsers/ParameterDecorator.d.ts +20 -0
- package/dist/esm/types/parsers/ReturningClauseParser.d.ts +12 -0
- package/dist/esm/types/parsers/SelectClauseParser.d.ts +19 -2
- package/dist/esm/types/parsers/SetClauseParser.d.ts +11 -0
- package/dist/esm/types/parsers/SourceExpressionParser.d.ts +8 -0
- package/dist/esm/types/parsers/SourceParser.d.ts +14 -0
- package/dist/esm/types/parsers/SqlPrintTokenParser.d.ts +144 -0
- package/dist/esm/types/parsers/UpdateClauseParser.d.ts +15 -0
- package/dist/esm/types/parsers/UpdateQueryParser.d.ts +16 -0
- package/dist/esm/types/parsers/WindowClauseParser.d.ts +3 -3
- package/dist/esm/types/transformers/Formatter.d.ts +8 -99
- package/dist/esm/types/transformers/LinePrinter.d.ts +41 -0
- package/dist/esm/types/transformers/QueryBuilder.d.ts +9 -0
- package/dist/esm/types/transformers/SelectableColumnCollector.d.ts +2 -0
- package/dist/esm/types/transformers/SqlFormatter.d.ts +40 -0
- package/dist/esm/types/transformers/SqlOutputToken.d.ts +6 -0
- package/dist/esm/types/transformers/SqlPrinter.d.ts +54 -0
- package/dist/esm/types/transformers/TableSourceCollector.d.ts +2 -0
- package/dist/esm/utils/stringUtils.js +17 -0
- package/dist/esm/utils/stringUtils.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/models/Clause.d.ts +119 -14
- package/dist/models/Clause.js +194 -20
- package/dist/models/Clause.js.map +1 -1
- package/dist/models/CreateTableQuery.js +12 -22
- package/dist/models/CreateTableQuery.js.map +1 -1
- package/dist/models/InsertQuery.d.ts +4 -9
- package/dist/models/InsertQuery.js +2 -9
- package/dist/models/InsertQuery.js.map +1 -1
- package/dist/models/KeywordTrie.js +2 -0
- package/dist/models/KeywordTrie.js.map +1 -1
- package/dist/models/SimpleSelectQuery.d.ts +20 -5
- package/dist/models/SimpleSelectQuery.js +17 -15
- package/dist/models/SimpleSelectQuery.js.map +1 -1
- package/dist/models/SqlPrintToken.d.ts +102 -0
- package/dist/models/SqlPrintToken.js +98 -0
- package/dist/models/SqlPrintToken.js.map +1 -0
- package/dist/models/UpdateQuery.d.ts +31 -0
- package/dist/models/UpdateQuery.js +29 -0
- package/dist/models/UpdateQuery.js.map +1 -0
- package/dist/models/ValueComponent.d.ts +45 -8
- package/dist/models/ValueComponent.js +107 -20
- package/dist/models/ValueComponent.js.map +1 -1
- package/dist/parsers/FetchClauseParser.d.ts +24 -0
- package/dist/parsers/FetchClauseParser.js +89 -0
- package/dist/parsers/FetchClauseParser.js.map +1 -0
- package/dist/parsers/FullNameParser.d.ts +27 -0
- package/dist/parsers/FullNameParser.js +98 -0
- package/dist/parsers/FullNameParser.js.map +1 -0
- package/dist/parsers/FunctionExpressionParser.js +32 -31
- package/dist/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/parsers/IdentifierDecorator.d.ts +9 -0
- package/dist/parsers/IdentifierDecorator.js +17 -0
- package/dist/parsers/IdentifierDecorator.js.map +1 -0
- package/dist/parsers/IdentifierParser.js +5 -30
- package/dist/parsers/IdentifierParser.js.map +1 -1
- package/dist/parsers/InsertQueryParser.d.ts +0 -1
- package/dist/parsers/InsertQueryParser.js +7 -28
- package/dist/parsers/InsertQueryParser.js.map +1 -1
- package/dist/parsers/JoinClauseParser.d.ts +0 -2
- package/dist/parsers/JoinClauseParser.js +12 -34
- package/dist/parsers/JoinClauseParser.js.map +1 -1
- package/dist/parsers/JoinOnClauseParser.d.ts +8 -0
- package/dist/parsers/JoinOnClauseParser.js +21 -0
- package/dist/parsers/JoinOnClauseParser.js.map +1 -0
- package/dist/parsers/JoinUsingClauseParser.d.ts +8 -0
- package/dist/parsers/JoinUsingClauseParser.js +23 -0
- package/dist/parsers/JoinUsingClauseParser.js.map +1 -0
- package/dist/parsers/LimitClauseParser.js +1 -13
- package/dist/parsers/LimitClauseParser.js.map +1 -1
- package/dist/parsers/OffsetClauseParser.d.ts +9 -0
- package/dist/parsers/OffsetClauseParser.js +42 -0
- package/dist/parsers/OffsetClauseParser.js.map +1 -0
- package/dist/parsers/ParameterDecorator.d.ts +20 -0
- package/dist/parsers/ParameterDecorator.js +40 -0
- package/dist/parsers/ParameterDecorator.js.map +1 -0
- package/dist/parsers/ReturningClauseParser.d.ts +12 -0
- package/dist/parsers/ReturningClauseParser.js +35 -0
- package/dist/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/parsers/SelectClauseParser.d.ts +19 -2
- package/dist/parsers/SelectClauseParser.js +28 -4
- package/dist/parsers/SelectClauseParser.js.map +1 -1
- package/dist/parsers/SelectQueryParser.js +40 -13
- package/dist/parsers/SelectQueryParser.js.map +1 -1
- package/dist/parsers/SetClauseParser.d.ts +11 -0
- package/dist/parsers/SetClauseParser.js +43 -0
- package/dist/parsers/SetClauseParser.js.map +1 -0
- package/dist/parsers/SourceExpressionParser.d.ts +8 -0
- package/dist/parsers/SourceExpressionParser.js +19 -0
- package/dist/parsers/SourceExpressionParser.js.map +1 -1
- package/dist/parsers/SourceParser.d.ts +14 -0
- package/dist/parsers/SourceParser.js +31 -19
- package/dist/parsers/SourceParser.js.map +1 -1
- package/dist/parsers/SqlPrintTokenParser.d.ts +144 -0
- package/dist/parsers/SqlPrintTokenParser.js +1062 -0
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -0
- package/dist/parsers/UpdateClauseParser.d.ts +15 -0
- package/dist/parsers/UpdateClauseParser.js +21 -0
- package/dist/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/parsers/UpdateQueryParser.d.ts +16 -0
- package/dist/parsers/UpdateQueryParser.js +88 -0
- package/dist/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/parsers/ValueParser.js +13 -11
- package/dist/parsers/ValueParser.js.map +1 -1
- package/dist/parsers/WindowClauseParser.d.ts +3 -3
- package/dist/parsers/WindowClauseParser.js +26 -14
- package/dist/parsers/WindowClauseParser.js.map +1 -1
- package/dist/tokenReaders/BaseTokenReader.js +3 -3
- package/dist/tokenReaders/BaseTokenReader.js.map +1 -1
- package/dist/tokenReaders/CommandTokenReader.js +8 -2
- package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/transformers/CTECollector.js +9 -10
- package/dist/transformers/CTECollector.js.map +1 -1
- package/dist/transformers/CTEDisabler.js +11 -10
- package/dist/transformers/CTEDisabler.js.map +1 -1
- package/dist/transformers/CTEInjector.js +2 -2
- package/dist/transformers/Formatter.d.ts +8 -99
- package/dist/transformers/Formatter.js +20 -570
- package/dist/transformers/Formatter.js.map +1 -1
- package/dist/transformers/LinePrinter.d.ts +41 -0
- package/dist/transformers/LinePrinter.js +86 -0
- package/dist/transformers/LinePrinter.js.map +1 -0
- package/dist/transformers/QueryBuilder.d.ts +9 -0
- package/dist/transformers/QueryBuilder.js +61 -23
- package/dist/transformers/QueryBuilder.js.map +1 -1
- package/dist/transformers/SelectValueCollector.js +4 -4
- package/dist/transformers/SelectableColumnCollector.d.ts +2 -0
- package/dist/transformers/SelectableColumnCollector.js +25 -8
- package/dist/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/transformers/SqlFormatter.d.ts +40 -0
- package/dist/transformers/SqlFormatter.js +35 -0
- package/dist/transformers/SqlFormatter.js.map +1 -0
- package/dist/transformers/SqlOutputToken.d.ts +6 -0
- package/dist/transformers/SqlOutputToken.js +13 -0
- package/dist/transformers/SqlOutputToken.js.map +1 -0
- package/dist/transformers/SqlPrinter.d.ts +54 -0
- package/dist/transformers/SqlPrinter.js +148 -0
- package/dist/transformers/SqlPrinter.js.map +1 -0
- package/dist/transformers/TableSourceCollector.d.ts +2 -0
- package/dist/transformers/TableSourceCollector.js +30 -14
- package/dist/transformers/TableSourceCollector.js.map +1 -1
- package/dist/transformers/UpstreamSelectQueryFinder.js +1 -1
- package/dist/utils/stringUtils.js +17 -0
- package/dist/utils/stringUtils.js.map +1 -1
- package/package.json +2 -1
- package/dist/esm/types/utils/extractNamespacesAndName.d.ts +0 -5
- package/dist/esm/types/utils/parseEscapedOrDotSeparatedIdentifiers.d.ts +0 -9
- package/dist/esm/utils/extractNamespacesAndName.js +0 -16
- package/dist/esm/utils/extractNamespacesAndName.js.map +0 -1
- package/dist/esm/utils/parseEscapedOrDotSeparatedIdentifiers.js +0 -39
- package/dist/esm/utils/parseEscapedOrDotSeparatedIdentifiers.js.map +0 -1
- package/dist/utils/extractNamespacesAndName.d.ts +0 -5
- package/dist/utils/extractNamespacesAndName.js +0 -18
- package/dist/utils/extractNamespacesAndName.js.map +0 -1
- package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.d.ts +0 -9
- package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.js +0 -42
- package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.js.map +0 -1
@@ -1,3 +1,4 @@
|
|
1
|
+
import { UpdateQuery } from '../models/UpdateQuery';
|
1
2
|
import { BinarySelectQuery, SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
|
2
3
|
import { CreateTableQuery } from "../models/CreateTableQuery";
|
3
4
|
import { InsertQuery } from "../models/InsertQuery";
|
@@ -51,4 +52,12 @@ export declare class QueryBuilder {
|
|
51
52
|
* @returns An InsertQuery instance
|
52
53
|
*/
|
53
54
|
static buildInsertQuery(selectQuery: SimpleSelectQuery, tableName: string): InsertQuery;
|
55
|
+
/**
|
56
|
+
* Builds an UPDATE query from a SELECT query, table name, and primary key(s).
|
57
|
+
* @param selectQuery The SELECT query providing new values (must select all columns to update and PKs)
|
58
|
+
* @param updateTableExprRaw The table name to update
|
59
|
+
* @param primaryKeys The primary key column name(s)
|
60
|
+
* @returns UpdateQuery instance
|
61
|
+
*/
|
62
|
+
static buildUpdateQuery(selectQuery: SimpleSelectQuery, selectSourceName: string, updateTableExprRaw: string, primaryKeys: string | string[]): UpdateQuery;
|
54
63
|
}
|
@@ -56,6 +56,8 @@ export declare class SelectableColumnCollector implements SqlComponentVisitor<vo
|
|
56
56
|
private visitWindowFrameClause;
|
57
57
|
private visitWindowFrameExpression;
|
58
58
|
private visitLimitClause;
|
59
|
+
private offsetClause;
|
60
|
+
private visitFetchClause;
|
59
61
|
private visitJoinOnClause;
|
60
62
|
private visitJoinUsingClause;
|
61
63
|
private visitColumnReference;
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { CommaBreakStyle, AndBreakStyle } from './SqlPrinter';
|
2
|
+
import { IndentCharOption, NewlineOption } from './LinePrinter';
|
3
|
+
import { SqlComponent } from '../models/SqlComponent';
|
4
|
+
export declare const VALID_PRESETS: readonly ["mysql", "postgres", "sqlserver", "sqlite"];
|
5
|
+
export type PresetName = (typeof VALID_PRESETS)[number];
|
6
|
+
/**
|
7
|
+
* SqlFormatter class combines parsing and printing of SQL queries into a single interface.
|
8
|
+
*/
|
9
|
+
export declare class SqlFormatter {
|
10
|
+
private parser;
|
11
|
+
private printer;
|
12
|
+
constructor(options?: {
|
13
|
+
preset?: PresetName;
|
14
|
+
identifierEscape?: {
|
15
|
+
start: string;
|
16
|
+
end: string;
|
17
|
+
};
|
18
|
+
parameterSymbol?: string | {
|
19
|
+
start: string;
|
20
|
+
end: string;
|
21
|
+
};
|
22
|
+
parameterStyle?: 'anonymous' | 'indexed' | 'named';
|
23
|
+
indentSize?: number;
|
24
|
+
indentChar?: IndentCharOption;
|
25
|
+
newline?: NewlineOption;
|
26
|
+
keywordCase?: 'none' | 'upper' | 'lower';
|
27
|
+
commaBreak?: CommaBreakStyle;
|
28
|
+
andBreak?: AndBreakStyle;
|
29
|
+
});
|
30
|
+
/**
|
31
|
+
* Formats a SQL query string with the given parameters.
|
32
|
+
* @param sqlText The SQL query string to format.
|
33
|
+
* @param parameters A dictionary of parameters to replace in the query.
|
34
|
+
* @returns An object containing the formatted SQL string and the parameters.
|
35
|
+
*/
|
36
|
+
format(sql: SqlComponent): {
|
37
|
+
formattedSql: string;
|
38
|
+
params: Record<string, any>;
|
39
|
+
};
|
40
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import { SqlPrintToken } from "../models/SqlPrintToken";
|
2
|
+
import { IndentCharOption, NewlineOption } from "./LinePrinter";
|
3
|
+
/**
|
4
|
+
* CommaBreakStyle determines how commas are placed in formatted SQL output.
|
5
|
+
* - 'none': No line break for commas
|
6
|
+
* - 'before': Line break before comma
|
7
|
+
* - 'after': Line break after comma
|
8
|
+
*/
|
9
|
+
export type CommaBreakStyle = 'none' | 'before' | 'after';
|
10
|
+
/**
|
11
|
+
* AndBreakStyle determines how AND operators are placed in formatted SQL output.
|
12
|
+
* - 'none': No line break for AND
|
13
|
+
* - 'before': Line break before AND
|
14
|
+
* - 'after': Line break after AND
|
15
|
+
*/
|
16
|
+
export type AndBreakStyle = 'none' | 'before' | 'after';
|
17
|
+
/**
|
18
|
+
* SqlPrinter formats a SqlPrintToken tree into a SQL string with flexible style options.
|
19
|
+
*/
|
20
|
+
export declare class SqlPrinter {
|
21
|
+
/** Indent character (e.g., ' ' or '\\t') */
|
22
|
+
indentChar: IndentCharOption;
|
23
|
+
/** Indent size (number of indentChar repetitions per level) */
|
24
|
+
indentSize: number;
|
25
|
+
/** Newline character (e.g., '\\n' or '\\r\\n') */
|
26
|
+
newline: NewlineOption;
|
27
|
+
/** Comma break style: 'none', 'before', or 'after' */
|
28
|
+
commaBreak: CommaBreakStyle;
|
29
|
+
/** AND break style: 'none', 'before', or 'after' */
|
30
|
+
andBreak: AndBreakStyle;
|
31
|
+
/** Keyword case style: 'none', 'upper' | 'lower' */
|
32
|
+
keywordCase: 'none' | 'upper' | 'lower';
|
33
|
+
private linePrinter;
|
34
|
+
private indentIncrementContainers;
|
35
|
+
/**
|
36
|
+
* @param options Optional style settings for pretty printing
|
37
|
+
*/
|
38
|
+
constructor(options?: {
|
39
|
+
indentChar?: IndentCharOption;
|
40
|
+
indentSize?: number;
|
41
|
+
newline?: NewlineOption;
|
42
|
+
commaBreak?: CommaBreakStyle;
|
43
|
+
andBreak?: AndBreakStyle;
|
44
|
+
keywordCase?: 'none' | 'upper' | 'lower';
|
45
|
+
indentIncrementContainerTypes?: string[];
|
46
|
+
});
|
47
|
+
/**
|
48
|
+
* Converts a SqlPrintToken tree to a formatted SQL string.
|
49
|
+
* @param token The root SqlPrintToken
|
50
|
+
* @param level Indentation level (default: 0)
|
51
|
+
*/
|
52
|
+
print(token: SqlPrintToken, level?: number): string;
|
53
|
+
private appendToken;
|
54
|
+
}
|
@@ -74,6 +74,8 @@ export declare class TableSourceCollector implements SqlComponentVisitor<void> {
|
|
74
74
|
private visitOrderByClause;
|
75
75
|
private visitWindowFrameClause;
|
76
76
|
private visitLimitClause;
|
77
|
+
private visitOffsetClause;
|
78
|
+
private visitFetchClause;
|
77
79
|
private visitForClause;
|
78
80
|
private visitOrderByItem;
|
79
81
|
private visitSelectClause;
|
@@ -24,6 +24,23 @@ export class StringUtils {
|
|
24
24
|
*/
|
25
25
|
static skipWhiteSpace(input, position) {
|
26
26
|
const length = input.length;
|
27
|
+
/*
|
28
|
+
* Optimization: Try to skip 4 spaces at once (for 4-space indents).
|
29
|
+
* This is effective when SQL is deeply nested and uses 4-space indentation.
|
30
|
+
* In typical cases, charCodeAt in a loop is fastest, but for large/indented SQL,
|
31
|
+
* this can reduce the number of iterations and improve stability (lower error/deviation in benchmarks).
|
32
|
+
* If indentation is not 4 spaces, this check is skipped quickly, so overhead is minimal.
|
33
|
+
*
|
34
|
+
* Even for 2-space indents or mixed indents (2, 4, tab),
|
35
|
+
* the remaining whitespace is handled by the following loop, so there is no performance loss.
|
36
|
+
*
|
37
|
+
* Benchmark results show that this optimization does not slow down short queries,
|
38
|
+
* and can make long/indented queries more stable and slightly faster.
|
39
|
+
*/
|
40
|
+
while (position + 4 <= length && input.slice(position, position + 4) === ' ') {
|
41
|
+
position += 4;
|
42
|
+
}
|
43
|
+
// Then skip remaining whitespace one by one (space, tab, newline, carriage return)
|
27
44
|
while (position < length) {
|
28
45
|
const charCode = input.charCodeAt(position);
|
29
46
|
// ' '=32, '\t'=9, '\n'=10, '\r'=13
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stringUtils.js","sourceRoot":"","sources":["../../../src/utils/stringUtils.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"stringUtils.js","sourceRoot":"","sources":["../../../src/utils/stringUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
@@ -7,6 +7,7 @@ export * from './models/ValuesQuery';
|
|
7
7
|
export * from './transformers/CTECollector';
|
8
8
|
export * from './transformers/CTENormalizer';
|
9
9
|
export * from './transformers/Formatter';
|
10
|
+
export * from './transformers/SqlFormatter';
|
10
11
|
export * from './transformers/QueryBuilder';
|
11
12
|
export * from './transformers/SelectValueCollector';
|
12
13
|
export * from './transformers/SelectableColumnCollector';
|
package/dist/index.js
CHANGED
@@ -24,6 +24,7 @@ __exportStar(require("./models/ValuesQuery"), exports);
|
|
24
24
|
__exportStar(require("./transformers/CTECollector"), exports);
|
25
25
|
__exportStar(require("./transformers/CTENormalizer"), exports);
|
26
26
|
__exportStar(require("./transformers/Formatter"), exports);
|
27
|
+
__exportStar(require("./transformers/SqlFormatter"), exports);
|
27
28
|
__exportStar(require("./transformers/QueryBuilder"), exports); // old name:QueryConverter
|
28
29
|
__exportStar(require("./transformers/SelectValueCollector"), exports);
|
29
30
|
__exportStar(require("./transformers/SelectableColumnCollector"), exports);
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,2EAAyD;AACzD,oEAAoE"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,8DAA4C;AAC5C,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,2EAAyD;AACzD,oEAAoE"}
|
package/dist/models/Clause.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { SelectQuery } from "./SelectQuery";
|
2
2
|
import { SqlComponent } from "./SqlComponent";
|
3
|
-
import { IdentifierString, RawString, ValueComponent, WindowFrameExpression } from "./ValueComponent";
|
3
|
+
import { IdentifierString, RawString, ValueComponent, WindowFrameExpression, QualifiedName } from "./ValueComponent";
|
4
4
|
export declare class SelectItem extends SqlComponent {
|
5
5
|
static kind: symbol;
|
6
6
|
value: ValueComponent;
|
@@ -39,6 +39,15 @@ export declare class WindowFrameClause extends SqlComponent {
|
|
39
39
|
expression: WindowFrameExpression;
|
40
40
|
constructor(name: string, expression: WindowFrameExpression);
|
41
41
|
}
|
42
|
+
/**
|
43
|
+
* Represents a collection of window definitions (WINDOW clause in SQL).
|
44
|
+
* @param windows Array of WindowFrameClause
|
45
|
+
*/
|
46
|
+
export declare class WindowsClause extends SqlComponent {
|
47
|
+
static kind: symbol;
|
48
|
+
windows: WindowFrameClause[];
|
49
|
+
constructor(windows: WindowFrameClause[]);
|
50
|
+
}
|
42
51
|
export declare enum SortDirection {
|
43
52
|
Ascending = "asc",
|
44
53
|
Descending = "desc"
|
@@ -73,17 +82,38 @@ export declare class HavingClause extends SqlComponent {
|
|
73
82
|
export type SourceComponent = TableSource | FunctionSource | SubQuerySource | ParenSource;
|
74
83
|
export declare class TableSource extends SqlComponent {
|
75
84
|
static kind: symbol;
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
85
|
+
qualifiedName: QualifiedName;
|
86
|
+
/**
|
87
|
+
* For backward compatibility: returns the namespaces as IdentifierString[] | null (readonly)
|
88
|
+
*/
|
89
|
+
get namespaces(): IdentifierString[] | null;
|
90
|
+
/**
|
91
|
+
* For backward compatibility: returns the table name as IdentifierString (readonly)
|
92
|
+
*/
|
93
|
+
get table(): IdentifierString;
|
94
|
+
/**
|
95
|
+
* For backward compatibility: returns the table name as IdentifierString (readonly)
|
96
|
+
*/
|
97
|
+
get identifier(): IdentifierString;
|
98
|
+
constructor(namespaces: string[] | IdentifierString[] | null, table: string | IdentifierString);
|
80
99
|
getSourceName(): string;
|
81
100
|
}
|
82
101
|
export declare class FunctionSource extends SqlComponent {
|
83
102
|
static kind: symbol;
|
84
|
-
|
103
|
+
qualifiedName: QualifiedName;
|
85
104
|
argument: ValueComponent | null;
|
86
|
-
constructor(
|
105
|
+
constructor(name: string | IdentifierString | {
|
106
|
+
namespaces: string[] | IdentifierString[] | null;
|
107
|
+
name: string | RawString | IdentifierString;
|
108
|
+
}, argument: ValueComponent | null);
|
109
|
+
/**
|
110
|
+
* For backward compatibility: returns the namespaces as IdentifierString[] | null (readonly)
|
111
|
+
*/
|
112
|
+
get namespaces(): IdentifierString[] | null;
|
113
|
+
/**
|
114
|
+
* For backward compatibility: returns the function name as RawString | IdentifierString (readonly)
|
115
|
+
*/
|
116
|
+
get name(): RawString | IdentifierString;
|
87
117
|
}
|
88
118
|
export declare class ParenSource extends SqlComponent {
|
89
119
|
static kind: symbol;
|
@@ -120,14 +150,14 @@ export declare class JoinClause extends SqlComponent {
|
|
120
150
|
condition: JoinConditionComponent | null;
|
121
151
|
lateral: boolean;
|
122
152
|
constructor(joinType: string, source: SourceExpression, condition: JoinConditionComponent | null, lateral: boolean);
|
123
|
-
|
153
|
+
getSourceAliasName(): string | null;
|
124
154
|
}
|
125
155
|
export declare class FromClause extends SqlComponent {
|
126
156
|
static kind: symbol;
|
127
157
|
source: SourceExpression;
|
128
158
|
joins: JoinClause[] | null;
|
129
159
|
constructor(source: SourceExpression, join: JoinClause[] | null);
|
130
|
-
|
160
|
+
getSourceAliasName(): string | null;
|
131
161
|
/**
|
132
162
|
* Returns all SourceExpression objects in this FROM clause, including main source and all JOIN sources.
|
133
163
|
*/
|
@@ -139,7 +169,7 @@ export declare class CommonTable extends SqlComponent {
|
|
139
169
|
materialized: boolean | null;
|
140
170
|
aliasExpression: SourceAliasExpression;
|
141
171
|
constructor(query: SelectQuery, aliasExpression: SourceAliasExpression | string, materialized: boolean | null);
|
142
|
-
|
172
|
+
getSourceAliasName(): string;
|
143
173
|
}
|
144
174
|
export declare class WithClause extends SqlComponent {
|
145
175
|
static kind: symbol;
|
@@ -149,9 +179,8 @@ export declare class WithClause extends SqlComponent {
|
|
149
179
|
}
|
150
180
|
export declare class LimitClause extends SqlComponent {
|
151
181
|
static kind: symbol;
|
152
|
-
|
153
|
-
|
154
|
-
constructor(limit: ValueComponent, offset: ValueComponent | null);
|
182
|
+
value: ValueComponent;
|
183
|
+
constructor(limit: ValueComponent);
|
155
184
|
}
|
156
185
|
export declare enum FetchType {
|
157
186
|
Next = "next",
|
@@ -162,7 +191,17 @@ export declare enum FetchUnit {
|
|
162
191
|
Percent = "percent",
|
163
192
|
PercentWithTies = "percent with ties"
|
164
193
|
}
|
165
|
-
export declare class
|
194
|
+
export declare class OffsetClause extends SqlComponent {
|
195
|
+
static kind: symbol;
|
196
|
+
value: ValueComponent;
|
197
|
+
constructor(value: ValueComponent);
|
198
|
+
}
|
199
|
+
export declare class FetchClause extends SqlComponent {
|
200
|
+
static kind: symbol;
|
201
|
+
expression: FetchExpression;
|
202
|
+
constructor(expression: FetchExpression);
|
203
|
+
}
|
204
|
+
export declare class FetchExpression extends SqlComponent {
|
166
205
|
static kind: symbol;
|
167
206
|
type: FetchType;
|
168
207
|
count: ValueComponent;
|
@@ -186,3 +225,69 @@ export declare class SourceAliasExpression extends SqlComponent {
|
|
186
225
|
columns: IdentifierString[] | null;
|
187
226
|
constructor(alias: string, columnAlias: string[] | null);
|
188
227
|
}
|
228
|
+
export declare class ReturningClause extends SqlComponent {
|
229
|
+
static kind: symbol;
|
230
|
+
columns: IdentifierString[];
|
231
|
+
/**
|
232
|
+
* Constructs a ReturningClause.
|
233
|
+
* @param columns Array of IdentifierString or string representing column names.
|
234
|
+
*/
|
235
|
+
constructor(columns: (IdentifierString | string)[]);
|
236
|
+
}
|
237
|
+
export declare class SetClause extends SqlComponent {
|
238
|
+
static kind: symbol;
|
239
|
+
items: SetClauseItem[];
|
240
|
+
constructor(items: (SetClauseItem | {
|
241
|
+
column: string | IdentifierString;
|
242
|
+
value: ValueComponent;
|
243
|
+
})[]);
|
244
|
+
}
|
245
|
+
/**
|
246
|
+
* Represents a single SET clause item in an UPDATE statement.
|
247
|
+
*/
|
248
|
+
/**
|
249
|
+
* Represents a single SET clause item in an UPDATE statement.
|
250
|
+
* Now supports namespaces for fully qualified column names (e.g. schema.table.column).
|
251
|
+
*/
|
252
|
+
/**
|
253
|
+
* Represents a single SET clause item in an UPDATE statement.
|
254
|
+
* Now supports namespaces for fully qualified column names (e.g. schema.table.column).
|
255
|
+
* Refactored to use QualifiedName for unified name/namespace handling.
|
256
|
+
*/
|
257
|
+
export declare class SetClauseItem extends SqlComponent {
|
258
|
+
static kind: symbol;
|
259
|
+
qualifiedName: QualifiedName;
|
260
|
+
value: ValueComponent;
|
261
|
+
constructor(column: string | IdentifierString | {
|
262
|
+
namespaces: string[] | IdentifierString[] | null;
|
263
|
+
column: string | IdentifierString;
|
264
|
+
}, value: ValueComponent);
|
265
|
+
/**
|
266
|
+
* For backward compatibility: returns the namespaces as IdentifierString[] | null (readonly)
|
267
|
+
*/
|
268
|
+
get namespaces(): IdentifierString[] | null;
|
269
|
+
/**
|
270
|
+
* For backward compatibility: returns the column name as IdentifierString (readonly)
|
271
|
+
*/
|
272
|
+
get column(): IdentifierString;
|
273
|
+
/**
|
274
|
+
* Returns the fully qualified column name as a string.
|
275
|
+
*/
|
276
|
+
getFullName(): string;
|
277
|
+
}
|
278
|
+
export declare class UpdateClause extends SqlComponent {
|
279
|
+
static kind: symbol;
|
280
|
+
source: SourceExpression;
|
281
|
+
constructor(source: SourceExpression);
|
282
|
+
getSourceAliasName(): string | null;
|
283
|
+
}
|
284
|
+
/**
|
285
|
+
* Represents the target table (with optional alias/schema) and columns for an INSERT statement.
|
286
|
+
* @param source The target table as a SourceExpression (can include schema, alias, etc.)
|
287
|
+
* @param columns Array of column names (as strings)
|
288
|
+
*/
|
289
|
+
export declare class InsertClause extends SqlComponent {
|
290
|
+
source: SourceExpression;
|
291
|
+
columns: IdentifierString[];
|
292
|
+
constructor(source: SourceExpression, columns: string[]);
|
293
|
+
}
|