Home / Function/ deduplicateFilesByTarget() — ui Function Reference

deduplicateFilesByTarget() — ui Function Reference

Architecture documentation for the deduplicateFilesByTarget() function in utils.ts from the ui codebase.

Entity Profile

Dependency Diagram

graph TD
  56f8e3f8_10f2_39ea_2a08_e9bf97266d40["deduplicateFilesByTarget()"]
  edc2979a_e040_ab0c_5174_c69f7c8fa905["utils.ts"]
  56f8e3f8_10f2_39ea_2a08_e9bf97266d40 -->|defined in| edc2979a_e040_ab0c_5174_c69f7c8fa905
  1a0f4abc_3605_ccdc_e2a7_5fdd28719196["canDeduplicateFiles()"]
  56f8e3f8_10f2_39ea_2a08_e9bf97266d40 -->|calls| 1a0f4abc_3605_ccdc_e2a7_5fdd28719196
  style 56f8e3f8_10f2_39ea_2a08_e9bf97266d40 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/shadcn/src/registry/utils.ts lines 304–339

export async function deduplicateFilesByTarget(
  filesArrays: Array<z.infer<typeof registryItemFileSchema>[] | undefined>,
  config: Config
) {
  // Fallback to simple concatenation when we don't have complete config.
  if (!canDeduplicateFiles(config)) {
    return z
      .array(registryItemFileSchema)
      .parse(filesArrays.flat().filter(Boolean))
  }

  // Get project info for file resolution.
  const projectInfo = await getProjectInfo(config.resolvedPaths.cwd)
  const targetMap = new Map<string, z.infer<typeof registryItemFileSchema>>()
  const allFiles = z
    .array(registryItemFileSchema)
    .parse(filesArrays.flat().filter(Boolean))

  allFiles.forEach((file) => {
    const resolvedPath = resolveFilePath(file, config, {
      isSrcDir: projectInfo?.isSrcDir,
      framework: projectInfo?.framework.name,
      commonRoot: findCommonRoot(
        allFiles.map((f) => f.path),
        file.path
      ),
    })

    if (resolvedPath) {
      // Last one wins - overwrites previous entry.
      targetMap.set(resolvedPath, file)
    }
  })

  return Array.from(targetMap.values())
}

Subdomains

Frequently Asked Questions

What does deduplicateFilesByTarget() do?
deduplicateFilesByTarget() is a function in the ui codebase, defined in packages/shadcn/src/registry/utils.ts.
Where is deduplicateFilesByTarget() defined?
deduplicateFilesByTarget() is defined in packages/shadcn/src/registry/utils.ts at line 304.
What does deduplicateFilesByTarget() call?
deduplicateFilesByTarget() calls 1 function(s): canDeduplicateFiles.

Analyze Your Own Codebase

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

Try Supermodel Free