UNPKG

xy-sql-formatter

Version:

Format whitespace in a SQL query to make it more readable

22 lines (15 loc) 913 B
import { PrefixedQuoteType } from './TokenizerOptions.js'; // Escapes regex special chars export const escapeRegExp = (string: string) => string.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&'); export const WHITESPACE_REGEX = /\s+/uy; export const patternToRegex = (pattern: string): RegExp => new RegExp(`(?:${pattern})`, 'uy'); // Converts "ab" to "[Aa][Bb]" export const toCaseInsensitivePattern = (prefix: string): string => prefix .split('') .map(char => (/ /gu.test(char) ? '\\s+' : `[${char.toUpperCase()}${char.toLowerCase()}]`)) .join(''); export const withDashes = (pattern: string): string => pattern + '(?:-' + pattern + ')*'; // Converts ["a", "b"] to "(?:[Aa]|[Bb]|)" or "(?:[Aa]|[Bb])" when required = true export const prefixesPattern = ({ prefixes, requirePrefix }: PrefixedQuoteType): string => `(?:${prefixes.map(toCaseInsensitivePattern).join('|')}${requirePrefix ? '' : '|'})`;