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
}
Domain
Subdomains
Defined In
Source
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