stylelint
Version:
A mighty CSS linter that helps you avoid errors and enforce conventions.
68 lines (57 loc) • 1.33 kB
JavaScript
// NOTICE: This file is generated by Rollup. To modify it,
// please instead edit the ESM counterpart and rebuild with Rollup (npm run build).
;
const valueParser = require('postcss-value-parser');
const blurInterpolation = require('./blurInterpolation.cjs');
const isStandardSyntaxValue = require('./isStandardSyntaxValue.cjs');
/**
* Get Dimension from value node;
* `unit` and `number` return null if neither is found
*
* @param {import('postcss-value-parser').Node} node
*
* @returns {{unit: null, number: null} | valueParser.Dimension}
*/
function getDimension(node) {
if (!node || !node.value) {
return {
unit: null,
number: null,
};
}
// Ignore non-word nodes
if (node.type !== 'word') {
return {
unit: null,
number: null,
};
}
// Ignore non standard syntax
if (!isStandardSyntaxValue(node.value)) {
return {
unit: null,
number: null,
};
}
// Ignore HEX
if (node.value.startsWith('#')) {
return {
unit: null,
number: 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 {
unit: null,
number: null,
};
}
return parsedUnit;
}
module.exports = getDimension;