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