19 lines
674 B
TypeScript

export const WHITESPACE_REGEXP = /:whitespace(?:=(all|boundary|trailing)?)?\b/
export const NO_WHITESPACE_REGEXP = /:no-whitespace\b/
export type WhitespacePosition = 'all' | 'boundary' | 'trailing'
export function resolveWhitespacePosition(info: string, defaultPosition?: boolean | WhitespacePosition): WhitespacePosition | false {
if (NO_WHITESPACE_REGEXP.test(info)) {
return false
}
const position = defaultPosition === true ? undefined : defaultPosition
const match = info.match(WHITESPACE_REGEXP)
if (match) {
return (match[1] || position || 'all') as WhitespacePosition
}
return defaultPosition === true ? 'all' : defaultPosition ?? false
}