19 lines
674 B
TypeScript
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
|
|
}
|