Files
react-native-devtools-frontend/node_modules/stylelint/lib/utils/getUnitFromValueNode.js
T
Mathias Bynens 79e2cf0633 Add stylelint dependency
This also adds CC-BY-4.0 to the list of accepted licenses.

DISABLE_THIRD_PARTY_CHECK=update dependencies

Bug: chromium:1083142
Change-Id: I8612de2fba52dae32eeb71af79d5aacfde52142b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2220097
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
2020-06-11 06:20:04 +00:00

50 lines
942 B
JavaScript

'use strict';
const blurInterpolation = require('./blurInterpolation');
const isStandardSyntaxValue = require('./isStandardSyntaxValue');
const valueParser = require('postcss-value-parser');
/**
* Get unit from value node
*
* Returns `null` if the unit is not found.
*
* @param {import('postcss-value-parser').Node} node
*
* @returns {string | null}
*/
module.exports = function (node) {
if (!node || !node.value) {
return null;
}
// Ignore non-word nodes
if (node.type !== 'word') {
return null;
}
// Ignore non standard syntax
if (!isStandardSyntaxValue(node.value)) {
return null;
}
// Ignore HEX
if (node.value.startsWith('#')) {
return null;
}
// Remove non standard stuff
const value = blurInterpolation(node.value, '')
// ignore hack unit
.replace('\\0', '')
.replace('\\9', '');
const parsedUnit = valueParser.unit(value);
if (!parsedUnit) {
return null;
}
return parsedUnit.unit;
};