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
@@ -13,19 +13,34 @@ export declare class ValueList extends SqlComponent {
|
|
13
13
|
constructor(values: ValueComponent[]);
|
14
14
|
}
|
15
15
|
export declare class ColumnReference extends SqlComponent {
|
16
|
+
/**
|
17
|
+
* For backward compatibility: returns the namespaces as IdentifierString[] | null (readonly)
|
18
|
+
*/
|
19
|
+
get namespaces(): IdentifierString[] | null;
|
20
|
+
/**
|
21
|
+
* For backward compatibility: returns the column name as IdentifierString (readonly)
|
22
|
+
*/
|
23
|
+
get column(): IdentifierString;
|
16
24
|
static kind: symbol;
|
17
|
-
|
18
|
-
column: IdentifierString;
|
19
|
-
constructor(namespaces: string | string[] | null, column: string);
|
25
|
+
qualifiedName: QualifiedName;
|
26
|
+
constructor(namespaces: string | string[] | IdentifierString[] | null, column: string | IdentifierString);
|
20
27
|
toString(): string;
|
21
28
|
getNamespace(): string;
|
22
29
|
}
|
23
30
|
export declare class FunctionCall extends SqlComponent {
|
24
31
|
static kind: symbol;
|
25
|
-
|
32
|
+
qualifiedName: QualifiedName;
|
26
33
|
argument: ValueComponent | null;
|
27
34
|
over: OverExpression | null;
|
28
|
-
constructor(name: string, argument: ValueComponent | null, over: OverExpression | null);
|
35
|
+
constructor(namespaces: string[] | IdentifierString[] | null, name: string | RawString | IdentifierString, argument: ValueComponent | null, over: OverExpression | null);
|
36
|
+
/**
|
37
|
+
* For backward compatibility: returns the namespaces as IdentifierString[] | null (readonly)
|
38
|
+
*/
|
39
|
+
get namespaces(): IdentifierString[] | null;
|
40
|
+
/**
|
41
|
+
* For backward compatibility: returns the function name as RawString | IdentifierString (readonly)
|
42
|
+
*/
|
43
|
+
get name(): RawString | IdentifierString;
|
29
44
|
}
|
30
45
|
export type OverExpression = WindowFrameExpression | IdentifierString;
|
31
46
|
export declare enum WindowFrameType {
|
@@ -148,17 +163,39 @@ export declare class BetweenExpression extends SqlComponent {
|
|
148
163
|
export declare class StringSpecifierExpression extends SqlComponent {
|
149
164
|
static kind: symbol;
|
150
165
|
specifier: RawString;
|
151
|
-
value:
|
166
|
+
value: LiteralValue;
|
152
167
|
constructor(specifier: string, value: string);
|
153
168
|
}
|
154
169
|
export declare class TypeValue extends SqlComponent {
|
155
170
|
static kind: symbol;
|
156
|
-
|
171
|
+
qualifiedName: QualifiedName;
|
157
172
|
argument: ValueComponent | null;
|
158
|
-
constructor(
|
173
|
+
constructor(namespaces: string[] | IdentifierString[] | null, name: string | RawString | IdentifierString, argument?: ValueComponent | null);
|
174
|
+
/**
|
175
|
+
* For backward compatibility: returns the namespaces as IdentifierString[] | null (readonly)
|
176
|
+
*/
|
177
|
+
get namespaces(): IdentifierString[] | null;
|
178
|
+
/**
|
179
|
+
* For backward compatibility: returns the type name as RawString | IdentifierString (readonly)
|
180
|
+
*/
|
181
|
+
get name(): RawString | IdentifierString;
|
182
|
+
getTypeName(): string;
|
159
183
|
}
|
160
184
|
export declare class TupleExpression extends SqlComponent {
|
161
185
|
static kind: symbol;
|
162
186
|
values: ValueComponent[];
|
163
187
|
constructor(values: ValueComponent[]);
|
164
188
|
}
|
189
|
+
/**
|
190
|
+
* Represents a qualified name with optional namespaces (e.g. schema.table, db.schema.function)
|
191
|
+
*/
|
192
|
+
export declare class QualifiedName extends SqlComponent {
|
193
|
+
static kind: symbol;
|
194
|
+
/** List of namespaces (e.g. schema, database) */
|
195
|
+
namespaces: IdentifierString[] | null;
|
196
|
+
/** The actual name (e.g. table, function, type, column) */
|
197
|
+
name: RawString | IdentifierString;
|
198
|
+
constructor(namespaces: string[] | IdentifierString[] | null, name: string | RawString | IdentifierString);
|
199
|
+
/** Returns the full qualified name as a string (dot-separated) */
|
200
|
+
toString(): string;
|
201
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { FetchClause, FetchExpression } from "../models/Clause";
|
2
|
+
import { Lexeme } from "../models/Lexeme";
|
3
|
+
export declare class FetchClauseParser {
|
4
|
+
/**
|
5
|
+
* Parses a FETCH clause from a lexeme array starting at the given index.
|
6
|
+
* Supports syntax like: FETCH [FIRST|NEXT] <count> ROWS ONLY
|
7
|
+
* @param lexemes The array of lexemes
|
8
|
+
* @param index The starting index
|
9
|
+
* @returns { value: FetchSpecification, newIndex: number }
|
10
|
+
*/
|
11
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
12
|
+
value: FetchClause;
|
13
|
+
newIndex: number;
|
14
|
+
};
|
15
|
+
}
|
16
|
+
export declare class FetchExpressionParser {
|
17
|
+
/**
|
18
|
+
* Parses a FETCH expression (not the whole clause, just the fetch part)
|
19
|
+
*/
|
20
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
21
|
+
value: FetchExpression;
|
22
|
+
newIndex: number;
|
23
|
+
};
|
24
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { Lexeme } from "../models/Lexeme";
|
2
|
+
import { IdentifierString } from "../models/ValueComponent";
|
3
|
+
/**
|
4
|
+
* Utility class for parsing fully qualified names (e.g. db.schema.table or db.schema.table.column_name)
|
5
|
+
* This can be used for both table and column references.
|
6
|
+
*/
|
7
|
+
export declare class FullNameParser {
|
8
|
+
/**
|
9
|
+
* Parses a fully qualified name from lexemes, returning namespaces, table, and new index.
|
10
|
+
*/
|
11
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
12
|
+
namespaces: string[] | null;
|
13
|
+
name: IdentifierString;
|
14
|
+
newIndex: number;
|
15
|
+
lastTokenType: number;
|
16
|
+
};
|
17
|
+
/**
|
18
|
+
* Parses a fully qualified name from a string (e.g. 'db.schema.table')
|
19
|
+
* Returns { namespaces, name }
|
20
|
+
*/
|
21
|
+
static parse(str: string): {
|
22
|
+
namespaces: string[] | null;
|
23
|
+
name: IdentifierString;
|
24
|
+
};
|
25
|
+
private static parseEscapedOrDotSeparatedIdentifiers;
|
26
|
+
private static extractNamespacesAndName;
|
27
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { OffsetClause } from "../models/Clause";
|
2
|
+
import { Lexeme } from "../models/Lexeme";
|
3
|
+
export declare class OffsetClauseParser {
|
4
|
+
static parse(query: string): OffsetClause;
|
5
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
6
|
+
value: OffsetClause;
|
7
|
+
newIndex: number;
|
8
|
+
};
|
9
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/**
|
2
|
+
* This decorator formats parameter tokens according to DBMS-specific rules.
|
3
|
+
* It supports prefix/suffix, and parameter style (named, indexed, anonymous).
|
4
|
+
*/
|
5
|
+
export declare class ParameterDecorator {
|
6
|
+
prefix: string;
|
7
|
+
suffix: string;
|
8
|
+
style: 'named' | 'indexed' | 'anonymous';
|
9
|
+
constructor(options?: {
|
10
|
+
prefix?: string;
|
11
|
+
suffix?: string;
|
12
|
+
style?: 'named' | 'indexed' | 'anonymous';
|
13
|
+
});
|
14
|
+
/**
|
15
|
+
* Decorate a parameter token with DBMS-specific format.
|
16
|
+
* @param token The parameter token
|
17
|
+
* @param index The parameter index (for indexed/anonymous)
|
18
|
+
*/
|
19
|
+
decorate(text: string, index: number): string;
|
20
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { Lexeme } from "../models/Lexeme";
|
2
|
+
import { ReturningClause } from "../models/Clause";
|
3
|
+
export declare class ReturningClauseParser {
|
4
|
+
/**
|
5
|
+
* Parse RETURNING clause from lexemes, starting at the given index.
|
6
|
+
* Returns a ReturningClause instance and the new index after parsing.
|
7
|
+
*/
|
8
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
9
|
+
value: ReturningClause;
|
10
|
+
newIndex: number;
|
11
|
+
};
|
12
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { SelectClause } from "../models/Clause";
|
1
|
+
import { SelectClause, SelectItem } from "../models/Clause";
|
2
2
|
import { Lexeme } from "../models/Lexeme";
|
3
3
|
export declare class SelectClauseParser {
|
4
4
|
static parse(query: string): SelectClause;
|
@@ -6,5 +6,22 @@ export declare class SelectClauseParser {
|
|
6
6
|
value: SelectClause;
|
7
7
|
newIndex: number;
|
8
8
|
};
|
9
|
-
|
9
|
+
}
|
10
|
+
export declare class SelectItemParser {
|
11
|
+
/**
|
12
|
+
* Parses a single select item from a SQL string.
|
13
|
+
* @param query The SQL string representing a select item (e.g. 'id as user_id').
|
14
|
+
* @returns The parsed SelectItem instance.
|
15
|
+
*/
|
16
|
+
static parse(query: string): SelectItem;
|
17
|
+
/**
|
18
|
+
* Parses a single select item from lexemes.
|
19
|
+
* @param lexemes The array of lexemes.
|
20
|
+
* @param index The starting index.
|
21
|
+
* @returns An object containing the SelectItem and the new index.
|
22
|
+
*/
|
23
|
+
static parseItem(lexemes: Lexeme[], index: number): {
|
24
|
+
value: SelectItem;
|
25
|
+
newIndex: number;
|
26
|
+
};
|
10
27
|
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { Lexeme } from "../models/Lexeme";
|
2
|
+
import { SetClause } from "../models/Clause";
|
3
|
+
/**
|
4
|
+
* Parse SET clause from lexemes (including 'SET' keyword check).
|
5
|
+
*/
|
6
|
+
export declare class SetClauseParser {
|
7
|
+
static parseFromLexeme(lexemes: Lexeme[], idx: number): {
|
8
|
+
setClause: SetClause;
|
9
|
+
newIndex: number;
|
10
|
+
};
|
11
|
+
}
|
@@ -1,6 +1,14 @@
|
|
1
1
|
import { SourceExpression } from "../models/Clause";
|
2
2
|
import { Lexeme } from "../models/Lexeme";
|
3
3
|
export declare class SourceExpressionParser {
|
4
|
+
/**
|
5
|
+
* Parse SQL string to SourceExpression (e.g. "table", "table as t", "schema.table t")
|
6
|
+
*/
|
7
|
+
static parse(query: string): SourceExpression;
|
8
|
+
static parseTableSourceFromLexemes(lexemes: Lexeme[], index: number): {
|
9
|
+
value: SourceExpression;
|
10
|
+
newIndex: number;
|
11
|
+
};
|
4
12
|
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
5
13
|
value: SourceExpression;
|
6
14
|
newIndex: number;
|
@@ -2,6 +2,20 @@ import { SourceComponent } from "../models/Clause";
|
|
2
2
|
import { Lexeme } from "../models/Lexeme";
|
3
3
|
export declare class SourceParser {
|
4
4
|
static parse(query: string): SourceComponent;
|
5
|
+
/**
|
6
|
+
* Parses only a TableSource from the given lexemes, regardless of the presence of parentheses after the identifier.
|
7
|
+
* This method is specifically used for cases like INSERT queries (e.g., "insert into table_name (col1, col2)")
|
8
|
+
* where a parenthesis immediately following the table name could otherwise be misinterpreted as a function call.
|
9
|
+
* By using this method, the parser forcibly treats the source as a TableSource.
|
10
|
+
*
|
11
|
+
* @param lexemes The array of lexemes to parse.
|
12
|
+
* @param index The starting index in the lexeme array.
|
13
|
+
* @returns An object containing the parsed TableSource and the new index.
|
14
|
+
*/
|
15
|
+
static parseTableSourceFromLexemes(lexemes: Lexeme[], index: number): {
|
16
|
+
value: SourceComponent;
|
17
|
+
newIndex: number;
|
18
|
+
};
|
5
19
|
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
6
20
|
value: SourceComponent;
|
7
21
|
newIndex: number;
|
@@ -0,0 +1,144 @@
|
|
1
|
+
import { FromClause, JoinClause, JoinOnClause, JoinUsingClause, FunctionSource, SourceAliasExpression, WhereClause, GroupByClause, HavingClause, SubQuerySource, WindowFrameClause, LimitClause, ForClause, OffsetClause, WindowsClause as WindowClause, CommonTable, WithClause, FetchClause, FetchExpression, UpdateClause, SetClause, ReturningClause, SetClauseItem } from "../models/Clause";
|
2
|
+
import { SimpleSelectQuery, ValuesQuery } from "../models/SelectQuery";
|
3
|
+
import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
|
4
|
+
import { SqlPrintToken } from "../models/SqlPrintToken";
|
5
|
+
import { InlineQuery } from "../models/ValueComponent";
|
6
|
+
import { IdentifierDecorator } from "./IdentifierDecorator";
|
7
|
+
import { ParameterDecorator } from "./ParameterDecorator";
|
8
|
+
import { CreateTableQuery } from "../models/CreateTableQuery";
|
9
|
+
export declare enum ParameterStyle {
|
10
|
+
Anonymous = "anonymous",
|
11
|
+
Indexed = "indexed",
|
12
|
+
Named = "named"
|
13
|
+
}
|
14
|
+
export interface FormatterConfig {
|
15
|
+
identifierEscape?: {
|
16
|
+
start: string;
|
17
|
+
end: string;
|
18
|
+
};
|
19
|
+
parameterSymbol?: string | {
|
20
|
+
start: string;
|
21
|
+
end: string;
|
22
|
+
};
|
23
|
+
/**
|
24
|
+
* Parameter style: anonymous (?), indexed ($1), or named (:name)
|
25
|
+
*/
|
26
|
+
parameterStyle?: ParameterStyle;
|
27
|
+
}
|
28
|
+
export declare const PRESETS: Record<string, FormatterConfig>;
|
29
|
+
export declare class SqlPrintTokenParser implements SqlComponentVisitor<SqlPrintToken> {
|
30
|
+
private static readonly SPACE_TOKEN;
|
31
|
+
private static readonly COMMA_TOKEN;
|
32
|
+
private static readonly ARGUMENT_SPLIT_COMMA_TOKEN;
|
33
|
+
private static readonly PAREN_OPEN_TOKEN;
|
34
|
+
private static readonly PAREN_CLOSE_TOKEN;
|
35
|
+
private static readonly DOT_TOKEN;
|
36
|
+
private handlers;
|
37
|
+
parameterDecorator: ParameterDecorator;
|
38
|
+
identifierDecorator: IdentifierDecorator;
|
39
|
+
index: number;
|
40
|
+
constructor(options?: {
|
41
|
+
preset?: FormatterConfig;
|
42
|
+
identifierEscape?: {
|
43
|
+
start: string;
|
44
|
+
end: string;
|
45
|
+
};
|
46
|
+
parameterSymbol?: string | {
|
47
|
+
start: string;
|
48
|
+
end: string;
|
49
|
+
};
|
50
|
+
parameterStyle?: 'anonymous' | 'indexed' | 'named';
|
51
|
+
});
|
52
|
+
/**
|
53
|
+
* Pretty-prints a BinarySelectQuery (e.g., UNION, INTERSECT, EXCEPT).
|
54
|
+
* This will recursively print left and right queries, separated by the operator.
|
55
|
+
* @param arg BinarySelectQuery
|
56
|
+
*/
|
57
|
+
private visitBinarySelectQuery;
|
58
|
+
/**
|
59
|
+
* Returns an array of tokens representing a comma followed by a space.
|
60
|
+
* This is a common pattern in SQL pretty-printing.
|
61
|
+
*/
|
62
|
+
private static commaSpaceTokens;
|
63
|
+
private static argumentCommaSpaceTokens;
|
64
|
+
private visitQualifiedName;
|
65
|
+
private visitPartitionByClause;
|
66
|
+
private visitOrderByClause;
|
67
|
+
/**
|
68
|
+
* Print an OrderByItem (expression [asc|desc] [nulls first|last])
|
69
|
+
*/
|
70
|
+
private visitOrderByItem;
|
71
|
+
parse(arg: SqlComponent): {
|
72
|
+
token: SqlPrintToken;
|
73
|
+
params: any[] | Record<string, any>[] | Record<string, any>;
|
74
|
+
};
|
75
|
+
visit(arg: SqlComponent): SqlPrintToken;
|
76
|
+
private visitValueList;
|
77
|
+
private visitColumnReference;
|
78
|
+
private visitFunctionCall;
|
79
|
+
private visitUnaryExpression;
|
80
|
+
private visitBinaryExpression;
|
81
|
+
private visitLiteralValue;
|
82
|
+
private visitParameterExpression;
|
83
|
+
private visitSwitchCaseArgument;
|
84
|
+
private createElseToken;
|
85
|
+
private visitCaseKeyValuePair;
|
86
|
+
private visitRawString;
|
87
|
+
private visitIdentifierString;
|
88
|
+
private visitParenExpression;
|
89
|
+
private visitCastExpression;
|
90
|
+
private visitCaseExpression;
|
91
|
+
private visitArrayExpression;
|
92
|
+
private visitBetweenExpression;
|
93
|
+
private visitStringSpecifierExpression;
|
94
|
+
private visitTypeValue;
|
95
|
+
private visitTupleExpression;
|
96
|
+
private visitWindowFrameExpression;
|
97
|
+
private visitWindowFrameSpec;
|
98
|
+
/**
|
99
|
+
* Prints a window frame boundary value, such as "5 preceding" or "3 following".
|
100
|
+
* @param arg WindowFrameBoundaryValue
|
101
|
+
*/
|
102
|
+
private visitWindowFrameBoundaryValue;
|
103
|
+
/**
|
104
|
+
* Prints a static window frame bound, such as "unbounded preceding", "current row", or "unbounded following".
|
105
|
+
* @param arg WindowFrameBoundStatic
|
106
|
+
*/
|
107
|
+
private visitWindowFrameBoundStatic;
|
108
|
+
private visitSelectItem;
|
109
|
+
private visitSelectClause;
|
110
|
+
private visitDistinct;
|
111
|
+
private visitDistinctOn;
|
112
|
+
private visitTableSource;
|
113
|
+
private visitSourceExpression;
|
114
|
+
visitFromClause(arg: FromClause): SqlPrintToken;
|
115
|
+
visitJoinClause(arg: JoinClause): SqlPrintToken;
|
116
|
+
visitJoinOnClause(arg: JoinOnClause): SqlPrintToken;
|
117
|
+
visitJoinUsingClause(arg: JoinUsingClause): SqlPrintToken;
|
118
|
+
visitFunctionSource(arg: FunctionSource): SqlPrintToken;
|
119
|
+
visitSourceAliasExpression(arg: SourceAliasExpression): SqlPrintToken;
|
120
|
+
visitWhereClause(arg: WhereClause): SqlPrintToken;
|
121
|
+
visitGroupByClause(arg: GroupByClause): SqlPrintToken;
|
122
|
+
visitHavingClause(arg: HavingClause): SqlPrintToken;
|
123
|
+
visitWindowClause(arg: WindowClause): SqlPrintToken;
|
124
|
+
visitWindowFrameClause(arg: WindowFrameClause): SqlPrintToken;
|
125
|
+
visitLimitClause(arg: LimitClause): SqlPrintToken;
|
126
|
+
visitOffsetClause(arg: OffsetClause): SqlPrintToken;
|
127
|
+
visitFetchClause(arg: FetchClause): SqlPrintToken;
|
128
|
+
visitFetchExpression(arg: FetchExpression): SqlPrintToken;
|
129
|
+
visitForClause(arg: ForClause): SqlPrintToken;
|
130
|
+
visitWithClause(arg: WithClause): SqlPrintToken;
|
131
|
+
visitCommonTable(arg: CommonTable): SqlPrintToken;
|
132
|
+
visitSimpleQuery(arg: SimpleSelectQuery): SqlPrintToken;
|
133
|
+
visitSubQuerySource(arg: SubQuerySource): SqlPrintToken;
|
134
|
+
visitValuesQuery(arg: ValuesQuery): SqlPrintToken;
|
135
|
+
visitInlineQuery(arg: InlineQuery): SqlPrintToken;
|
136
|
+
private visitInsertQuery;
|
137
|
+
private visitInsertClause;
|
138
|
+
private visitUpdateQuery;
|
139
|
+
visitUpdateClause(arg: UpdateClause): SqlPrintToken;
|
140
|
+
visitSetClause(arg: SetClause): SqlPrintToken;
|
141
|
+
visitSetClauseItem(arg: SetClauseItem): SqlPrintToken;
|
142
|
+
visitReturningClause(arg: ReturningClause): SqlPrintToken;
|
143
|
+
visitCreateTableQuery(arg: CreateTableQuery): SqlPrintToken;
|
144
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { UpdateClause } from "../models/Clause";
|
2
|
+
import { Lexeme } from "../models/Lexeme";
|
3
|
+
/**
|
4
|
+
* Parses the target of an UPDATE statement (table or source expression with optional alias).
|
5
|
+
*/
|
6
|
+
export declare class UpdateClauseParser {
|
7
|
+
/**
|
8
|
+
* Parse from lexeme array (returns UpdateClause and new index)
|
9
|
+
* This method parses a table or a table with alias using SourceExpressionParser.
|
10
|
+
*/
|
11
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
12
|
+
value: UpdateClause;
|
13
|
+
newIndex: number;
|
14
|
+
};
|
15
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { UpdateQuery } from "../models/UpdateQuery";
|
2
|
+
import { Lexeme } from "../models/Lexeme";
|
3
|
+
export declare class UpdateQueryParser {
|
4
|
+
/**
|
5
|
+
* Parse SQL string to UpdateQuery AST.
|
6
|
+
* @param query SQL string
|
7
|
+
*/
|
8
|
+
static parse(query: string): UpdateQuery;
|
9
|
+
/**
|
10
|
+
* Parse from lexeme array (for internal use and tests)
|
11
|
+
*/
|
12
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
13
|
+
value: UpdateQuery;
|
14
|
+
newIndex: number;
|
15
|
+
};
|
16
|
+
}
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import {
|
1
|
+
import { WindowsClause } from "../models/Clause";
|
2
2
|
import { Lexeme } from "../models/Lexeme";
|
3
3
|
export declare class WindowClauseParser {
|
4
|
-
static parse(query: string):
|
4
|
+
static parse(query: string): WindowsClause;
|
5
5
|
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
6
|
-
value:
|
6
|
+
value: WindowsClause;
|
7
7
|
newIndex: number;
|
8
8
|
};
|
9
9
|
}
|
@@ -1,108 +1,17 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
interface FormatterConfig {
|
8
|
-
identifierEscape?: {
|
9
|
-
start: string;
|
10
|
-
end: string;
|
11
|
-
};
|
12
|
-
parameterSymbol?: string | {
|
13
|
-
start: string;
|
14
|
-
end: string;
|
15
|
-
};
|
16
|
-
/**
|
17
|
-
* Parameter style: anonymous (?), indexed ($1), or named (:name)
|
18
|
-
*/
|
19
|
-
parameterStyle?: ParameterStyle;
|
20
|
-
}
|
1
|
+
import { SqlFormatter } from './SqlFormatter';
|
2
|
+
import { SqlComponent, SqlComponentVisitor } from '../models/SqlComponent';
|
3
|
+
import { FormatterConfig } from '../parsers/SqlPrintTokenParser';
|
4
|
+
/**
|
5
|
+
* @deprecated The Formatter class is deprecated. Use SqlFormatter instead.
|
6
|
+
*/
|
21
7
|
export declare class Formatter implements SqlComponentVisitor<string> {
|
22
|
-
|
23
|
-
* Preset configs for common DB dialects.
|
24
|
-
*/
|
25
|
-
static readonly PRESETS: Record<string, FormatterConfig>;
|
26
|
-
private handlers;
|
27
|
-
private config;
|
28
|
-
private parameterIndex;
|
8
|
+
private sqlFormatter;
|
29
9
|
constructor();
|
30
|
-
/**
|
31
|
-
* Formats the given SQL AST node into a SQL string.
|
32
|
-
* This is the recommended public API for users.
|
33
|
-
* @param arg The root SQL AST node to format.
|
34
|
-
* @param config (Optional) Formatter configuration.
|
35
|
-
* @returns The formatted SQL string.
|
36
|
-
*/
|
37
10
|
format(arg: SqlComponent, config?: FormatterConfig | null): string;
|
38
11
|
formatWithParameters(arg: SqlComponent, config?: FormatterConfig | null): {
|
39
12
|
sql: string;
|
40
13
|
params: any[] | Record<string, any>[] | Record<string, any>;
|
41
14
|
};
|
42
|
-
/**
|
43
|
-
* Visitor entry point for SQL AST nodes.
|
44
|
-
* Note: This method is public only for interface compatibility.
|
45
|
-
* Users should call the format() method instead of visit() directly.
|
46
|
-
* (If you call visit() directly, you are basically breaking the abstraction, so don't do it!)
|
47
|
-
* @param arg The SQL AST node to visit.
|
48
|
-
* @returns The formatted SQL string for the node.
|
49
|
-
*/
|
50
15
|
visit(arg: SqlComponent): string;
|
51
|
-
private visitBinarySelectQuery;
|
52
|
-
private visitWindowFrameBoundaryValue;
|
53
|
-
private visitWindowFrameBoundStatic;
|
54
|
-
private visitWindowFrameExpression;
|
55
|
-
private visitWindowFrameSpec;
|
56
|
-
private visitJoinUsingClause;
|
57
|
-
private visitJoinOnClause;
|
58
|
-
private visitTypeValue;
|
59
|
-
private visitStringSpecifierExpression;
|
60
|
-
private visitWithClause;
|
61
|
-
private visitCommonTable;
|
62
|
-
private visitDistinctOn;
|
63
|
-
private visitDistinct;
|
64
|
-
private visitHavingClause;
|
65
|
-
private visitGroupByClause;
|
66
|
-
private visitFromClause;
|
67
|
-
private visitJoinClause;
|
68
|
-
private visitSourceAliasExpression;
|
69
|
-
private visitSourceExpression;
|
70
|
-
private visitSubQuerySource;
|
71
|
-
private visitFunctionSource;
|
72
|
-
private visitTableSource;
|
73
|
-
private visitValueList;
|
74
|
-
private visitSwitchCaseArgument;
|
75
|
-
private visitColumnReference;
|
76
|
-
private visitFunctionCall;
|
77
|
-
private visitUnaryExpression;
|
78
|
-
private visitBinaryExpression;
|
79
|
-
private visitLiteralExpression;
|
80
|
-
private visitParameterExpression;
|
81
|
-
private visitSelectItemExpression;
|
82
|
-
private visitSelectClause;
|
83
|
-
private visitSelectQuery;
|
84
|
-
private visitArrayExpression;
|
85
|
-
private visitCaseExpression;
|
86
|
-
private visitCastExpression;
|
87
|
-
private visitBracketExpression;
|
88
|
-
private visitBetweenExpression;
|
89
|
-
private visitPartitionByClause;
|
90
|
-
private visitOrderByClause;
|
91
|
-
private visitOrderByItem;
|
92
|
-
private visitWindowFrameClause;
|
93
|
-
private visitLimitClause;
|
94
|
-
private visitFetchSpecification;
|
95
|
-
private visitForClause;
|
96
|
-
private visitWhereClause;
|
97
|
-
private visitInlineQuery;
|
98
|
-
private visitRawString;
|
99
|
-
private visitIdentifierString;
|
100
|
-
private visitValuesQuery;
|
101
|
-
private visitTupleExpression;
|
102
|
-
/**
|
103
|
-
* Formats a CreateTableQuery into SQL string.
|
104
|
-
*/
|
105
|
-
private visitCreateTableQuery;
|
106
|
-
private visitInsertQuery;
|
107
16
|
}
|
108
|
-
export {};
|
17
|
+
export { SqlFormatter };
|
@@ -0,0 +1,41 @@
|
|
1
|
+
export type NewlineOption = ' ' | '\n' | '\r\n';
|
2
|
+
export type IndentCharOption = '' | ' ' | '\t';
|
3
|
+
/**
|
4
|
+
* SqlPrintHelper provides utility methods for SQL pretty printing.
|
5
|
+
*/
|
6
|
+
export declare class LinePrinter {
|
7
|
+
indentChar: IndentCharOption;
|
8
|
+
indentSize: number;
|
9
|
+
newline: NewlineOption;
|
10
|
+
lines: PrintLine[];
|
11
|
+
/**
|
12
|
+
* @param indentChar Character used for indentation (default: ' ') // Updated comment to reflect options
|
13
|
+
* @param indentSize Number of indentChar per level (default: 0)
|
14
|
+
* @param newline Newline string (default: '\r\n') // Changed type and default value
|
15
|
+
*/
|
16
|
+
constructor(indentChar?: IndentCharOption, indentSize?: number, newline?: NewlineOption);
|
17
|
+
print(): string;
|
18
|
+
/**
|
19
|
+
* Returns the indent string for a given level.
|
20
|
+
* @param level Indentation level
|
21
|
+
*/
|
22
|
+
private indent;
|
23
|
+
/**
|
24
|
+
* Appends a newline token to the given tokens array if newline is set, or adds an empty line if tokens is empty.
|
25
|
+
* @param tokens Array of token objects with 'level' and 'text' property
|
26
|
+
* @param level Indentation level
|
27
|
+
*/
|
28
|
+
appendNewline(level: number): void;
|
29
|
+
/**
|
30
|
+
* Appends text to the last element of tokens array.
|
31
|
+
* @param tokens Array of token objects with 'text' property
|
32
|
+
* @param text Text to append
|
33
|
+
*/
|
34
|
+
appendText(text: string): void;
|
35
|
+
getCurrentLine(): PrintLine;
|
36
|
+
}
|
37
|
+
export declare class PrintLine {
|
38
|
+
level: number;
|
39
|
+
text: string;
|
40
|
+
constructor(level: number, text: string);
|
41
|
+
}
|