-
-
Notifications
You must be signed in to change notification settings - Fork 184
Expand file tree
/
Copy pathinformation.ts
More file actions
32 lines (23 loc) · 1.06 KB
/
information.ts
File metadata and controls
32 lines (23 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { optionDeclarations } from "./parse";
export const { version } = require("../../package.json");
export const versionString = `Version ${version}`;
const helpString = `
Syntax: tstl [options] [files...]
Examples: tstl path/to/file.ts [...]
tstl -p path/to/tsconfig.json
In addition to the options listed below you can also pass options
for the typescript compiler (For a list of options use tsc -h).
Some tsc options might have no effect.
`.trim();
export function getHelpString(): string {
let result = helpString + "\n\n";
result += "Options:\n";
for (const option of optionDeclarations) {
const aliasStrings = (option.aliases ?? []).map(a => "-" + a);
const optionString = [...aliasStrings, "--" + option.name].join("|");
const valuesHint = option.type === "enum" ? option.choices.join("|") : option.type;
const spacing = " ".repeat(Math.max(1, 45 - optionString.length - valuesHint.length));
result += `\n ${optionString} <${valuesHint}>${spacing}${option.description}\n`;
}
return result;
}