async function analyzeVariables()

in script/analyze-variables.js [21:42]


async function analyzeVariables(fileName) {
  const contents = fs.readFileSync(fileName, 'utf8')

  const result = await processor.process(contents, {from: fileName, map: false, syntax})
  for (const message of result.messages) {
    if (message.plugin === 'postcss-simple-vars' && message.type === 'variable') {
      if (!result.variables[`$${message.name}`].values.includes(message.value)) {
        result.variables[`$${message.name}`].values.push(message.value)
      }
      let computed = message.value
      try {
        const c = `--temp-property: calc(${message.value})`.replace('round(', '(')
        computed = postcss().use(calc()).process(c).css
        computed = computed.replace('--temp-property: ', '')
      } catch (e) {
        // Couldn't calculate because value might not be a number
      }
      result.variables[`$${message.name}`].computed = computed
    }
  }
  return result.variables
}