'use strict'; const { unit } = require('postcss-value-parser'); /** * @param {string} value * @return {boolean} */ function hasUnit(value) { const parsedVal = unit(value); return parsedVal && parsedVal.unit !== ''; } /** * @param {import('postcss-value-parser').ParsedValue} columns * @return {import('postcss-value-parser').ParsedValue | string} */ module.exports = (columns) => { /** @type {string[]} */ const widths = []; /** @type {string[]} */ const other = []; columns.walk((node) => { const { type, value } = node; if (type === 'word') { if (hasUnit(value)) { widths.push(value); } else { other.push(value); } } }); // only transform if declaration is not invalid or a single value if (other.length === 1 && widths.length === 1) { return `${widths[0].trimStart()} ${other[0].trimStart()}`; } return columns; };