mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-02 18:11:04 +08:00
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>
37 lines
876 B
JavaScript
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;
|
|
}
|