mirror of
https://github.com/thangisme/notes.git
synced 2024-11-01 03:27:29 -04:00
37 lines
847 B
JavaScript
37 lines
847 B
JavaScript
/* @flow */
|
|
"use strict"
|
|
|
|
const blurInterpolation = require("./blurInterpolation")
|
|
const _ = require("lodash")
|
|
const isStandardSyntaxValue = require("./isStandardSyntaxValue")
|
|
const valueParser = require("postcss-value-parser")
|
|
|
|
/**
|
|
* Get unit from value node
|
|
*
|
|
* Returns `null` if the unit is not found.
|
|
*/
|
|
module.exports = function (node/*: Object*/)/*: ?string*/ {
|
|
if (!node || node && !node.value) {
|
|
return null
|
|
}
|
|
|
|
const value = blurInterpolation(node.value, "")
|
|
// ignore hack unit
|
|
.replace("\\0", "").replace("\\9", "")
|
|
// ignore decimal place
|
|
.replace(".", "")
|
|
|
|
if (node.type !== "word" || !isStandardSyntaxValue(value) || !_.isFinite(parseInt(value)) || node.value[0] === "#") {
|
|
return null
|
|
}
|
|
|
|
const parsedUnit = valueParser.unit(value)
|
|
|
|
if (!parsedUnit) {
|
|
return null
|
|
}
|
|
|
|
return parsedUnit.unit
|
|
}
|