arkit
Version:
Visualises JavaScript, TypeScript and Flow codebases as meaningful and committable architecture diagrams
50 lines (49 loc) • 1.21 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const yargs = require("yargs");
const parseDirectory = (directory) => {
if (directory instanceof Array)
directory = directory[0];
return directory || ".";
};
const splitByComma = (value = "") => {
return value.split(",");
};
exports.cli = yargs
.usage("$0 [directory]")
.option("directory", {
description: "Working directory",
default: ".",
coerce: parseDirectory
})
.option("first", {
description: "File patterns to be first in the graph",
string: true
})
.option("exclude", {
description: "File patterns to exclude from the graph",
default: "test,tests,dist,coverage,**/*.test.*,**/*.spec.*,**/*.min.*"
})
.option("output", {
description: "Output path or type (svg, png or puml)",
default: "arkit.svg"
})
.option("config", {
description: "Config file path (json or js)",
default: "arkit.json"
})
.alias({
d: "directory",
c: "config",
o: "output",
f: "first",
e: "exclude",
h: "help",
v: "version",
_: "directory"
})
.coerce({
exclude: splitByComma,
first: splitByComma,
output: splitByComma
});