Home / Function/ cloneAstNode() — tailwindcss Function Reference

cloneAstNode() — tailwindcss Function Reference

Architecture documentation for the cloneAstNode() function in ast.ts from the tailwindcss codebase.

Entity Profile

Dependency Diagram

graph TD
  dbd80fa4_4b36_fb8e_fb6e_f2aec789aa6b["cloneAstNode()"]
  b9cbffa4_c352_cf3c_268f_cbb174fb3a47["ast.ts"]
  dbd80fa4_4b36_fb8e_fb6e_f2aec789aa6b -->|defined in| b9cbffa4_c352_cf3c_268f_cbb174fb3a47
  7ad9d996_c0ff_47f5_d131_ab2ead06506e["substituteAtApply()"]
  7ad9d996_c0ff_47f5_d131_ab2ead06506e -->|calls| dbd80fa4_4b36_fb8e_fb6e_f2aec789aa6b
  2fa686dc_af14_1b06_e253_cd3be040c4fd["createUtilityPropertiesCache()"]
  2fa686dc_af14_1b06_e253_cd3be040c4fd -->|calls| dbd80fa4_4b36_fb8e_fb6e_f2aec789aa6b
  1b775438_02d9_5178_6806_405c3c0b5328["createCssUtility()"]
  1b775438_02d9_5178_6806_405c3c0b5328 -->|calls| dbd80fa4_4b36_fb8e_fb6e_f2aec789aa6b
  style dbd80fa4_4b36_fb8e_fb6e_f2aec789aa6b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/tailwindcss/src/ast.ts lines 126–186

export function cloneAstNode<T extends AstNode>(node: T): T {
  switch (node.kind) {
    case 'rule':
      return {
        kind: node.kind,
        selector: node.selector,
        nodes: node.nodes.map(cloneAstNode),
        src: node.src,
        dst: node.dst,
      } satisfies StyleRule as T

    case 'at-rule':
      return {
        kind: node.kind,
        name: node.name,
        params: node.params,
        nodes: node.nodes.map(cloneAstNode),
        src: node.src,
        dst: node.dst,
      } satisfies AtRule as T

    case 'at-root':
      return {
        kind: node.kind,
        nodes: node.nodes.map(cloneAstNode),
        src: node.src,
        dst: node.dst,
      } satisfies AtRoot as T

    case 'context':
      return {
        kind: node.kind,
        context: { ...node.context },
        nodes: node.nodes.map(cloneAstNode),
        src: node.src,
        dst: node.dst,
      } satisfies Context as T

    case 'declaration':
      return {
        kind: node.kind,
        property: node.property,
        value: node.value,
        important: node.important,
        src: node.src,
        dst: node.dst,
      } satisfies Declaration as T

    case 'comment':
      return {
        kind: node.kind,
        value: node.value,
        src: node.src,
        dst: node.dst,
      } satisfies Comment as T

    default:
      node satisfies never
      throw new Error(`Unknown node kind: ${(node as any).kind}`)
  }
}

Domain

Subdomains

Frequently Asked Questions

What does cloneAstNode() do?
cloneAstNode() is a function in the tailwindcss codebase, defined in packages/tailwindcss/src/ast.ts.
Where is cloneAstNode() defined?
cloneAstNode() is defined in packages/tailwindcss/src/ast.ts at line 126.
What calls cloneAstNode()?
cloneAstNode() is called by 3 function(s): createCssUtility, createUtilityPropertiesCache, substituteAtApply.

Analyze Your Own Codebase

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

Try Supermodel Free