Skip to content

CLI Reference

CLI ToolCode GenerationAnalysis
Terminal window
# No installation needed! Run directly:
npx @notjustcoders/ioc-arise

✅ Always uses latest version
✅ No global installation
✅ Perfect for CI/CD

Terminal window
npx @notjustcoders/ioc-arise [options]
# "generate" is the default command, so you can omit it!
OptionShortDescriptionDefault
--source <dir>-sSource directory to scansrc
--output <file>-oOutput file pathcontainer.gen.ts
--interface <pattern>-iInterface name pattern (regex)I[A-Z].*
--exclude <patterns...>-eExclude patterns for files[]
--check-cyclesCheck circular deps only (no generation)false
--verboseEnable verbose loggingfalse
Terminal window
# Simplest form - uses defaults
npx @notjustcoders/ioc-arise
# With custom source directory
npx @notjustcoders/ioc-arise --source ./app
Terminal window
npx @notjustcoders/ioc-arise analyze [options]
OptionShortDescriptionDefault
--source <dir>-sSource directory to scansrc
--interface <pattern>-iInterface name pattern (regex)I[A-Z].*
--exclude <patterns...>-eExclude patterns for files[]
Terminal window
$ npx @notjustcoders/ioc-arise analyze
📋 Found 15 classes:
📦 UserService
File: /src/user/UserService.ts
Implements: IUserService
Dependencies: IUserRepository, ILogger
📦 UserRepository
File: /src/user/UserRepository.ts
Implements: IUserRepository
Dependencies: none
No circular dependencies detected!

Use Cases:

  • 📊 Review dependency graph
  • 🔍 Debug dependency issues
  • 📝 Generate documentation
  • ✅ Validate architecture
Terminal window
ioc-arise visualize [options]
OptionShortDescriptionDefault
--source <dir>-sSource directory to scansrc
--interface <pattern>-iInterface name pattern to match (regex)I[A-Z].*
--exclude <patterns...>-eExclude patterns for files[]
--renderer <type>-rRenderer type (console)console
Terminal window
ioc-arise visualize
ioc-arise visualize --renderer console
ioc-arise visualize --source ./modules

Create an ioc.config.json file in your project root:

{
"sourceDir": "./src",
"outputPath": "./src/container.gen.ts",
"interface": "I*.ts",
"exclude": [
"node_modules",
"dist",
"**/*.test.ts",
"**/*.spec.ts"
],
"modules": {
"UserModule": ["user/**"],
"TodoModule": ["todo/**"],
"CoreModule": ["core/**"]
}
}
OptionTypeDescriptionDefault
sourceDirstringSource directory to analyze"./src"
outputPathstringOutput file path for generated container"container.gen.ts"
interfacestringFile pattern for interfaces"I*.ts"
excludestring[]Patterns to exclude from analysis[]
modulesobjectModule groupings (optional)undefined
PatternMatches
I[A-Z].*IUserService, IRepository
.*Service$UserService, EmailService
.*Repository$UserRepository, TodoRepository
Terminal window
ioc-arise generate --exclude "**/*.test.ts" "**/*.spec.ts"
ioc-arise generate --exclude "**/tests/**" "**/mocks/**"
ioc-arise generate --exclude "**/*.d.ts" "**/*.js"
{
"scripts": {
"ioc:generate": "ioc-arise generate",
"ioc:analyze": "ioc-arise analyze",
"ioc:check": "ioc-arise generate --check-cycles"
}
}
Terminal window
ioc-arise --help
ioc-arise generate --help
ioc-arise analyze --help
ioc-arise visualize --help