UNPKG

arkit

Version:

Visualises JavaScript, TypeScript and Flow codebases as meaningful and committable architecture diagrams

57 lines (53 loc) 1.37 kB
import yargs from "yargs"; import { hideBin } from "yargs/helpers"; const parseDirectory = (directory: string | string[]): string => { if (directory instanceof Array) directory = directory[0]; return directory || "."; }; const splitByComma = (value = ""): string[] => { return value.split(","); }; export const cli = yargs(hideBin(process.argv)) .scriptName("arkit") .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", }) .option("json", { description: "Output results as JSON to stdout", boolean: true, default: false, }) .alias({ d: "directory", c: "config", o: "output", f: "first", e: "exclude", h: "help", v: "version", _: "directory", }) .coerce({ exclude: splitByComma, first: splitByComma, output: splitByComma, });