compare.ts — ui Source File
Architecture documentation for compare.ts, a typescript file in the ui codebase. 0 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR d5d2f99b_9ade_1fed_4fc0_383bcc559cdd["compare.ts"] 1734752f_152c_7d66_3858_3587b1cc5578["compare.test.ts"] 1734752f_152c_7d66_3858_3587b1cc5578 --> d5d2f99b_9ade_1fed_4fc0_383bcc559cdd style d5d2f99b_9ade_1fed_4fc0_383bcc559cdd fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
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
Functions
Imported By
Source
Frequently Asked Questions
What does compare.ts do?
compare.ts is a source file in the ui codebase, written in typescript. It belongs to the FrameworkTooling domain, TemplateSync subdomain.
What functions are defined in compare.ts?
compare.ts defines 1 function(s): isContentSame.
What files import compare.ts?
compare.ts is imported by 1 file(s): compare.test.ts.
Where is compare.ts in the architecture?
compare.ts is located at packages/shadcn/src/utils/compare.ts (domain: FrameworkTooling, subdomain: TemplateSync, directory: packages/shadcn/src/utils).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free