ensureCnImport() — ui Function Reference
Architecture documentation for the ensureCnImport() function in update-fonts.ts from the ui codebase.
Entity Profile
Dependency Diagram
graph TD 9fb1fec8_3fb3_6827_21d6_834692552dea["ensureCnImport()"] b169f1bf_76c5_e7c9_f493_15fe0f296591["update-fonts.ts"] 9fb1fec8_3fb3_6827_21d6_834692552dea -->|defined in| b169f1bf_76c5_e7c9_f493_15fe0f296591 97bdf019_6ec8_1cbd_1fbb_ed4acd2cc973["updateHtmlClassName()"] 97bdf019_6ec8_1cbd_1fbb_ed4acd2cc973 -->|calls| 9fb1fec8_3fb3_6827_21d6_834692552dea style 9fb1fec8_3fb3_6827_21d6_834692552dea fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/shadcn/src/utils/updaters/update-fonts.ts lines 452–478
function ensureCnImport(sourceFile: ReturnType<Project["createSourceFile"]>) {
const existingImport = sourceFile.getImportDeclaration((decl) => {
const namedImports = decl.getNamedImports()
return namedImports.some((imp) => imp.getName() === "cn")
})
if (!existingImport) {
// Try to find the lib/utils import pattern.
const utilsImport = sourceFile.getImportDeclaration((decl) => {
const moduleSpecifier = decl.getModuleSpecifierValue()
return moduleSpecifier.includes("/lib/utils")
})
if (utilsImport) {
const namedImports = utilsImport.getNamedImports()
if (!namedImports.some((imp) => imp.getName() === "cn")) {
utilsImport.addNamedImport("cn")
}
} else {
// Add a new import for cn.
sourceFile.addImportDeclaration({
moduleSpecifier: "@/lib/utils",
namedImports: ["cn"],
})
}
}
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does ensureCnImport() do?
ensureCnImport() is a function in the ui codebase, defined in packages/shadcn/src/utils/updaters/update-fonts.ts.
Where is ensureCnImport() defined?
ensureCnImport() is defined in packages/shadcn/src/utils/updaters/update-fonts.ts at line 452.
What calls ensureCnImport()?
ensureCnImport() is called by 1 function(s): updateHtmlClassName.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free