/**
 * Copyright (c) Nicolas Gallagher.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @noflow
 */

const CSS_UNIT_RE = /^[+-]?\d*(?:\.\d+)?(?:[Ee][+-]?\d+)?(%|\w*)/

const getUnit = (str) => str.match(CSS_UNIT_RE)[1]

const isNumeric = (n) => {
  return !isNaN(parseFloat(n)) && isFinite(n)
}

export const multiplyStyleLengthValue = (value: string | number, multiple) => {
  if (typeof value === 'string') {
    const number = parseFloat(value) * multiple
    const unit = getUnit(value)
    return `${number}${unit}`
  } else if (isNumeric(value)) {
    return value * multiple
  }
}
