typescript-circular-dependency

Detect and visualize circular TypeScript/JavaScript import cycles.

5|1|Updated Jan 20, 2026
One-click install
npx skills add https://github.com/Wania-Kazmi/claude-code-autonomous-agent-workflow --skill typescript-circular-dependency-wania-kazmi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: typescript-circular-dependency
Source: https://github.com/Wania-Kazmi/claude-code-autonomous-agent-workflow/tree/main/.claude/skills/claudeception/examples/typescript-circular-dependency
Command: npx skills add https://github.com/Wania-Kazmi/claude-code-autonomous-agent-workflow --skill typescript-circular-dependency-wania-kazmi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Detects and resolves runtime issues caused by circular imports in TypeScript/JavaScript projects. Circular dependencies can lead to undefined imports, initialization errors, or hard-to-debug runtime failures despite successful compilation.

Core Features & Use Cases

  • Circular dependency detection across TS/JS modules
  • Visualization of dependency graphs to pinpoint cycles
  • Guidance on resolutions such as interface extraction, dependency injection, and import reorganization
  • Use Case: In a large monorepo, fix a cycle between modules that triggers Cannot access before initialization errors

Quick Start

Run the circular dependency detector on your TypeScript project to identify cycles and get corrective guidance. Example: Install madge, then execute madge --circular --extensions ts,tsx src/ to list cycles, and apply strategies like extracting shared interfaces or using dependency injection to break the cycle.

Frequently Asked Questions about typescript-circular-dependency

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix circular dependency errors in TypeScript modules?

Circular dependency detection in TypeScript works by analyzing import statements across modules to build a dependency graph, pinpointing where modules import each other directly or indirectly, and reporting the specific cycles causing initialization failures.

Why do I get 'Cannot access before initialization' runtime errors in my TSX project despite successful compilation?

You get 'Cannot access before initialization' runtime errors in TSX projects because circular imports cause modules to execute out of order, returning undefined values before the required module finishes initializing, which requires dependency cycle detection and import reorganization to resolve.

How do I detect circular imports across a large TypeScript monorepo?

To detect circular imports across a large TypeScript monorepo, run a circular dependency detector that analyzes diverse import patterns across ts and tsx modules to visualize the dependency graph and report offending modules involved in initialization cycles.

What is the best way to resolve circular imports in JavaScript codebases?

The best way to resolve circular imports in JavaScript codebases is to identify the dependency cycle and apply targeted resolution strategies like extracting shared interfaces into separate modules, implementing dependency injection, or reorganizing direct imports to eliminate the loop.

Can I use a dependency graph to find indirect circular imports in TypeScript?

Yes, you can use a dependency graph to find indirect circular imports in TypeScript by analyzing import patterns to visualize module relationships, which allows you to pinpoint both direct and indirect cycles that trigger initialization failures.