Files
react-native-devtools-frontend/node_modules/postcss-ordered-values/src/lib/getValue.js
T
Jack Franklin a5fd0a412d Add cssnano
The CSS minifier we currently use (clean-css) is not maintained and
lacks support for new CSS features. CSSNano is a replacement that
supports features we need (primarily container queries).

This CL only adds the relevant dependencies, and does not use it. I will
do that (and remove clean-css) in a follow-up.

Bug: 1399763
Change-Id: I899ecc4482164404dd5ac2fd13f92fb797978e29
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/4092305
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Auto-Submit: Jack Franklin <jacktfranklin@chromium.org>
2022-12-09 12:08:23 +00:00

37 lines
876 B
JavaScript

'use strict';
const { stringify } = require('postcss-value-parser');
/**
* @param {import('postcss-value-parser').Node[][]} values
* @return {string}
*/
module.exports = function getValue(values) {
return stringify(flatten(values));
};
/**
* @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()) {
arg.forEach((val, idx) => {
if (
idx === arg.length - 1 &&
index === values.length - 1 &&
val.type === 'space'
) {
return;
}
nodes.push(val);
});
if (index !== values.length - 1) {
nodes[nodes.length - 1].type = 'div';
nodes[nodes.length - 1].value = ',';
}
}
return nodes;
}