rawsql-ts 0.11.43-beta → 0.12.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/README.md +12 -12
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +15 -19
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/index.d.ts +18 -0
- package/dist/esm/src/index.js +18 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/models/BinarySelectQuery.d.ts +25 -1
- package/dist/esm/src/models/BinarySelectQuery.js +28 -0
- package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/esm/src/models/Clause.d.ts +14 -2
- package/dist/esm/src/models/Clause.js +26 -1
- package/dist/esm/src/models/Clause.js.map +1 -1
- package/dist/esm/src/models/CreateTableQuery.d.ts +99 -5
- package/dist/esm/src/models/CreateTableQuery.js +85 -10
- package/dist/esm/src/models/CreateTableQuery.js.map +1 -1
- package/dist/esm/src/models/DDLStatements.d.ts +195 -0
- package/dist/esm/src/models/DDLStatements.js +201 -0
- package/dist/esm/src/models/DDLStatements.js.map +1 -0
- package/dist/esm/src/models/DeleteQuery.d.ts +17 -0
- package/dist/esm/src/models/DeleteQuery.js +16 -0
- package/dist/esm/src/models/DeleteQuery.js.map +1 -0
- package/dist/esm/src/models/InsertQuery.d.ts +7 -1
- package/dist/esm/src/models/InsertQuery.js +6 -2
- package/dist/esm/src/models/InsertQuery.js.map +1 -1
- package/dist/esm/src/models/MergeQuery.d.ts +63 -0
- package/dist/esm/src/models/MergeQuery.js +94 -0
- package/dist/esm/src/models/MergeQuery.js.map +1 -0
- package/dist/esm/src/models/SelectQuery.d.ts +37 -1
- package/dist/esm/src/models/SelectQuery.js +4 -1
- package/dist/esm/src/models/SelectQuery.js.map +1 -1
- package/dist/esm/src/models/SimpleSelectQuery.d.ts +29 -1
- package/dist/esm/src/models/SimpleSelectQuery.js +32 -0
- package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/esm/src/models/SqlComponent.d.ts +2 -1
- package/dist/esm/src/models/SqlComponent.js +1 -1
- package/dist/esm/src/models/SqlComponent.js.map +1 -1
- package/dist/esm/src/models/SqlPrintToken.d.ts +36 -0
- package/dist/esm/src/models/SqlPrintToken.js +35 -0
- package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
- package/dist/esm/src/models/ValuesQuery.d.ts +25 -1
- package/dist/esm/src/models/ValuesQuery.js +28 -0
- package/dist/esm/src/models/ValuesQuery.js.map +1 -1
- package/dist/esm/src/parsers/AlterTableParser.d.ts +25 -0
- package/dist/esm/src/parsers/AlterTableParser.js +428 -0
- package/dist/esm/src/parsers/AlterTableParser.js.map +1 -0
- package/dist/esm/src/parsers/AnalyzeStatementParser.d.ts +13 -0
- package/dist/esm/src/parsers/AnalyzeStatementParser.js +90 -0
- package/dist/esm/src/parsers/AnalyzeStatementParser.js.map +1 -0
- package/dist/esm/src/parsers/CreateIndexParser.d.ts +16 -0
- package/dist/esm/src/parsers/CreateIndexParser.js +237 -0
- package/dist/esm/src/parsers/CreateIndexParser.js.map +1 -0
- package/dist/esm/src/parsers/CreateTableParser.d.ts +41 -0
- package/dist/esm/src/parsers/CreateTableParser.js +734 -0
- package/dist/esm/src/parsers/CreateTableParser.js.map +1 -0
- package/dist/esm/src/parsers/DeleteClauseParser.d.ts +11 -0
- package/dist/esm/src/parsers/DeleteClauseParser.js +33 -0
- package/dist/esm/src/parsers/DeleteClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/DeleteQueryParser.d.ts +16 -0
- package/dist/esm/src/parsers/DeleteQueryParser.js +73 -0
- package/dist/esm/src/parsers/DeleteQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/DropConstraintParser.d.ts +12 -0
- package/dist/esm/src/parsers/DropConstraintParser.js +47 -0
- package/dist/esm/src/parsers/DropConstraintParser.js.map +1 -0
- package/dist/esm/src/parsers/DropIndexParser.d.ts +12 -0
- package/dist/esm/src/parsers/DropIndexParser.js +69 -0
- package/dist/esm/src/parsers/DropIndexParser.js.map +1 -0
- package/dist/esm/src/parsers/DropTableParser.d.ts +12 -0
- package/dist/esm/src/parsers/DropTableParser.js +59 -0
- package/dist/esm/src/parsers/DropTableParser.js.map +1 -0
- package/dist/esm/src/parsers/ExplainStatementParser.d.ts +23 -0
- package/dist/esm/src/parsers/ExplainStatementParser.js +185 -0
- package/dist/esm/src/parsers/ExplainStatementParser.js.map +1 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +4 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.js +25 -8
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/InsertQueryParser.js +103 -31
- package/dist/esm/src/parsers/InsertQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/MergeQueryParser.d.ts +26 -0
- package/dist/esm/src/parsers/MergeQueryParser.js +479 -0
- package/dist/esm/src/parsers/MergeQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/ParenExpressionParser.js +25 -0
- package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/ReturningClauseParser.js +50 -7
- package/dist/esm/src/parsers/ReturningClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectClauseParser.js +3 -3
- package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectQueryParser.d.ts +4 -0
- package/dist/esm/src/parsers/SelectQueryParser.js +4 -0
- package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/SetClauseParser.js +97 -15
- package/dist/esm/src/parsers/SetClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlParser.d.ts +40 -0
- package/dist/esm/src/parsers/SqlParser.js +400 -0
- package/dist/esm/src/parsers/SqlParser.js.map +1 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +65 -3
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +1145 -38
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlTokenizer.d.ts +24 -2
- package/dist/esm/src/parsers/SqlTokenizer.js +135 -74
- package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/esm/src/parsers/UpdateQueryParser.js +11 -1
- package/dist/esm/src/parsers/UpdateQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/UsingClauseParser.d.ts +11 -0
- package/dist/esm/src/parsers/UsingClauseParser.js +29 -0
- package/dist/esm/src/parsers/UsingClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/ValueParser.js +5 -1
- package/dist/esm/src/parsers/ValueParser.js.map +1 -1
- package/dist/esm/src/parsers/ValuesQueryParser.d.ts +0 -2
- package/dist/esm/src/parsers/ValuesQueryParser.js +5 -45
- package/dist/esm/src/parsers/ValuesQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/utils/LexemeCommentUtils.d.ts +6 -0
- package/dist/esm/src/parsers/utils/LexemeCommentUtils.js +26 -0
- package/dist/esm/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
- package/dist/esm/src/tokenReaders/CommandTokenReader.js +50 -2
- package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/src/tokenReaders/LiteralTokenReader.js +8 -5
- package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -1
- package/dist/esm/src/tokenReaders/OperatorTokenReader.js +10 -1
- package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -1
- package/dist/esm/src/tokenReaders/TypeTokenReader.js +11 -1
- package/dist/esm/src/tokenReaders/TypeTokenReader.js.map +1 -1
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.d.ts +18 -0
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js +118 -0
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
- package/dist/esm/src/transformers/LinePrinter.d.ts +1 -0
- package/dist/esm/src/transformers/LinePrinter.js +12 -0
- package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
- package/dist/esm/src/transformers/OnelineFormattingHelper.d.ts +29 -0
- package/dist/esm/src/transformers/OnelineFormattingHelper.js +95 -0
- package/dist/esm/src/transformers/OnelineFormattingHelper.js.map +1 -0
- package/dist/esm/src/transformers/QueryBuilder.d.ts +47 -13
- package/dist/esm/src/transformers/QueryBuilder.js +424 -62
- package/dist/esm/src/transformers/QueryBuilder.js.map +1 -1
- package/dist/esm/src/transformers/SqlFormatter.d.ts +13 -1
- package/dist/esm/src/transformers/SqlFormatter.js +13 -4
- package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/esm/src/transformers/SqlPrinter.d.ts +47 -8
- package/dist/esm/src/transformers/SqlPrinter.js +625 -72
- package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/esm/src/types/Formatting.d.ts +8 -0
- package/dist/esm/src/types/Formatting.js +2 -0
- package/dist/esm/src/types/Formatting.js.map +1 -0
- package/dist/esm/src/utils/ParserStringUtils.d.ts +6 -0
- package/dist/esm/src/utils/ParserStringUtils.js +28 -0
- package/dist/esm/src/utils/ParserStringUtils.js.map +1 -0
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +14 -18
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +18 -0
- package/dist/src/index.js +18 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/BinarySelectQuery.d.ts +25 -1
- package/dist/src/models/BinarySelectQuery.js +28 -0
- package/dist/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/src/models/Clause.d.ts +14 -2
- package/dist/src/models/Clause.js +29 -2
- package/dist/src/models/Clause.js.map +1 -1
- package/dist/src/models/CreateTableQuery.d.ts +99 -5
- package/dist/src/models/CreateTableQuery.js +90 -11
- package/dist/src/models/CreateTableQuery.js.map +1 -1
- package/dist/src/models/DDLStatements.d.ts +195 -0
- package/dist/src/models/DDLStatements.js +216 -0
- package/dist/src/models/DDLStatements.js.map +1 -0
- package/dist/src/models/DeleteQuery.d.ts +17 -0
- package/dist/src/models/DeleteQuery.js +20 -0
- package/dist/src/models/DeleteQuery.js.map +1 -0
- package/dist/src/models/InsertQuery.d.ts +7 -1
- package/dist/src/models/InsertQuery.js +6 -2
- package/dist/src/models/InsertQuery.js.map +1 -1
- package/dist/src/models/MergeQuery.d.ts +63 -0
- package/dist/src/models/MergeQuery.js +104 -0
- package/dist/src/models/MergeQuery.js.map +1 -0
- package/dist/src/models/SelectQuery.d.ts +37 -1
- package/dist/src/models/SelectQuery.js +7 -1
- package/dist/src/models/SelectQuery.js.map +1 -1
- package/dist/src/models/SimpleSelectQuery.d.ts +29 -1
- package/dist/src/models/SimpleSelectQuery.js +32 -0
- package/dist/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/src/models/SqlComponent.d.ts +2 -1
- package/dist/src/models/SqlComponent.js +1 -1
- package/dist/src/models/SqlComponent.js.map +1 -1
- package/dist/src/models/SqlPrintToken.d.ts +36 -0
- package/dist/src/models/SqlPrintToken.js +35 -0
- package/dist/src/models/SqlPrintToken.js.map +1 -1
- package/dist/src/models/ValuesQuery.d.ts +25 -1
- package/dist/src/models/ValuesQuery.js +28 -0
- package/dist/src/models/ValuesQuery.js.map +1 -1
- package/dist/src/parsers/AlterTableParser.d.ts +25 -0
- package/dist/src/parsers/AlterTableParser.js +432 -0
- package/dist/src/parsers/AlterTableParser.js.map +1 -0
- package/dist/src/parsers/AnalyzeStatementParser.d.ts +13 -0
- package/dist/src/parsers/AnalyzeStatementParser.js +94 -0
- package/dist/src/parsers/AnalyzeStatementParser.js.map +1 -0
- package/dist/src/parsers/CreateIndexParser.d.ts +16 -0
- package/dist/src/parsers/CreateIndexParser.js +241 -0
- package/dist/src/parsers/CreateIndexParser.js.map +1 -0
- package/dist/src/parsers/CreateTableParser.d.ts +41 -0
- package/dist/src/parsers/CreateTableParser.js +738 -0
- package/dist/src/parsers/CreateTableParser.js.map +1 -0
- package/dist/src/parsers/DeleteClauseParser.d.ts +11 -0
- package/dist/src/parsers/DeleteClauseParser.js +37 -0
- package/dist/src/parsers/DeleteClauseParser.js.map +1 -0
- package/dist/src/parsers/DeleteQueryParser.d.ts +16 -0
- package/dist/src/parsers/DeleteQueryParser.js +77 -0
- package/dist/src/parsers/DeleteQueryParser.js.map +1 -0
- package/dist/src/parsers/DropConstraintParser.d.ts +12 -0
- package/dist/src/parsers/DropConstraintParser.js +51 -0
- package/dist/src/parsers/DropConstraintParser.js.map +1 -0
- package/dist/src/parsers/DropIndexParser.d.ts +12 -0
- package/dist/src/parsers/DropIndexParser.js +73 -0
- package/dist/src/parsers/DropIndexParser.js.map +1 -0
- package/dist/src/parsers/DropTableParser.d.ts +12 -0
- package/dist/src/parsers/DropTableParser.js +63 -0
- package/dist/src/parsers/DropTableParser.js.map +1 -0
- package/dist/src/parsers/ExplainStatementParser.d.ts +23 -0
- package/dist/src/parsers/ExplainStatementParser.js +189 -0
- package/dist/src/parsers/ExplainStatementParser.js.map +1 -0
- package/dist/src/parsers/FunctionExpressionParser.d.ts +4 -0
- package/dist/src/parsers/FunctionExpressionParser.js +25 -8
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/src/parsers/InsertQueryParser.js +103 -31
- package/dist/src/parsers/InsertQueryParser.js.map +1 -1
- package/dist/src/parsers/MergeQueryParser.d.ts +26 -0
- package/dist/src/parsers/MergeQueryParser.js +483 -0
- package/dist/src/parsers/MergeQueryParser.js.map +1 -0
- package/dist/src/parsers/ParenExpressionParser.js +25 -0
- package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/src/parsers/ReturningClauseParser.js +50 -7
- package/dist/src/parsers/ReturningClauseParser.js.map +1 -1
- package/dist/src/parsers/SelectClauseParser.js +2 -2
- package/dist/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/src/parsers/SelectQueryParser.d.ts +4 -0
- package/dist/src/parsers/SelectQueryParser.js +4 -0
- package/dist/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/src/parsers/SetClauseParser.js +97 -15
- package/dist/src/parsers/SetClauseParser.js.map +1 -1
- package/dist/src/parsers/SqlParser.d.ts +40 -0
- package/dist/src/parsers/SqlParser.js +409 -0
- package/dist/src/parsers/SqlParser.js.map +1 -0
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +65 -3
- package/dist/src/parsers/SqlPrintTokenParser.js +1143 -36
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/SqlTokenizer.d.ts +24 -2
- package/dist/src/parsers/SqlTokenizer.js +139 -74
- package/dist/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/parsers/UpdateQueryParser.js +11 -1
- package/dist/src/parsers/UpdateQueryParser.js.map +1 -1
- package/dist/src/parsers/UsingClauseParser.d.ts +11 -0
- package/dist/src/parsers/UsingClauseParser.js +33 -0
- package/dist/src/parsers/UsingClauseParser.js.map +1 -0
- package/dist/src/parsers/ValueParser.js +5 -1
- package/dist/src/parsers/ValueParser.js.map +1 -1
- package/dist/src/parsers/ValuesQueryParser.d.ts +0 -2
- package/dist/src/parsers/ValuesQueryParser.js +5 -45
- package/dist/src/parsers/ValuesQueryParser.js.map +1 -1
- package/dist/src/parsers/utils/LexemeCommentUtils.d.ts +6 -0
- package/dist/src/parsers/utils/LexemeCommentUtils.js +29 -0
- package/dist/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
- package/dist/src/tokenReaders/CommandTokenReader.js +50 -2
- package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/src/tokenReaders/LiteralTokenReader.js +8 -5
- package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -1
- package/dist/src/tokenReaders/OperatorTokenReader.js +10 -1
- package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -1
- package/dist/src/tokenReaders/TypeTokenReader.js +11 -1
- package/dist/src/tokenReaders/TypeTokenReader.js.map +1 -1
- package/dist/src/transformers/InsertQuerySelectValuesConverter.d.ts +18 -0
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js +122 -0
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
- package/dist/src/transformers/LinePrinter.d.ts +1 -0
- package/dist/src/transformers/LinePrinter.js +12 -0
- package/dist/src/transformers/LinePrinter.js.map +1 -1
- package/dist/src/transformers/OnelineFormattingHelper.d.ts +29 -0
- package/dist/src/transformers/OnelineFormattingHelper.js +99 -0
- package/dist/src/transformers/OnelineFormattingHelper.js.map +1 -0
- package/dist/src/transformers/QueryBuilder.d.ts +47 -13
- package/dist/src/transformers/QueryBuilder.js +433 -60
- package/dist/src/transformers/QueryBuilder.js.map +1 -1
- package/dist/src/transformers/SqlFormatter.d.ts +13 -1
- package/dist/src/transformers/SqlFormatter.js +20 -5
- package/dist/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/src/transformers/SqlPrinter.d.ts +47 -8
- package/dist/src/transformers/SqlPrinter.js +625 -72
- package/dist/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/src/types/Formatting.d.ts +8 -0
- package/dist/src/types/Formatting.js +3 -0
- package/dist/src/types/Formatting.js.map +1 -0
- package/dist/src/utils/ParserStringUtils.d.ts +6 -0
- package/dist/src/utils/ParserStringUtils.js +31 -0
- package/dist/src/utils/ParserStringUtils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -16,16 +16,25 @@ export const VALID_PRESETS = ['mysql', 'postgres', 'sqlserver', 'sqlite'];
|
|
|
16
16
|
*/
|
|
17
17
|
export class SqlFormatter {
|
|
18
18
|
constructor(options = {}) {
|
|
19
|
-
var _a, _b, _c;
|
|
19
|
+
var _a, _b, _c, _d, _e, _f;
|
|
20
20
|
const presetConfig = options.preset ? PRESETS[options.preset] : undefined;
|
|
21
21
|
if (options.preset && !presetConfig) {
|
|
22
22
|
throw new Error(`Invalid preset: ${options.preset}`); // Throw error for invalid preset
|
|
23
23
|
}
|
|
24
24
|
// Normalize identifier escape names into actual delimiter pairs before configuring the parser.
|
|
25
25
|
const resolvedIdentifierEscape = resolveIdentifierEscapeOption((_a = options.identifierEscape) !== null && _a !== void 0 ? _a : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.identifierEscape);
|
|
26
|
-
const parserOptions = Object.assign(Object.assign({}, presetConfig), { identifierEscape: resolvedIdentifierEscape !== null && resolvedIdentifierEscape !== void 0 ? resolvedIdentifierEscape : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.identifierEscape, parameterSymbol: (_b = options.parameterSymbol) !== null && _b !== void 0 ? _b : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterSymbol, parameterStyle: (_c = options.parameterStyle) !== null && _c !== void 0 ? _c : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterStyle });
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
const parserOptions = Object.assign(Object.assign({}, presetConfig), { identifierEscape: resolvedIdentifierEscape !== null && resolvedIdentifierEscape !== void 0 ? resolvedIdentifierEscape : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.identifierEscape, parameterSymbol: (_b = options.parameterSymbol) !== null && _b !== void 0 ? _b : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterSymbol, parameterStyle: (_c = options.parameterStyle) !== null && _c !== void 0 ? _c : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterStyle, castStyle: (_d = options.castStyle) !== null && _d !== void 0 ? _d : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.castStyle, joinConditionOrderByDeclaration: options.joinConditionOrderByDeclaration });
|
|
27
|
+
const constraintStyle = (_f = (_e = options.constraintStyle) !== null && _e !== void 0 ? _e : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.constraintStyle) !== null && _f !== void 0 ? _f : 'postgres';
|
|
28
|
+
const parserConfig = Object.assign(Object.assign({}, parserOptions), { constraintStyle });
|
|
29
|
+
this.parser = new SqlPrintTokenParser(Object.assign({}, parserConfig));
|
|
30
|
+
// Normalize legacy boolean comment export flags before configuring the printer.
|
|
31
|
+
const normalizedExportComment = options.exportComment === true
|
|
32
|
+
? 'full'
|
|
33
|
+
: options.exportComment === false
|
|
34
|
+
? 'none'
|
|
35
|
+
: options.exportComment;
|
|
36
|
+
const printerOptions = Object.assign(Object.assign({}, options), { exportComment: normalizedExportComment, parenthesesOneLine: options.parenthesesOneLine, betweenOneLine: options.betweenOneLine, valuesOneLine: options.valuesOneLine, joinOneLine: options.joinOneLine, caseOneLine: options.caseOneLine, subqueryOneLine: options.subqueryOneLine, indentNestedParentheses: options.indentNestedParentheses });
|
|
37
|
+
this.printer = new SqlPrinter(printerOptions);
|
|
29
38
|
}
|
|
30
39
|
/**
|
|
31
40
|
* Formats a SQL query string with the given parameters.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlFormatter.js","sourceRoot":"","sources":["../../../../src/transformers/SqlFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,OAAO,
|
|
1
|
+
{"version":3,"file":"SqlFormatter.js","sourceRoot":"","sources":["../../../../src/transformers/SqlFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { SqlPrintToken, SqlPrintTokenContainerType } from "../models/SqlPrintToken";
|
|
2
2
|
import { IndentCharOption, NewlineOption } from "./LinePrinter";
|
|
3
3
|
import { BaseFormattingOptions, WithClauseStyle, CommentStyle } from "./SqlFormatter";
|
|
4
|
+
import { CommaBreakStyle as HelperCommaBreakStyle } from "./OnelineFormattingHelper";
|
|
5
|
+
import { CommentExportMode } from "../types/Formatting";
|
|
4
6
|
/**
|
|
5
7
|
* CommaBreakStyle determines how commas are placed in formatted SQL output.
|
|
6
8
|
* - 'none': No line break for commas
|
|
7
9
|
* - 'before': Line break before comma
|
|
8
10
|
* - 'after': Line break after comma
|
|
9
11
|
*/
|
|
10
|
-
export type CommaBreakStyle =
|
|
12
|
+
export type CommaBreakStyle = HelperCommaBreakStyle;
|
|
11
13
|
/**
|
|
12
14
|
* AndBreakStyle determines how AND operators are placed in formatted SQL output.
|
|
13
15
|
* - 'none': No line break for AND
|
|
@@ -68,8 +70,8 @@ export declare class SqlPrinter {
|
|
|
68
70
|
orBreak: OrBreakStyle;
|
|
69
71
|
/** Keyword case style: 'none', 'upper' | 'lower' */
|
|
70
72
|
keywordCase: 'none' | 'upper' | 'lower';
|
|
71
|
-
/**
|
|
72
|
-
|
|
73
|
+
/** Comment export mode controlling how comments are emitted */
|
|
74
|
+
commentExportMode: CommentExportMode;
|
|
73
75
|
/** WITH clause formatting style (default: 'standard') */
|
|
74
76
|
withClauseStyle: WithClauseStyle;
|
|
75
77
|
/** Comment formatting style (default: 'block') */
|
|
@@ -92,6 +94,14 @@ export declare class SqlPrinter {
|
|
|
92
94
|
private subqueryOneLine;
|
|
93
95
|
/** Whether to indent nested parentheses when boolean groups get expanded */
|
|
94
96
|
private indentNestedParentheses;
|
|
97
|
+
/** Whether to keep INSERT column lists on one line */
|
|
98
|
+
private insertColumnsOneLine;
|
|
99
|
+
/** Whether to keep MERGE WHEN predicates on a single line */
|
|
100
|
+
private whenOneLine;
|
|
101
|
+
/** Tracks nesting depth while formatting MERGE WHEN predicate segments */
|
|
102
|
+
private mergeWhenPredicateDepth;
|
|
103
|
+
/** Shared helper for oneline-specific formatting decisions */
|
|
104
|
+
private onelineHelper;
|
|
95
105
|
/** Pending line comment that needs a forced newline before next token */
|
|
96
106
|
private pendingLineCommentBreak;
|
|
97
107
|
/** Accumulates lines when reconstructing multi-line block comments inside CommentBlocks */
|
|
@@ -110,7 +120,11 @@ export declare class SqlPrinter {
|
|
|
110
120
|
* const formatted = printer.print(sqlToken);
|
|
111
121
|
*/
|
|
112
122
|
print(token: SqlPrintToken, level?: number): string;
|
|
123
|
+
private resolveCommentExportMode;
|
|
124
|
+
private rendersInlineComments;
|
|
125
|
+
private shouldRenderComment;
|
|
113
126
|
private appendToken;
|
|
127
|
+
private shouldAlignExplainStatementChild;
|
|
114
128
|
private isCaseContext;
|
|
115
129
|
/**
|
|
116
130
|
* Determines if a token should be skipped during printing.
|
|
@@ -120,6 +134,12 @@ export declare class SqlPrinter {
|
|
|
120
134
|
private shouldSkipToken;
|
|
121
135
|
private applyKeywordCase;
|
|
122
136
|
private handleKeywordToken;
|
|
137
|
+
private ensureSpaceBeforeKeyword;
|
|
138
|
+
private ensureTrailingSpace;
|
|
139
|
+
/**
|
|
140
|
+
* Normalizes INSERT column list token text when one-line formatting is active.
|
|
141
|
+
*/
|
|
142
|
+
private tryAppendInsertClauseTokenText;
|
|
123
143
|
private handleCommaToken;
|
|
124
144
|
private handleAndOperatorToken;
|
|
125
145
|
private handleParenthesisToken;
|
|
@@ -135,16 +155,26 @@ export declare class SqlPrinter {
|
|
|
135
155
|
*/
|
|
136
156
|
private containsParenExpression;
|
|
137
157
|
private handleJoinClauseToken;
|
|
158
|
+
/**
|
|
159
|
+
* Decides whether the current container should collapse into a single line.
|
|
160
|
+
*/
|
|
161
|
+
private shouldFormatContainerAsOneline;
|
|
162
|
+
/**
|
|
163
|
+
* Detects an INSERT column list that must stay on a single line.
|
|
164
|
+
*/
|
|
165
|
+
private isInsertClauseOneline;
|
|
138
166
|
/**
|
|
139
167
|
* Handles space tokens with context-aware filtering.
|
|
140
168
|
* Skips spaces in CommentBlocks when in specific CTE modes to prevent duplication.
|
|
141
169
|
*/
|
|
142
170
|
private handleSpaceToken;
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
private
|
|
171
|
+
private findPreviousSignificantToken;
|
|
172
|
+
private shouldSkipSpaceBeforeParenthesis;
|
|
173
|
+
private shouldAlignCreateTableSelect;
|
|
174
|
+
private isCreateTableSpacingContext;
|
|
175
|
+
private isCreateTableNameToken;
|
|
176
|
+
private isCreateTableConstraintKeyword;
|
|
177
|
+
private isIdentifierAttachedToConstraint;
|
|
148
178
|
private printCommentToken;
|
|
149
179
|
private handleSmartCommentBlockToken;
|
|
150
180
|
private handleCommentBlockContainer;
|
|
@@ -158,6 +188,8 @@ export declare class SqlPrinter {
|
|
|
158
188
|
private getIndentString;
|
|
159
189
|
private sanitizeCommentLine;
|
|
160
190
|
private escapeCommentDelimiters;
|
|
191
|
+
private getCommentBaseIndentLevel;
|
|
192
|
+
private resolveCommentIndentLevel;
|
|
161
193
|
/**
|
|
162
194
|
* Handles commentNewline tokens with conditional newline behavior.
|
|
163
195
|
* In multiline mode (newline !== ' '), adds a newline after comments.
|
|
@@ -170,6 +202,8 @@ export declare class SqlPrinter {
|
|
|
170
202
|
* Skips in CTE modes to maintain one-line formatting.
|
|
171
203
|
*/
|
|
172
204
|
private shouldSkipCommentNewline;
|
|
205
|
+
private shouldAddNewlineBeforeLeadingComments;
|
|
206
|
+
private getLeadingCommentIndentLevel;
|
|
173
207
|
/**
|
|
174
208
|
* Determines if the printer is in oneliner mode.
|
|
175
209
|
* Oneliner mode uses single spaces instead of actual newlines.
|
|
@@ -189,6 +223,11 @@ export declare class SqlPrinter {
|
|
|
189
223
|
* Creates a unified oneline printer that formats everything as one line regardless of content type.
|
|
190
224
|
*/
|
|
191
225
|
private handleOnelineToken;
|
|
226
|
+
private getClauseBreakIndentLevel;
|
|
227
|
+
private isMergeActionContainer;
|
|
228
|
+
private shouldBreakAfterOpeningParen;
|
|
229
|
+
private shouldBreakBeforeClosingParen;
|
|
230
|
+
private shouldConvertSpaceToClauseBreak;
|
|
192
231
|
/**
|
|
193
232
|
* Creates a unified SqlPrinter instance configured for oneline formatting.
|
|
194
233
|
* Works for all oneline options: parentheses, BETWEEN, VALUES, JOIN, CASE, subqueries.
|