Home / Function/ transformImport() — ui Function Reference

transformImport() — ui Function Reference

Architecture documentation for the transformImport() function in transform-import.ts from the ui codebase.

Entity Profile

Dependency Diagram

graph TD
  2e9bd87a_5383_5ae6_89f9_ce540bd7c4eb["transformImport()"]
  6c4a93e4_8d33_9fe5_4fc1_f8231ddf41b5["transform-import.ts"]
  2e9bd87a_5383_5ae6_89f9_ce540bd7c4eb -->|defined in| 6c4a93e4_8d33_9fe5_4fc1_f8231ddf41b5
  9f6621f8_fa96_aec7_8cfb_b0e740ef34cd["updateImportAliases()"]
  2e9bd87a_5383_5ae6_89f9_ce540bd7c4eb -->|calls| 9f6621f8_fa96_aec7_8cfb_b0e740ef34cd
  style 2e9bd87a_5383_5ae6_89f9_ce540bd7c4eb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/shadcn/src/utils/transformers/transform-import.ts lines 5–51

export const transformImport: Transformer = async ({
  sourceFile,
  config,
  isRemote,
}) => {
  const utilsAlias = config.aliases?.utils
  const workspaceAlias =
    typeof utilsAlias === "string" && utilsAlias.includes("/")
      ? utilsAlias.split("/")[0]
      : "@"
  const utilsImport = `${workspaceAlias}/lib/utils`

  if (![".tsx", ".ts", ".jsx", ".js"].includes(sourceFile.getExtension())) {
    return sourceFile
  }

  for (const specifier of sourceFile.getImportStringLiterals()) {
    const updated = updateImportAliases(
      specifier.getLiteralValue(),
      config,
      isRemote
    )
    specifier.setLiteralValue(updated)

    // Replace `import { cn } from "@/lib/utils"`
    if (utilsImport === updated || updated === "@/lib/utils") {
      const importDeclaration = specifier.getFirstAncestorByKind(
        SyntaxKind.ImportDeclaration
      )
      const isCnImport = importDeclaration
        ?.getNamedImports()
        .some((namedImport) => namedImport.getName() === "cn")

      if (!isCnImport || !config.aliases.utils) {
        continue
      }

      specifier.setLiteralValue(
        utilsImport === updated
          ? updated.replace(utilsImport, config.aliases.utils)
          : config.aliases.utils
      )
    }
  }

  return sourceFile
}

Subdomains

Frequently Asked Questions

What does transformImport() do?
transformImport() is a function in the ui codebase, defined in packages/shadcn/src/utils/transformers/transform-import.ts.
Where is transformImport() defined?
transformImport() is defined in packages/shadcn/src/utils/transformers/transform-import.ts at line 5.
What does transformImport() call?
transformImport() calls 1 function(s): updateImportAliases.

Analyze Your Own Codebase

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

Try Supermodel Free