/
typedoc
executable file
·113 lines (95 loc) · 2.78 KB
/
typedoc
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/usr/bin/env node
//@ts-check
/* eslint-disable @typescript-eslint/no-var-requires */
const ExitCodes = {
Ok: 0,
OptionError: 1,
NoEntryPoints: 2,
CompileError: 3,
OutputError: 4,
ExceptionThrown: 5,
};
const td = require("..");
const { getOptionsHelp } = require("../dist/lib/utils/options/help");
const app = new td.Application();
app.options.addReader(new td.ArgumentsReader(0));
app.options.addReader(new td.TypeDocReader());
app.options.addReader(new td.TSConfigReader());
app.options.addReader(new td.ArgumentsReader(300));
app.bootstrap();
run(app)
.catch((error) => {
console.error("TypeDoc exiting with unexpected error:");
console.error(error);
return ExitCodes.ExceptionThrown;
})
.then((exitCode) => (process.exitCode = exitCode));
/** @param {td.Application} app */
async function run(app) {
if (app.options.getValue("version")) {
console.log(app.toString());
return ExitCodes.Ok;
}
if (app.options.getValue("help")) {
console.log(getOptionsHelp(app.options));
return ExitCodes.Ok;
}
if (app.options.getValue("showConfig")) {
console.log(app.options.getRawValues());
return ExitCodes.Ok;
}
if (app.logger.hasErrors()) {
return ExitCodes.OptionError;
}
if (
app.options.getValue("treatWarningsAsErrors") &&
app.logger.hasWarnings()
) {
return ExitCodes.OptionError;
}
if (app.options.getValue("entryPoints").length === 0) {
app.logger.error("No entry points provided");
return ExitCodes.NoEntryPoints;
}
if (app.options.getValue("watch")) {
app.convertAndWatch(async (project) => {
const out = app.options.getValue("out");
if (out) {
await app.generateDocs(project, out);
}
const json = app.options.getValue("json");
if (json) {
await app.generateJson(project, json);
}
if (!out && !json) {
await app.generateDocs(project, "./docs");
}
});
return ExitCodes.Ok;
}
const project = app.convert();
if (!project) {
return ExitCodes.CompileError;
}
const out = app.options.getValue("out");
if (out) {
await app.generateDocs(project, out);
}
const json = app.options.getValue("json");
if (json) {
await app.generateJson(project, json);
}
if (!out && !json) {
await app.generateDocs(project, "./docs");
}
if (app.logger.hasErrors()) {
return ExitCodes.OutputError;
}
if (
app.options.getValue("treatWarningsAsErrors") &&
app.logger.hasWarnings()
) {
return ExitCodes.OutputError;
}
return ExitCodes.Ok;
}