domainlint
v0.7.0
Published
Linter for domain-based repository
Readme
domainlint
Architecture linter for TypeScript/JavaScript codebases. Enforces feature boundary rules and detects import cycles.
Installation
npm install -g domainlintUsage
domainlint check [path] # Report violations
domainlint debug <file> # Debug imports/violations for a single fileConfiguration
Create a domainlint.json in your project root:
{
"srcDir": "src",
"featuresDir": "src/features",
"barrelFiles": ["index.ts"],
"extensions": [".ts", ".tsx"],
"includeDynamicImports": false
}Commands
domainlint check [PATH]
Check feature boundaries and import cycles
USAGE
$ domainlint check [PATH] [-c <value>] [--src-dir <value>] [--features-dir <value>] [--tsconfig-path
<value>] [--include-dynamic-imports] [--no-color] [-v] [--feature <value>] [--shortest-cycles] [--max-cycle-length
<value>]
ARGUMENTS
[PATH] [default: .] Path to the project to check
FLAGS
-c, --config=<value> Path to config file
-v, --verbose Verbose output
--feature=<value> Filter violations by feature name
--features-dir=<value> Features directory (default: src/features)
--include-dynamic-imports Include dynamic imports in analysis
--max-cycle-length=<value> [default: 50] Hide cycles longer than this length
--no-color Disable colored output
--shortest-cycles Show only the shortest cycles (easier to fix)
--src-dir=<value> Source directory (default: src)
--tsconfig-path=<value> Path to tsconfig.json (default: ./tsconfig.json)
DESCRIPTION
Check feature boundaries and import cycles
EXAMPLES
$ domainlint check
$ domainlint check ./my-projectSee code: src/commands/check.ts
domainlint debug FILE [PATH]
Debug imports and rule violations for a specific file
USAGE
$ domainlint debug FILE [PATH] [-c <value>] [--src-dir <value>] [--features-dir <value>] [--tsconfig-path
<value>] [--include-dynamic-imports] [--no-color]
ARGUMENTS
FILE Path to the file to debug
[PATH] [default: .] Path to the project (default: .)
FLAGS
-c, --config=<value> Path to config file
--features-dir=<value> Features directory (default: src/features)
--include-dynamic-imports Include dynamic imports in analysis
--no-color Disable colored output
--src-dir=<value> Source directory (default: src)
--tsconfig-path=<value> Path to tsconfig.json (default: ./tsconfig.json)
DESCRIPTION
Debug imports and rule violations for a specific file
EXAMPLES
$ domainlint debug src/features/user/components/UserProfile.tsx
$ domainlint debug src/shared/utils/api.ts ./my-projectSee code: src/commands/debug.ts
domainlint help [COMMAND]
Display help for domainlint.
USAGE
$ domainlint help [COMMAND...] [-n]
ARGUMENTS
[COMMAND...] Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for domainlint.See code: @oclif/plugin-help
