text: // @flow
  import PolishedError from '../internalHelpers/_errors'
  
  const cssVariableRegex = /--[\S]*/g
  
  /**
   * Fetches the value of a passed CSS Variable.
   *
   * Passthrough can be enabled (off by default) for when you are unsure of the input and want non-variable values to be returned instead of an error.
   *
   * @example
   * // Styles as object usage
   * const styles = {
   *   'background': cssVar('--background-color'),
   * }
   *
   * // styled-components usage
   * const div = styled.div`
   *   background: ${cssVar('--background-color')};
   * `
   *
   * // CSS in JS Output
   *
   * element {
   *   'background': 'red'
   * }
   */
  export default function cssVar(
    cssVariable: string,
    passThrough?: boolean,
  ): string | number {
    if (!cssVariable || !cssVariable.match(cssVariableRegex)) {
      if (passThrough) return cssVariable
      throw new PolishedError(73)
    }
  
    let variableValue
  
    /* eslint-disable */
    /* istanbul ignore next */
    if (document.documentElement !== null) {
      variableValue = getComputedStyle(document.documentElement).getPropertyValue(
        cssVariable,
      )
    }
    /* eslint-enable */
  
    if (variableValue) {
      return variableValue
    } else {
      throw new PolishedError(74)
    }
  }
  