Home / Function/ recursivelyDecodeArbitraryValues() — tailwindcss Function Reference

recursivelyDecodeArbitraryValues() — tailwindcss Function Reference

Architecture documentation for the recursivelyDecodeArbitraryValues() function in decode-arbitrary-value.ts from the tailwindcss codebase.

Function typescript Oxide Scanner calls 2 called by 1

Entity Profile

Dependency Diagram

graph TD
  d07c9a91_e1f5_792b_d5fc_9e0b6aeb8601["recursivelyDecodeArbitraryValues()"]
  7df4d001_f01e_1e05_13ee_91edb05bf1f8["decode-arbitrary-value.ts"]
  d07c9a91_e1f5_792b_d5fc_9e0b6aeb8601 -->|defined in| 7df4d001_f01e_1e05_13ee_91edb05bf1f8
  8e4634e2_7c1f_b6c1_18b2_bd8f97be3651["decodeArbitraryValue()"]
  8e4634e2_7c1f_b6c1_18b2_bd8f97be3651 -->|calls| d07c9a91_e1f5_792b_d5fc_9e0b6aeb8601
  c54f6c32_7c33_b742_3596_7fd430089201["convertUnderscoresToWhitespace()"]
  d07c9a91_e1f5_792b_d5fc_9e0b6aeb8601 -->|calls| c54f6c32_7c33_b742_3596_7fd430089201
  30edf25d_4fa8_9a3e_c697_ce1d990fec9a["never()"]
  d07c9a91_e1f5_792b_d5fc_9e0b6aeb8601 -->|calls| 30edf25d_4fa8_9a3e_c697_ce1d990fec9a
  style d07c9a91_e1f5_792b_d5fc_9e0b6aeb8601 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/tailwindcss/src/utils/decode-arbitrary-value.ts lines 48–89

function recursivelyDecodeArbitraryValues(ast: ValueParser.ValueAstNode[]) {
  for (let node of ast) {
    switch (node.kind) {
      case 'function': {
        if (node.value === 'url' || node.value.endsWith('_url')) {
          // Don't decode underscores in url() but do decode the function name
          node.value = convertUnderscoresToWhitespace(node.value)
          break
        }

        if (
          node.value === 'var' ||
          node.value.endsWith('_var') ||
          node.value === 'theme' ||
          node.value.endsWith('_theme')
        ) {
          node.value = convertUnderscoresToWhitespace(node.value)
          for (let i = 0; i < node.nodes.length; i++) {
            // Don't decode underscores to spaces in the first argument of var()
            if (i == 0 && node.nodes[i].kind === 'word') {
              node.nodes[i].value = convertUnderscoresToWhitespace(node.nodes[i].value, true)
              continue
            }
            recursivelyDecodeArbitraryValues([node.nodes[i]])
          }
          break
        }

        node.value = convertUnderscoresToWhitespace(node.value)
        recursivelyDecodeArbitraryValues(node.nodes)
        break
      }
      case 'separator':
      case 'word': {
        node.value = convertUnderscoresToWhitespace(node.value)
        break
      }
      default:
        never(node)
    }
  }
}

Domain

Subdomains

Frequently Asked Questions

What does recursivelyDecodeArbitraryValues() do?
recursivelyDecodeArbitraryValues() is a function in the tailwindcss codebase, defined in packages/tailwindcss/src/utils/decode-arbitrary-value.ts.
Where is recursivelyDecodeArbitraryValues() defined?
recursivelyDecodeArbitraryValues() is defined in packages/tailwindcss/src/utils/decode-arbitrary-value.ts at line 48.
What does recursivelyDecodeArbitraryValues() call?
recursivelyDecodeArbitraryValues() calls 2 function(s): convertUnderscoresToWhitespace, never.
What calls recursivelyDecodeArbitraryValues()?
recursivelyDecodeArbitraryValues() is called by 1 function(s): decodeArbitraryValue.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free