🇸🇪arkitektur
Visualises JavaScript, TypeScript and Flow codebases as meaningful and committable architecture diagrams
- Associates source files with configured architectural components
- Renders grouped components and dependency graph including Node.js modules
- Supports JavaScript, TypeScript and Flow source code and Vue/Nuxt
- Exports codebase architecture visualisation as SVG, PNG or Plant UML diagram
- Integrates into development flow, so your CI, VCS, README and PRs are happy
Usage
npx arkit
npm install arkit --save-dev
yarn add arkit --dev
npx arkit src/ -o arkit.svg
npx arkit -f src/main.js -o puml
LEVEL=info npx arkit -e "node_modules,test,dist,coverage" -o puml
If your project is huge and first diagrams look messy, it's better to generate them per feature, architectural layer, etc.
Once you satisfied with results, add arkit command to your build script, so it will keep your architecture diagrams up-to-date.
Configuration
Arkit can be configured using basic CLI arguments or advanced JSON, JS module or package.json configuration.
Basic CLI arguments
user@machine:~$ npx arkit --help
arkit [directory]
Options:
-o, --output Output type or file path to save
-f, --first File patterns to start with [string]
-e, --exclude File patterns to exclude
[default: "test,tests,dist,coverage,**/*.test.*,**/*.spec.*,**/*.min.*"]
-d, --directory Working directory [default: "."]
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
Advanced arkit.json with JSON schema for autocomplete and validation
{
"$schema": "https://arkit.js.org/schema.json",
"components": [
{
"type": "Dependency",
"patterns": ["node_modules/*"]
},
{
"type": "Component",
"patterns": ["**/*.ts", "**/*.tsx"]
}
],
"excludePatterns": ["test/**", "tests/**", "**/*.test.*", "**/*.spec.*"],
"output": [
{
"path": "arkit.svg",
"groups": [
{
"first": true,
"components": ["Component"]
},
{
"type": "Dependencies",
"components": ["Dependency"]
}
]
}
]
}
See more possible JSON configuration options in the examples below
Real-world examples
Contribution
The tool is under active development, so please feel free to contribute with suggestions and pull requests. Your feedback is priceless.
Fun stats, stargazers map
Give a Github star to get on the map.