rawsql-ts
Version:
High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
143 lines • 9.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SqlPrintToken = exports.SqlPrintTokenContainerType = exports.SqlPrintTokenType = void 0;
var SqlPrintTokenType;
(function (SqlPrintTokenType) {
SqlPrintTokenType[SqlPrintTokenType["container"] = 0] = "container";
SqlPrintTokenType[SqlPrintTokenType["keyword"] = 1] = "keyword";
SqlPrintTokenType[SqlPrintTokenType["value"] = 2] = "value";
SqlPrintTokenType[SqlPrintTokenType["comma"] = 3] = "comma";
SqlPrintTokenType[SqlPrintTokenType["parenthesis"] = 4] = "parenthesis";
SqlPrintTokenType[SqlPrintTokenType["operator"] = 5] = "operator";
SqlPrintTokenType[SqlPrintTokenType["comment"] = 6] = "comment";
SqlPrintTokenType[SqlPrintTokenType["parameter"] = 7] = "parameter";
SqlPrintTokenType[SqlPrintTokenType["dot"] = 8] = "dot";
SqlPrintTokenType[SqlPrintTokenType["type"] = 9] = "type";
SqlPrintTokenType[SqlPrintTokenType["space"] = 10] = "space";
SqlPrintTokenType[SqlPrintTokenType["argumentSplitter"] = 11] = "argumentSplitter";
SqlPrintTokenType[SqlPrintTokenType["commentNewline"] = 12] = "commentNewline";
})(SqlPrintTokenType || (exports.SqlPrintTokenType = SqlPrintTokenType = {}));
// Enum for container type, used for formatting and context
var SqlPrintTokenContainerType;
(function (SqlPrintTokenContainerType) {
SqlPrintTokenContainerType["ColumnReference"] = "ColumnReference";
SqlPrintTokenContainerType["LiteralValue"] = "LiteralValue";
SqlPrintTokenContainerType["IdentifierString"] = "IdentifierString";
SqlPrintTokenContainerType["InlineQuery"] = "InlineQuery";
SqlPrintTokenContainerType["StringSpecifierExpression"] = "StringSpecifierExpression";
SqlPrintTokenContainerType["None"] = "";
SqlPrintTokenContainerType["ValueList"] = "ValueList";
SqlPrintTokenContainerType["OrderByItem"] = "OrderByItem";
SqlPrintTokenContainerType["FunctionCall"] = "FunctionCall";
SqlPrintTokenContainerType["UnaryExpression"] = "UnaryExpression";
SqlPrintTokenContainerType["BinaryExpression"] = "BinaryExpression";
SqlPrintTokenContainerType["SwitchCaseArgument"] = "SwitchCaseArgument";
SqlPrintTokenContainerType["ElseClause"] = "ElseClause";
SqlPrintTokenContainerType["CaseKeyValuePair"] = "CaseKeyValuePair";
SqlPrintTokenContainerType["CaseThenValue"] = "CaseThenValue";
SqlPrintTokenContainerType["CaseElseValue"] = "CaseElseValue";
SqlPrintTokenContainerType["ParenExpression"] = "ParenExpression";
SqlPrintTokenContainerType["CastExpression"] = "CastExpression";
SqlPrintTokenContainerType["CaseExpression"] = "CaseExpression";
SqlPrintTokenContainerType["ArrayExpression"] = "ArrayExpression";
SqlPrintTokenContainerType["BetweenExpression"] = "BetweenExpression";
SqlPrintTokenContainerType["TypeValue"] = "TypeValue";
SqlPrintTokenContainerType["TupleExpression"] = "TupleExpression";
SqlPrintTokenContainerType["WindowFrameExpression"] = "WindowFrameExpression";
SqlPrintTokenContainerType["SelectItem"] = "SelectItem";
SqlPrintTokenContainerType["SelectClause"] = "SelectClause";
SqlPrintTokenContainerType["DistinctOn"] = "DistinctOn";
SqlPrintTokenContainerType["SourceExpression"] = "SourceExpression";
SqlPrintTokenContainerType["FromClause"] = "FromClause";
SqlPrintTokenContainerType["JoinClause"] = "JoinClause";
SqlPrintTokenContainerType["JoinOnClause"] = "JoinOnClause";
SqlPrintTokenContainerType["JoinUsingClause"] = "JoinUsingClause";
SqlPrintTokenContainerType["FunctionSource"] = "FunctionSource";
SqlPrintTokenContainerType["SourceAliasExpression"] = "SourceAliasExpression";
SqlPrintTokenContainerType["RawString"] = "RawString";
SqlPrintTokenContainerType["QualifiedName"] = "QualifiedName";
SqlPrintTokenContainerType["WhereClause"] = "WhereClause";
SqlPrintTokenContainerType["SimpleSelectQuery"] = "SimpleSelectQuery";
SqlPrintTokenContainerType["OrderByClause"] = "OrderByClause";
SqlPrintTokenContainerType["GroupByClause"] = "GroupByClause";
SqlPrintTokenContainerType["HavingClause"] = "HavingClause";
SqlPrintTokenContainerType["SubQuerySource"] = "SubQuerySource";
SqlPrintTokenContainerType["PartitionByClause"] = "PartitionByClause";
SqlPrintTokenContainerType["WindowFrameClause"] = "WindowFrameClause";
SqlPrintTokenContainerType["LimitClause"] = "LimitClause";
SqlPrintTokenContainerType["OffsetClause"] = "OffsetClause";
SqlPrintTokenContainerType["ForClause"] = "ForClause";
SqlPrintTokenContainerType["WindowClause"] = "WindowClause";
SqlPrintTokenContainerType["BinarySelectQueryOperator"] = "BinarySelectQueryOperator";
SqlPrintTokenContainerType["Values"] = "Values";
SqlPrintTokenContainerType["ValuesQuery"] = "ValuesQuery";
SqlPrintTokenContainerType["WithClause"] = "WithClause";
SqlPrintTokenContainerType["CommonTable"] = "CommonTable";
SqlPrintTokenContainerType["WindowFrameSpec"] = "WindowFrameSpec";
SqlPrintTokenContainerType["WindowFrameBoundStatic"] = "WindowFrameBoundStatic";
SqlPrintTokenContainerType["WindowFrameBoundaryValue"] = "WindowFrameBoundaryValue";
SqlPrintTokenContainerType["FetchClause"] = "FetchClause";
SqlPrintTokenContainerType["FetchExpression"] = "FetchExpression";
SqlPrintTokenContainerType["InsertQuery"] = "InsertQuery";
SqlPrintTokenContainerType["InsertClause"] = "InsertClause";
SqlPrintTokenContainerType["UpdateQuery"] = "UpdateQuery";
SqlPrintTokenContainerType["UpdateClause"] = "UpdateClause";
SqlPrintTokenContainerType["DeleteQuery"] = "DeleteQuery";
SqlPrintTokenContainerType["DeleteClause"] = "DeleteClause";
SqlPrintTokenContainerType["UsingClause"] = "UsingClause";
SqlPrintTokenContainerType["ReturningClause"] = "ReturningClause";
SqlPrintTokenContainerType["SetClause"] = "SetClause";
SqlPrintTokenContainerType["SetClauseItem"] = "SetClauseItem";
SqlPrintTokenContainerType["CreateTableQuery"] = "CreateTableQuery";
SqlPrintTokenContainerType["CreateTableDefinition"] = "CreateTableDefinition";
SqlPrintTokenContainerType["TableColumnDefinition"] = "TableColumnDefinition";
SqlPrintTokenContainerType["ColumnConstraintDefinition"] = "ColumnConstraintDefinition";
SqlPrintTokenContainerType["TableConstraintDefinition"] = "TableConstraintDefinition";
SqlPrintTokenContainerType["ReferenceDefinition"] = "ReferenceDefinition";
SqlPrintTokenContainerType["CreateIndexStatement"] = "CreateIndexStatement";
SqlPrintTokenContainerType["IndexColumnList"] = "IndexColumnList";
SqlPrintTokenContainerType["IndexColumnDefinition"] = "IndexColumnDefinition";
SqlPrintTokenContainerType["CreateSequenceStatement"] = "CreateSequenceStatement";
SqlPrintTokenContainerType["AlterSequenceStatement"] = "AlterSequenceStatement";
SqlPrintTokenContainerType["SequenceOptionList"] = "SequenceOptionList";
SqlPrintTokenContainerType["SequenceOptionClause"] = "SequenceOptionClause";
SqlPrintTokenContainerType["DropTableStatement"] = "DropTableStatement";
SqlPrintTokenContainerType["DropIndexStatement"] = "DropIndexStatement";
SqlPrintTokenContainerType["AlterTableStatement"] = "AlterTableStatement";
SqlPrintTokenContainerType["AlterTableAddConstraint"] = "AlterTableAddConstraint";
SqlPrintTokenContainerType["AlterTableDropConstraint"] = "AlterTableDropConstraint";
SqlPrintTokenContainerType["AlterTableAddColumn"] = "AlterTableAddColumn";
SqlPrintTokenContainerType["AlterTableDropColumn"] = "AlterTableDropColumn";
SqlPrintTokenContainerType["AlterTableAlterColumnDefault"] = "AlterTableAlterColumnDefault";
SqlPrintTokenContainerType["DropConstraintStatement"] = "DropConstraintStatement";
SqlPrintTokenContainerType["ExplainStatement"] = "ExplainStatement";
SqlPrintTokenContainerType["ExplainOption"] = "ExplainOption";
SqlPrintTokenContainerType["AnalyzeStatement"] = "AnalyzeStatement";
SqlPrintTokenContainerType["MergeQuery"] = "MergeQuery";
SqlPrintTokenContainerType["MergeWhenClause"] = "MergeWhenClause";
SqlPrintTokenContainerType["MergeUpdateAction"] = "MergeUpdateAction";
SqlPrintTokenContainerType["MergeDeleteAction"] = "MergeDeleteAction";
SqlPrintTokenContainerType["MergeInsertAction"] = "MergeInsertAction";
SqlPrintTokenContainerType["MergeDoNothingAction"] = "MergeDoNothingAction";
SqlPrintTokenContainerType["CommentBlock"] = "CommentBlock";
// Add more as needed
})(SqlPrintTokenContainerType || (exports.SqlPrintTokenContainerType = SqlPrintTokenContainerType = {}));
class SqlPrintToken {
constructor(type, text = '', containerType = SqlPrintTokenContainerType.None) {
/**
* Child tokens that belong to this container.
*/
this.innerTokens = [];
this.type = type;
this.text = text;
this.containerType = containerType;
}
markAsHeaderComment() {
if (this.containerType !== SqlPrintTokenContainerType.CommentBlock) {
throw new Error('Header comment flag must only be applied to CommentBlock containers.');
}
this.isHeaderComment = true;
}
}
exports.SqlPrintToken = SqlPrintToken;
//# sourceMappingURL=SqlPrintToken.js.map