/* @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
}
