CLI Reference
CLI ToolCode GenerationAnalysis
CLI Reference
Section titled “CLI Reference”Installation
Section titled “Installation”# No installation needed! Run directly:npx @notjustcoders/ioc-arise✅ Always uses latest version
✅ No global installation
✅ Perfect for CI/CD
npm install -D @notjustcoders/ioc-arise# orpnpm add -D @notjustcoders/ioc-ariseThen add to package.json:
{ "scripts": { "generate:di": "ioc-arise" }}npm install -g @notjustcoders/ioc-arise# orpnpm add -g @notjustcoders/ioc-ariseThen use anywhere:
ioc-ariseCommands
Section titled “Commands”generate (Default)
Section titled “generate (Default)”npx @notjustcoders/ioc-arise [options]# "generate" is the default command, so you can omit it!Options Reference
Section titled “Options Reference”| Option | Short | Description | Default |
|---|---|---|---|
--source <dir> | -s | Source directory to scan | src |
--output <file> | -o | Output file path | container.gen.ts |
--interface <pattern> | -i | Interface name pattern (regex) | I[A-Z].* |
--exclude <patterns...> | -e | Exclude patterns for files | [] |
--check-cycles | Check circular deps only (no generation) | false | |
--verbose | Enable verbose logging | false |
Common Examples
Section titled “Common Examples”# Simplest form - uses defaultsnpx @notjustcoders/ioc-arise
# With custom source directorynpx @notjustcoders/ioc-arise --source ./app# Custom output locationnpx @notjustcoders/ioc-arise \ --source ./src \ --output ./generated/di-container.ts# Exclude test filesnpx @notjustcoders/ioc-arise \ --exclude "**/*.test.ts" "**/*.spec.ts" "**/mocks/**"
# Custom interface patternnpx @notjustcoders/ioc-arise \ --interface ".*Service$"# Check for circular dependencies without generatingnpx @notjustcoders/ioc-arise --check-cycles
# Perfect for CI/CD pipelines!analyze
Section titled “analyze”npx @notjustcoders/ioc-arise analyze [options]Options
Section titled “Options”| Option | Short | Description | Default |
|---|---|---|---|
--source <dir> | -s | Source directory to scan | src |
--interface <pattern> | -i | Interface name pattern (regex) | I[A-Z].* |
--exclude <patterns...> | -e | Exclude patterns for files | [] |
Example Output
Section titled “Example Output”$ 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
visualize
Section titled “visualize”ioc-arise visualize [options]Options
Section titled “Options”| Option | Short | Description | Default |
|---|---|---|---|
--source <dir> | -s | Source directory to scan | src |
--interface <pattern> | -i | Interface name pattern to match (regex) | I[A-Z].* |
--exclude <patterns...> | -e | Exclude patterns for files | [] |
--renderer <type> | -r | Renderer type (console) | console |
Examples
Section titled “Examples”ioc-arise visualizeioc-arise visualize --renderer consoleioc-arise visualize --source ./modulesConfiguration File
Section titled “Configuration File”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/**"] }}Configuration Options
Section titled “Configuration Options”| Option | Type | Description | Default |
|---|---|---|---|
sourceDir | string | Source directory to analyze | "./src" |
outputPath | string | Output file path for generated container | "container.gen.ts" |
interface | string | File pattern for interfaces | "I*.ts" |
exclude | string[] | Patterns to exclude from analysis | [] |
modules | object | Module groupings (optional) | undefined |
Interface Patterns
Section titled “Interface Patterns”| Pattern | Matches |
|---|---|
I[A-Z].* | IUserService, IRepository |
.*Service$ | UserService, EmailService |
.*Repository$ | UserRepository, TodoRepository |
Exclusion Patterns
Section titled “Exclusion Patterns”ioc-arise generate --exclude "**/*.test.ts" "**/*.spec.ts"ioc-arise generate --exclude "**/tests/**" "**/mocks/**"ioc-arise generate --exclude "**/*.d.ts" "**/*.js"Package.json Scripts
Section titled “Package.json Scripts”{ "scripts": { "ioc:generate": "ioc-arise generate", "ioc:analyze": "ioc-arise analyze", "ioc:check": "ioc-arise generate --check-cycles" }}ioc-arise --helpioc-arise generate --helpioc-arise analyze --helpioc-arise visualize --help