Home / Function/ unnestSpreadProperties() — ui Function Reference

unnestSpreadProperties() — ui Function Reference

Architecture documentation for the unnestSpreadProperties() function in update-tailwind-config.ts from the ui codebase.

Entity Profile

Dependency Diagram

graph TD
  d2e241ac_3cd3_c229_69bf_7b66b84a8b58["unnestSpreadProperties()"]
  ef3e192c_eced_bc46_1021_689faf6b7065["update-tailwind-config.ts"]
  d2e241ac_3cd3_c229_69bf_7b66b84a8b58 -->|defined in| ef3e192c_eced_bc46_1021_689faf6b7065
  c25108fa_c2e6_295b_b5ed_e67e55e05d20["addTailwindConfigTheme()"]
  c25108fa_c2e6_295b_b5ed_e67e55e05d20 -->|calls| d2e241ac_3cd3_c229_69bf_7b66b84a8b58
  74b0c141_8b3d_9ed6_f729_6f00da6d91ac["unsetSpreadElements()"]
  74b0c141_8b3d_9ed6_f729_6f00da6d91ac -->|calls| d2e241ac_3cd3_c229_69bf_7b66b84a8b58
  74b0c141_8b3d_9ed6_f729_6f00da6d91ac["unsetSpreadElements()"]
  d2e241ac_3cd3_c229_69bf_7b66b84a8b58 -->|calls| 74b0c141_8b3d_9ed6_f729_6f00da6d91ac
  style d2e241ac_3cd3_c229_69bf_7b66b84a8b58 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/shadcn/src/utils/updaters/update-tailwind-config.ts lines 359–388

export function unnestSpreadProperties(obj: ObjectLiteralExpression) {
  const properties = obj.getProperties()

  for (let i = 0; i < properties.length; i++) {
    const prop = properties[i]
    if (prop.isKind(SyntaxKind.PropertyAssignment)) {
      const propAssignment = prop as PropertyAssignment
      const initializer = propAssignment.getInitializer()

      if (initializer && initializer.isKind(SyntaxKind.StringLiteral)) {
        const value = initializer
          .asKindOrThrow(SyntaxKind.StringLiteral)
          .getLiteralValue()
        if (value.startsWith("...")) {
          obj.insertSpreadAssignment(i, { expression: value.slice(3) })
          propAssignment.remove()
        }
      } else if (initializer?.isKind(SyntaxKind.ObjectLiteralExpression)) {
        unnestSpreadProperties(initializer as ObjectLiteralExpression)
      } else if (
        initializer &&
        initializer.isKind(SyntaxKind.ArrayLiteralExpression)
      ) {
        unsetSpreadElements(
          initializer.asKindOrThrow(SyntaxKind.ArrayLiteralExpression)
        )
      }
    }
  }
}

Subdomains

Frequently Asked Questions

What does unnestSpreadProperties() do?
unnestSpreadProperties() is a function in the ui codebase, defined in packages/shadcn/src/utils/updaters/update-tailwind-config.ts.
Where is unnestSpreadProperties() defined?
unnestSpreadProperties() is defined in packages/shadcn/src/utils/updaters/update-tailwind-config.ts at line 359.
What does unnestSpreadProperties() call?
unnestSpreadProperties() calls 1 function(s): unsetSpreadElements.
What calls unnestSpreadProperties()?
unnestSpreadProperties() is called by 2 function(s): addTailwindConfigTheme, unsetSpreadElements.

Analyze Your Own Codebase

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

Try Supermodel Free