Skip to content

Configuration Reference

{
"source": "src",
"output": "container.gen.ts",
"interface": "I[A-Z].*",
"exclude": ["**/*.test.ts", "**/*.spec.ts"],
"checkCycles": false,
"verbose": false,
"modules": {
"UserModule": ["user/**", "auth/**"],
"TodoModule": ["todo/**"]
}
}
OptionTypeDefaultDescription
sourcestring"src"Source directory to scan
outputstring"container.gen.ts"Output file path
interfacestring"I[A-Z].*"Interface name pattern (regex)
excludestring[][]File patterns to exclude
checkCyclesbooleanfalseOnly check circular dependencies
verbosebooleanfalseEnable detailed logging
modulesRecord<string, string[]>undefinedModule definitions
  • "I[A-Z].*" - Interfaces starting with ‘I’
  • ".*Interface$" - Interfaces ending with ‘Interface’
  • ".*Service$" - Interfaces ending with ‘Service’
  • "(I[A-Z].*|.*Service$|.*Repository$)" - Multiple patterns
{
"exclude": [
"**/*.test.ts",
"**/*.spec.ts",
"**/mocks/**",
"**/*.d.ts"
]
}
{
"modules": {
"UserModule": ["user/**", "auth/**"],
"TodoModule": ["todo/**", "!todo/**/*.test.ts"],
"InfrastructureModule": ["infrastructure/**", "repositories/**"]
}
}
Terminal window
npx @notjustcoders/ioc-arise generate --source lib --output custom.ts --verbose
npx @notjustcoders/ioc-arise generate --config ioc.dev.json
# or, if installed globally:
ioc-arise generate --source lib --output custom.ts --verbose

Priority: CLI arguments > Configuration file > Defaults

Monorepo:

{
"source": "packages",
"modules": {
"CoreModule": ["packages/core/**"],
"UIModule": ["packages/ui/**"]
}
}

Clean Architecture:

{
"interface": "(I[A-Z].*|.*UseCase$|.*Repository$)",
"modules": {
"DomainModule": ["domain/**"],
"UseCaseModule": ["use-cases/**"]
}
}