Home / Function/ traceDependencies() — tailwindcss Function Reference

traceDependencies() — tailwindcss Function Reference

Architecture documentation for the traceDependencies() function in get-module-dependencies.ts from the tailwindcss codebase.

Entity Profile

Dependency Diagram

graph TD
  e5846ec3_eb33_9f0e_d2da_3af0ac3910e1["traceDependencies()"]
  5df74edb_ca62_37b7_19bd_9e5c4216afe5["getModuleDependencies()"]
  5df74edb_ca62_37b7_19bd_9e5c4216afe5 -->|calls| e5846ec3_eb33_9f0e_d2da_3af0ac3910e1
  795c1d79_ed80_6ca8_28bc_4f19748d6f0b["resolveWithExtension()"]
  e5846ec3_eb33_9f0e_d2da_3af0ac3910e1 -->|calls| 795c1d79_ed80_6ca8_28bc_4f19748d6f0b
  style e5846ec3_eb33_9f0e_d2da_3af0ac3910e1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/@tailwindcss-node/src/get-module-dependencies.ts lines 51–87

async function traceDependencies(
  seen: Set<string>,
  filename: string,
  base: string,
  ext: string,
): Promise<void> {
  // Try to find the file
  let extensions = JS_EXTENSIONS.includes(ext) ? JS_RESOLUTION_ORDER : TS_RESOLUTION_ORDER
  let absoluteFile = await resolveWithExtension(path.resolve(base, filename), extensions)
  if (absoluteFile === null) return // File doesn't exist

  // Prevent infinite loops when there are circular dependencies
  if (seen.has(absoluteFile)) return // Already seen

  // Mark the file as a dependency
  seen.add(absoluteFile)

  // Resolve new base for new imports/requires
  base = path.dirname(absoluteFile)
  ext = path.extname(absoluteFile)

  let contents = await fs.readFile(absoluteFile, 'utf-8')

  // Recursively trace dependencies in parallel
  let promises = []

  for (let pattern of DEPENDENCY_PATTERNS) {
    for (let match of contents.matchAll(pattern)) {
      // Bail out if it's not a relative file
      if (!match[1].startsWith('.')) continue

      promises.push(traceDependencies(seen, match[1], base, ext))
    }
  }

  await Promise.all(promises)
}

Subdomains

Frequently Asked Questions

What does traceDependencies() do?
traceDependencies() is a function in the tailwindcss codebase.
What does traceDependencies() call?
traceDependencies() calls 1 function(s): resolveWithExtension.
What calls traceDependencies()?
traceDependencies() is called by 1 function(s): getModuleDependencies.

Analyze Your Own Codebase

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

Try Supermodel Free