Home / Function/ updateImportAliases() — ui Function Reference

updateImportAliases() — ui Function Reference

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

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

packages/shadcn/src/utils/transformers/transform-import.ts lines 53–113

function updateImportAliases(
  moduleSpecifier: string,
  config: Config,
  isRemote: boolean = false
) {
  // Not a local import.
  if (!moduleSpecifier.startsWith("@/") && !isRemote) {
    return moduleSpecifier
  }

  // This treats the remote as coming from a faux registry.
  if (isRemote && moduleSpecifier.startsWith("@/")) {
    moduleSpecifier = moduleSpecifier.replace(/^@\//, `@/registry/new-york/`)
  }

  // Not a registry import.
  if (!moduleSpecifier.startsWith("@/registry/")) {
    // We fix the alias and return.
    const alias = config.aliases.components.split("/")[0]
    return moduleSpecifier.replace(/^@\//, `${alias}/`)
  }

  if (moduleSpecifier.match(/^@\/registry\/(.+)\/ui/)) {
    return moduleSpecifier.replace(
      /^@\/registry\/(.+)\/ui/,
      config.aliases.ui ?? `${config.aliases.components}/ui`
    )
  }

  if (
    config.aliases.components &&
    moduleSpecifier.match(/^@\/registry\/(.+)\/components/)
  ) {
    return moduleSpecifier.replace(
      /^@\/registry\/(.+)\/components/,
      config.aliases.components
    )
  }

  if (config.aliases.lib && moduleSpecifier.match(/^@\/registry\/(.+)\/lib/)) {
    return moduleSpecifier.replace(
      /^@\/registry\/(.+)\/lib/,
      config.aliases.lib
    )
  }

  if (
    config.aliases.hooks &&
    moduleSpecifier.match(/^@\/registry\/(.+)\/hooks/)
  ) {
    return moduleSpecifier.replace(
      /^@\/registry\/(.+)\/hooks/,
      config.aliases.hooks
    )
  }

  return moduleSpecifier.replace(
    /^@\/registry\/[^/]+/,
    config.aliases.components
  )
}

Subdomains

Called By

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free