UNPKG

rawsql-ts

Version:

High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.

31 lines 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.joinLexemeValues = joinLexemeValues; const NO_SPACE_BEFORE = new Set([",", ")", "]", "}", ";"]); const NO_SPACE_AFTER = new Set(["(", "[", "{"]); /** * Join lexeme values into a whitespace-normalized SQL fragment. * Keeps punctuation tight while preserving spacing elsewhere. */ function joinLexemeValues(lexemes, start, end) { var _a, _b; let result = ""; for (let i = start; i < end; i++) { const current = lexemes[i]; if (!current) { continue; } if (result.length === 0) { result = current.value; continue; } const previous = (_b = (_a = lexemes[i - 1]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ""; const omitSpace = NO_SPACE_BEFORE.has(current.value) || NO_SPACE_AFTER.has(previous) || current.value === "." || previous === "."; result += omitSpace ? current.value : ` ${current.value}`; } return result; } //# sourceMappingURL=ParserStringUtils.js.map