fix: resolve 7 circular dependency chains in src/lib/game #20
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
bunx madge --circular src/lib/gamereports 7 circular dependency chains that must be resolved before modifying involved files.Circular Chains Identified
data/equipment/index.ts↔data/equipment/utils.tsdata/golems/index.ts↔data/golems/utils.tsstores/combatStore.ts↔stores/combat-actions.tsstores/combatStore.ts↔stores/gameStore.tsstores/combatStore.ts→stores/gameStore.ts→stores/gameActions.tsstores/combatStore.ts→stores/gameStore.ts→stores/gameLoopActions.tscombatStore→gameStore→gameHooks→combatStore)Fix Strategy
For each chain:
Verification
Run
bunx madge --circular src/lib/game— must return clean (0 circular deps).Constraints
✅ All 7 circular dependency chains resolved
Changes made across 2 commits:
Commit 1 —
fix: resolve 7 circular dependency chains in src/lib/gamedata/equipment/utils.ts— imports directly from individual equipment modules instead of./indexdata/golems/utils.ts— imports directly from individual golem modules instead of./indexstores/combatStore.ts— extractedCombatStateto newcombat-state.types.tsstores/combat-actions.ts— importsCombatStatefromcombat-state.types.tsinstead ofcombatStorestores/index.ts— re-exportsCombatStatefromcombat-state.types.tsGameStateDebug.tsx— replaceddebugSetTimecalls with directuseGameStore.setState()Commit 2 —
fix: remove debugSetTime and useGameStore import from combatStorestores/combatStore.ts— removeddebugSetTimemethod anduseGameStoreimport (sub-agent reported success but the edit didn't persist; fixed manually)Verification:
bunx madge --circular src/lib/game→ ✔ No circular dependency found!npx tsc --noEmit— zero errors in modified files (only pre-existing errors inDisciplinesTab.tsx)combatStore.tsat 286 lines)