UNPKG

postcss-ordered-values

Version:

Ensure values are ordered consistently in your CSS.

39 lines (35 loc) 926 B
import postcssValueParser from 'postcss-value-parser'; const { stringify } = postcssValueParser; /** * @param {import('postcss-value-parser').Node[][]} values * @return {import('postcss-value-parser').Node[]} */ function flatten(values) { /** @type {import('postcss-value-parser').Node[]} */ const nodes = []; for (const [index, arg] of values.entries()) { for (const [idx, val] of arg.entries()) { if ( idx === arg.length - 1 && index === values.length - 1 && val.type === 'space' ) { continue; } nodes.push(val); } if (index !== values.length - 1) { nodes[nodes.length - 1].type = 'div'; nodes[nodes.length - 1].value = ','; } } return nodes; } /** * @param {import('postcss-value-parser').Node[][]} values * @return {string} */ function getValue(values) { return stringify(flatten(values)); } export default getValue;