nestSpreadProperties() — ui Function Reference
Architecture documentation for the nestSpreadProperties() function in update-tailwind-config.ts from the ui codebase.
Entity Profile
Dependency Diagram
graph TD 07fc0309_c10f_8b0d_c1ac_97cd8f9a1f5a["nestSpreadProperties()"] ef3e192c_eced_bc46_1021_689faf6b7065["update-tailwind-config.ts"] 07fc0309_c10f_8b0d_c1ac_97cd8f9a1f5a -->|defined in| ef3e192c_eced_bc46_1021_689faf6b7065 c25108fa_c2e6_295b_b5ed_e67e55e05d20["addTailwindConfigTheme()"] c25108fa_c2e6_295b_b5ed_e67e55e05d20 -->|calls| 07fc0309_c10f_8b0d_c1ac_97cd8f9a1f5a c1c7ccf8_1702_08a4_0680_3abdcc3c18e0["nestSpreadElements()"] c1c7ccf8_1702_08a4_0680_3abdcc3c18e0 -->|calls| 07fc0309_c10f_8b0d_c1ac_97cd8f9a1f5a c1c7ccf8_1702_08a4_0680_3abdcc3c18e0["nestSpreadElements()"] 07fc0309_c10f_8b0d_c1ac_97cd8f9a1f5a -->|calls| c1c7ccf8_1702_08a4_0680_3abdcc3c18e0 style 07fc0309_c10f_8b0d_c1ac_97cd8f9a1f5a fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/shadcn/src/utils/updaters/update-tailwind-config.ts lines 294–334
export function nestSpreadProperties(obj: ObjectLiteralExpression) {
const properties = obj.getProperties()
for (let i = 0; i < properties.length; i++) {
const prop = properties[i]
if (prop.isKind(SyntaxKind.SpreadAssignment)) {
const spreadAssignment = prop.asKindOrThrow(SyntaxKind.SpreadAssignment)
const spreadText = spreadAssignment.getExpression().getText()
// Replace spread with a property assignment
obj.insertPropertyAssignment(i, {
// Need to escape the name with " so that deepmerge doesn't mishandle the key
name: `"___${spreadText.replace(/^\.\.\./, "")}"`,
initializer: `"...${spreadText.replace(/^\.\.\./, "")}"`,
})
// Remove the original spread assignment
spreadAssignment.remove()
} else if (prop.isKind(SyntaxKind.PropertyAssignment)) {
const propAssignment = prop.asKindOrThrow(SyntaxKind.PropertyAssignment)
const initializer = propAssignment.getInitializer()
if (
initializer &&
initializer.isKind(SyntaxKind.ObjectLiteralExpression)
) {
// Recursively process nested object literals
nestSpreadProperties(
initializer.asKindOrThrow(SyntaxKind.ObjectLiteralExpression)
)
} else if (
initializer &&
initializer.isKind(SyntaxKind.ArrayLiteralExpression)
) {
nestSpreadElements(
initializer.asKindOrThrow(SyntaxKind.ArrayLiteralExpression)
)
}
}
}
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does nestSpreadProperties() do?
nestSpreadProperties() is a function in the ui codebase, defined in packages/shadcn/src/utils/updaters/update-tailwind-config.ts.
Where is nestSpreadProperties() defined?
nestSpreadProperties() is defined in packages/shadcn/src/utils/updaters/update-tailwind-config.ts at line 294.
What does nestSpreadProperties() call?
nestSpreadProperties() calls 1 function(s): nestSpreadElements.
What calls nestSpreadProperties()?
nestSpreadProperties() is called by 2 function(s): addTailwindConfigTheme, nestSpreadElements.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free