Home / Function/ isContentSame() — ui Function Reference

isContentSame() — ui Function Reference

Architecture documentation for the isContentSame() function in compare.ts from the ui codebase.

Entity Profile

Dependency Diagram

graph TD
  f986de80_d207_244d_daac_223724e81054["isContentSame()"]
  d5d2f99b_9ade_1fed_4fc0_383bcc559cdd["compare.ts"]
  f986de80_d207_244d_daac_223724e81054 -->|defined in| d5d2f99b_9ade_1fed_4fc0_383bcc559cdd
  style f986de80_d207_244d_daac_223724e81054 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/shadcn/src/utils/compare.ts lines 1–61

export function isContentSame(
  existingContent: string,
  newContent: string,
  options: {
    ignoreImports?: boolean
  } = {}
) {
  const { ignoreImports = false } = options

  // Normalize line endings and whitespace.
  const normalizedExisting = existingContent.replace(/\r\n/g, "\n").trim()
  const normalizedNew = newContent.replace(/\r\n/g, "\n").trim()

  // First, try exact match after normalization.
  if (normalizedExisting === normalizedNew) {
    return true
  }

  // If not ignoring imports or exact match failed, return false
  if (!ignoreImports) {
    return false
  }

  // Compare with import statements normalized.
  // This regex matches various import patterns including:
  // - import defaultExport from "module"
  // - import * as name from "module"
  // - import { export1, export2 } from "module"
  // - import { export1 as alias1 } from "module"
  // - import defaultExport, { export1 } from "module"
  // - import type { Type } from "module"
  // - This Regex written by Claude Code.
  const importRegex =
    /^(import\s+(?:type\s+)?(?:\*\s+as\s+\w+|\{[^}]*\}|\w+)?(?:\s*,\s*(?:\{[^}]*\}|\w+))?\s+from\s+["'])([^"']+)(["'])/gm

  // Function to normalize import paths - remove alias differences.
  const normalizeImports = (content: string) => {
    return content.replace(
      importRegex,
      (_match, prefix, importPath, suffix) => {
        // Keep relative imports as-is.
        if (importPath.startsWith(".")) {
          return `${prefix}${importPath}${suffix}`
        }

        // For aliased imports, normalize to a common format.
        // Extract the last meaningful part of the path.
        const parts = importPath.split("/")
        const lastPart = parts[parts.length - 1]

        // Normalize to a consistent format.
        return `${prefix}@normalized/${lastPart}${suffix}`
      }
    )
  }

  const existingNormalized = normalizeImports(normalizedExisting)
  const newNormalized = normalizeImports(normalizedNew)

  return existingNormalized === newNormalized
}

Subdomains

Frequently Asked Questions

What does isContentSame() do?
isContentSame() is a function in the ui codebase, defined in packages/shadcn/src/utils/compare.ts.
Where is isContentSame() defined?
isContentSame() is defined in packages/shadcn/src/utils/compare.ts at line 1.

Analyze Your Own Codebase

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

Try Supermodel Free