12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- '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;
- };
|