UNPKG

sql-formatter

Version:

Format whitespace in a SQL query to make it more readable

99 lines 4.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isLogicalOperator = exports.isReserved = exports.isToken = exports.testToken = exports.EOF_TOKEN = exports.createEofToken = exports.TokenType = void 0; /** Token type enum for all possible Token categories */ var TokenType; (function (TokenType) { TokenType["QUOTED_IDENTIFIER"] = "QUOTED_IDENTIFIER"; TokenType["IDENTIFIER"] = "IDENTIFIER"; TokenType["STRING"] = "STRING"; TokenType["VARIABLE"] = "VARIABLE"; TokenType["RESERVED_DATA_TYPE"] = "RESERVED_DATA_TYPE"; TokenType["RESERVED_PARAMETERIZED_DATA_TYPE"] = "RESERVED_PARAMETERIZED_DATA_TYPE"; TokenType["RESERVED_KEYWORD"] = "RESERVED_KEYWORD"; TokenType["RESERVED_FUNCTION_NAME"] = "RESERVED_FUNCTION_NAME"; TokenType["RESERVED_PHRASE"] = "RESERVED_PHRASE"; TokenType["RESERVED_SET_OPERATION"] = "RESERVED_SET_OPERATION"; TokenType["RESERVED_CLAUSE"] = "RESERVED_CLAUSE"; TokenType["RESERVED_SELECT"] = "RESERVED_SELECT"; TokenType["RESERVED_JOIN"] = "RESERVED_JOIN"; TokenType["ARRAY_IDENTIFIER"] = "ARRAY_IDENTIFIER"; TokenType["ARRAY_KEYWORD"] = "ARRAY_KEYWORD"; TokenType["CASE"] = "CASE"; TokenType["END"] = "END"; TokenType["WHEN"] = "WHEN"; TokenType["ELSE"] = "ELSE"; TokenType["THEN"] = "THEN"; TokenType["LIMIT"] = "LIMIT"; TokenType["BETWEEN"] = "BETWEEN"; TokenType["AND"] = "AND"; TokenType["OR"] = "OR"; TokenType["XOR"] = "XOR"; TokenType["OPERATOR"] = "OPERATOR"; TokenType["COMMA"] = "COMMA"; TokenType["ASTERISK"] = "ASTERISK"; TokenType["PROPERTY_ACCESS_OPERATOR"] = "PROPERTY_ACCESS_OPERATOR"; TokenType["OPEN_PAREN"] = "OPEN_PAREN"; TokenType["CLOSE_PAREN"] = "CLOSE_PAREN"; TokenType["LINE_COMMENT"] = "LINE_COMMENT"; TokenType["BLOCK_COMMENT"] = "BLOCK_COMMENT"; // Text between /* sql-formatter-disable */ and /* sql-formatter-enable */ TokenType["DISABLE_COMMENT"] = "DISABLE_COMMENT"; TokenType["NUMBER"] = "NUMBER"; TokenType["NAMED_PARAMETER"] = "NAMED_PARAMETER"; TokenType["QUOTED_PARAMETER"] = "QUOTED_PARAMETER"; TokenType["NUMBERED_PARAMETER"] = "NUMBERED_PARAMETER"; TokenType["POSITIONAL_PARAMETER"] = "POSITIONAL_PARAMETER"; TokenType["CUSTOM_PARAMETER"] = "CUSTOM_PARAMETER"; TokenType["DELIMITER"] = "DELIMITER"; TokenType["EOF"] = "EOF"; })(TokenType = exports.TokenType || (exports.TokenType = {})); /** Creates EOF token positioned at given location */ const createEofToken = (index) => ({ type: TokenType.EOF, raw: '«EOF»', text: '«EOF»', start: index, }); exports.createEofToken = createEofToken; /** * For use as a "missing token" * e.g. in lookAhead and lookBehind to avoid dealing with null values */ exports.EOF_TOKEN = (0, exports.createEofToken)(Infinity); /** Checks if two tokens are equivalent */ const testToken = (compareToken) => (token) => token.type === compareToken.type && token.text === compareToken.text; exports.testToken = testToken; /** Util object that allows for easy checking of Reserved Keywords */ exports.isToken = { ARRAY: (0, exports.testToken)({ text: 'ARRAY', type: TokenType.RESERVED_DATA_TYPE }), BY: (0, exports.testToken)({ text: 'BY', type: TokenType.RESERVED_KEYWORD }), SET: (0, exports.testToken)({ text: 'SET', type: TokenType.RESERVED_CLAUSE }), STRUCT: (0, exports.testToken)({ text: 'STRUCT', type: TokenType.RESERVED_DATA_TYPE }), WINDOW: (0, exports.testToken)({ text: 'WINDOW', type: TokenType.RESERVED_CLAUSE }), VALUES: (0, exports.testToken)({ text: 'VALUES', type: TokenType.RESERVED_CLAUSE }), }; /** Checks if token is any Reserved Keyword or Clause */ const isReserved = (type) => type === TokenType.RESERVED_DATA_TYPE || type === TokenType.RESERVED_KEYWORD || type === TokenType.RESERVED_FUNCTION_NAME || type === TokenType.RESERVED_PHRASE || type === TokenType.RESERVED_CLAUSE || type === TokenType.RESERVED_SELECT || type === TokenType.RESERVED_SET_OPERATION || type === TokenType.RESERVED_JOIN || type === TokenType.ARRAY_KEYWORD || type === TokenType.CASE || type === TokenType.END || type === TokenType.WHEN || type === TokenType.ELSE || type === TokenType.THEN || type === TokenType.LIMIT || type === TokenType.BETWEEN || type === TokenType.AND || type === TokenType.OR || type === TokenType.XOR; exports.isReserved = isReserved; const isLogicalOperator = (type) => type === TokenType.AND || type === TokenType.OR || type === TokenType.XOR; exports.isLogicalOperator = isLogicalOperator; //# sourceMappingURL=token.js.map