/** * @typedef {import('hast').Nodes} Nodes */ // HTML whitespace expression. // See . const re = /[ \t\n\f\r]/g /** * Check if the given value is *inter-element whitespace*. * * @param {Nodes | string} thing * Thing to check (`Node` or `string`). * @returns {boolean} * Whether the `value` is inter-element whitespace (`boolean`): consisting of * zero or more of space, tab (`\t`), line feed (`\n`), carriage return * (`\r`), or form feed (`\f`); if a node is passed it must be a `Text` node, * whose `value` field is checked. */ export function whitespace(thing) { return typeof thing === 'object' ? thing.type === 'text' ? empty(thing.value) : false : empty(thing) } /** * @param {string} value * @returns {boolean} */ function empty(value) { return value.replace(re, '') === '' }