@iviva/react-tsdoc 0.1.0 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,11 +19,19 @@ jobs:
19
19
  - name: Build
20
20
  run: npm run build
21
21
  - name: Publish if version has been updated
22
- uses: pascalgn/npm-publish-action@4f4bf159e299f65d21cd1cbd96fc5d53228036df
22
+ uses: pascalgn/npm-publish-action@1.3.9
23
23
  with: # All of theses inputs are optional
24
24
  tag_name: "v%s"
25
25
  tag_message: "v%s"
26
26
  commit_pattern: "^Release (\\S+)"
27
+ workspace: "."
27
28
  env: # More info about the environment variables in the README
28
29
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Leave this as is, it's automatically generated
29
- NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} # You need to set this in your repo settings
30
+ NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} # You need to set this in your repo settings
31
+ - name: Report Status
32
+ if: always()
33
+ uses: ravsamhq/notify-slack-action@v1
34
+ with:
35
+ status: ${{ job.status }}
36
+ env:
37
+ SLACK_WEBHOOK_URL: ${{ secrets.ACTION_MONITORING_SLACK }}
package/dist/index.js CHANGED
@@ -157,13 +157,38 @@ function generateHookTypeDefinition(hook) {
157
157
  }
158
158
  function generateComponentTypeDefinition(c, interfaces) {
159
159
  let code = "";
160
+ let type = c.type || 'functional';
160
161
  let inf = interfaces[c.propType];
161
162
  if (inf) {
162
163
  code += inf.comment + '\n';
163
164
  code += inf.code + '\n';
164
165
  }
166
+ if (c.stateType) {
167
+ let stateInf = interfaces[c.stateType];
168
+ if (stateInf) {
169
+ code += stateInf.comment + '\n';
170
+ code += stateInf.code + '\n';
171
+ }
172
+ }
173
+ if (c.refType) {
174
+ let refInf = interfaces[c.refType];
175
+ if (refInf) {
176
+ code += refInf.comment + '\n';
177
+ code += refInf.code + '\n';
178
+ }
179
+ }
165
180
  code += c.comment + '\n';
166
- code += `export const ${c.name} : React.FunctionComponent<${c.propType}>;\n`;
181
+ switch (type) {
182
+ case 'functional':
183
+ code += `export const ${c.name} : React.FunctionComponent<${c.propType}>;\n`;
184
+ break;
185
+ case 'class':
186
+ code += `export class ${c.name} extends React.Component<${c.propType}, ${c.stateType || 'any'}> {}\n`;
187
+ break;
188
+ case 'forwardRef':
189
+ code += `export const ${c.name}:React.ForwardRefExoticComponent<${c.propType} & React.RefAttributes<${c.refType || 'any'}>>;\n`;
190
+ break;
191
+ }
167
192
  return code;
168
193
  }
169
194
  function fillRelatedTypes(t, types, docInfo) {
@@ -285,7 +310,28 @@ function parseVariableDeclaration(node, docInfo) {
285
310
  if (type == 'React.FunctionComponent') {
286
311
  let propType = node.type.typeArguments[0].getText();
287
312
  let comment = extractComment(node.parent);
288
- docInfo.components[name] = { comment, propType, name };
313
+ docInfo.components[name] = { comment, propType, name, type: 'functional' };
314
+ return;
315
+ }
316
+ if (type == 'React.ForwardRefExoticComponent') {
317
+ let cType = node.type.typeArguments[0].getText();
318
+ // get prop type and ref type
319
+ // assume
320
+ // - props defined as following format <PropType & RefType>
321
+ // - RefType always starts with `React.RefAttributes`
322
+ let parts = cType.split("&", 2).map(p => p.trim());
323
+ let propType = parts[0];
324
+ let refType = parts[1];
325
+ if (parts[0].startsWith('React.RefAttributes')) {
326
+ propType = parts[1];
327
+ refType = parts[0];
328
+ }
329
+ refType = refType
330
+ .replace('React.RefAttributes<', '')
331
+ .replace(">", '')
332
+ .trim();
333
+ let comment = extractComment(node.parent);
334
+ docInfo.components[name] = { comment, propType, refType, name, type: 'forwardRef' };
289
335
  return;
290
336
  }
291
337
  if (name.startsWith('use')) {
@@ -297,11 +343,12 @@ function parseVariableDeclaration(node, docInfo) {
297
343
  function parseClassDeclaration(node, docInfo) {
298
344
  var _a, _b;
299
345
  let className = (_b = (_a = node) === null || _a === void 0 ? void 0 : _a.heritageClauses[0]) === null || _b === void 0 ? void 0 : _b.types[0].expression.getText();
300
- if (className = 'React.Component') {
346
+ if (className == 'React.Component') {
301
347
  let propType = node.heritageClauses[0].types[0].typeArguments[0].getText();
348
+ let stateType = node.heritageClauses[0].types[0].typeArguments[1].getText();
302
349
  let comment = extractComment(node);
303
350
  let name = node.name.getText();
304
- docInfo.components[name] = { comment, propType, name };
351
+ docInfo.components[name] = { comment, propType, name, stateType, type: 'class' };
305
352
  }
306
353
  }
307
354
  function parseTypeAlias(node, docInfo) {
@@ -348,10 +395,11 @@ function walkTree(node, docInfo) {
348
395
  parseClassDeclaration(node, docInfo);
349
396
  break;
350
397
  case ts.SyntaxKind.FunctionDeclaration:
398
+ case 242:
351
399
  parseVariableDeclaration(node, docInfo);
352
400
  break;
353
401
  }
354
- node.forEachChild(child => walkTree(child, docInfo));
402
+ node.forEachChild((child) => walkTree(child, docInfo));
355
403
  }
356
404
  function validateProgram(program) {
357
405
  const compilerDiagnostics = program.getSemanticDiagnostics();
@@ -487,6 +535,12 @@ function generateTypeDoc(cdoc, docs) {
487
535
  }
488
536
  return md.toString();
489
537
  }
538
+ function linkedType(t, docs) {
539
+ if (docs.types.find(x => x.name.toUpperCase() == t.toUpperCase())) {
540
+ return `[${t}](types/${t})`;
541
+ }
542
+ return t;
543
+ }
490
544
  function generateComponentDoc(cdoc, docs) {
491
545
  let md = new MarkdownBuilder();
492
546
  md.addTitle(cdoc.name, 1);
@@ -499,16 +553,18 @@ function generateComponentDoc(cdoc, docs) {
499
553
  md.addCode(cdoc.examples[i].summary);
500
554
  }
501
555
  }
502
- md.addTitle('Properties', 2);
503
- md.addTable(cdoc.props.map(p => ({ Name: p.name, Type: p.type, Description: p.summary })));
504
- for (let i in cdoc.props) {
505
- let prop = cdoc.props[i];
506
- md.addTitle(prop.name, 3);
507
- md.addParagraph('---');
508
- md.addParagraph(prop.summary);
509
- md.addTable([{ 'type': prop.type }]);
510
- for (let j in prop.examples) {
511
- md.addCode(prop.examples[j].summary);
556
+ if (cdoc.props.length > 0) {
557
+ md.addTitle('Properties', 2);
558
+ md.addTable(cdoc.props.map(p => ({ Name: p.name, Type: linkedType(p.type, docs), Description: p.summary })));
559
+ for (let i in cdoc.props) {
560
+ let prop = cdoc.props[i];
561
+ md.addTitle(prop.name, 3);
562
+ md.addParagraph('---');
563
+ md.addParagraph(prop.summary);
564
+ md.addTable([{ 'type': linkedType(prop.type, docs) }]);
565
+ for (let j in prop.examples) {
566
+ md.addCode(prop.examples[j].summary);
567
+ }
512
568
  }
513
569
  }
514
570
  return md.toString();
@@ -518,9 +574,9 @@ function generateDocs(root, outputPath) {
518
574
  let components = docs.components;
519
575
  if (outputPath.endsWith('/'))
520
576
  outputPath = outputPath.substring(0, outputPath.length - 1);
521
- mkdirp_1.default(outputPath + '/components/');
522
- mkdirp_1.default(outputPath + '/types/');
523
- mkdirp_1.default(outputPath + '/hooks/');
577
+ mkdirp_1.default.sync(outputPath + '/components/');
578
+ mkdirp_1.default.sync(outputPath + '/types/');
579
+ mkdirp_1.default.sync(outputPath + '/hooks/');
524
580
  for (let i in components) {
525
581
  let component = components[i];
526
582
  if (ComponentFlags.Export === (component.flags & ComponentFlags.Export)) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package-lock.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iviva/react-tsdoc",
3
- "version": "0.1.0",
3
+ "version": "0.1.4",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iviva/react-tsdoc",
3
- "version": "0.1.0",
3
+ "version": "0.1.4",
4
4
  "description": "Tool to generate documentation and type definitions for your react component library",
5
5
  "keywords": [
6
6
  "react",
package/src/index.ts CHANGED
@@ -12,63 +12,63 @@ enum ComponentFlags {
12
12
  Hook = 1 << 1,
13
13
  }
14
14
 
15
- function logCompilerMessage(message:string) {
15
+ function logCompilerMessage(message: string) {
16
16
  console.error(chalk.gray(`[TypeScript] ${message}`));
17
17
  }
18
- function logDebug(...objects:any[]) {
18
+ function logDebug(...objects: any[]) {
19
19
  console.log(chalk.gray(...objects));
20
20
  }
21
- function logInfo(...objects:any[]) {
21
+ function logInfo(...objects: any[]) {
22
22
  console.log(chalk.green(...objects));
23
23
  }
24
- function logWarning(...objects:any[]) {
24
+ function logWarning(...objects: any[]) {
25
25
  console.log(chalk.redBright(...objects));
26
26
  }
27
- function logError(...objects:any[]) {
27
+ function logError(...objects: any[]) {
28
28
  console.log(chalk.redBright(...objects));
29
29
  }
30
- function indentCode(code:string,chars:string) {
30
+ function indentCode(code: string, chars: string) {
31
31
  let lines = code.split('\n').map(line => line.trimRight());
32
32
  return lines.map(line => chars + line).join('\n');
33
33
  }
34
34
  class MarkdownBuilder {
35
35
  private code = "";
36
- public addTitle(title:string,level:1|2|3|4) {
36
+ public addTitle(title: string, level: 1 | 2 | 3 | 4) {
37
37
  let headerChar = '#';
38
38
  let prefix = '';
39
- for(let i=0;i<level;i++) {
39
+ for (let i = 0; i < level; i++) {
40
40
  prefix += headerChar;
41
41
  }
42
- this.code += prefix +' ' + title+'\n\n';
42
+ this.code += prefix + ' ' + title + '\n\n';
43
43
  }
44
- public addParagraph(p:string) {
45
-
44
+ public addParagraph(p: string) {
45
+
46
46
  this.code += '\n\n' + p + '\n\n';
47
47
  }
48
48
 
49
- public addCode(code:string) {
49
+ public addCode(code: string) {
50
50
  code = code.trim();
51
51
  if (code.startsWith('```')) {
52
52
  code = code.substring(3);
53
53
  }
54
54
  if (code.endsWith('```')) {
55
- code = code.substring(0,code.length-3);
55
+ code = code.substring(0, code.length - 3);
56
56
  }
57
57
  this.code += '\n\n```tsx\n' + code.trim() + '\n```\n\n'
58
58
  }
59
- public addTable(table:any[]) {
60
- const tableFormat = (s:string) => {
61
- return s.replace(/\s+/g,' ').replace(/\|/g,'\\|');
59
+ public addTable(table: any[]) {
60
+ const tableFormat = (s: string) => {
61
+ return s.replace(/\s+/g, ' ').replace(/\|/g, '\\|');
62
62
  }
63
- if (table.length==0) return;
63
+ if (table.length == 0) return;
64
64
  let headers = Object.keys(table[0]);
65
65
  this.code += '|' + (headers.map(tableFormat)).join('|') + '|\n';
66
- this.code += '|' + (headers.map(h=>'-')).join('|')+'|\n';
67
- for(let i in table) {
66
+ this.code += '|' + (headers.map(h => '-')).join('|') + '|\n';
67
+ for (let i in table) {
68
68
  let row = table[i];
69
69
  this.code += '|' + (headers.map(h => tableFormat(row[h]))).join('|') + '|\n';
70
70
  }
71
-
71
+
72
72
  }
73
73
  public toString() {
74
74
  return this.code;
@@ -79,7 +79,7 @@ interface IExportModuleOptions {
79
79
  }
80
80
 
81
81
  interface ITypeDefinition {
82
- comment:string;
82
+ comment: string;
83
83
  }
84
84
 
85
85
  interface IFunctionParam {
@@ -87,12 +87,12 @@ interface IFunctionParam {
87
87
  type: string;
88
88
  }
89
89
  interface IFunctionSignature extends ITypeDefinition {
90
- parameters:IFunctionParam[];
91
- return:string;
90
+ parameters: IFunctionParam[];
91
+ return: string;
92
92
  code: string;
93
93
  }
94
- interface IUnion extends ITypeDefinition{
95
- items:string[];
94
+ interface IUnion extends ITypeDefinition {
95
+ items: string[];
96
96
  code: string;
97
97
  }
98
98
  interface IInterfaceMember {
@@ -109,7 +109,10 @@ interface IInterfaceDeclaration extends ITypeDefinition {
109
109
  interface IReactComponent {
110
110
  name: string;
111
111
  propType: string;
112
+ stateType?: string
113
+ refType?: string
112
114
  comment: string;
115
+ type?: 'class' | 'functional' | 'forwardRef'
113
116
  }
114
117
  interface IReactHookParam {
115
118
  name: string;
@@ -117,37 +120,37 @@ interface IReactHookParam {
117
120
  }
118
121
  interface IReactHook {
119
122
  name: string;
120
- type:string;
121
- parameters:IReactHookParam[];
122
- comment:string;
123
+ type: string;
124
+ parameters: IReactHookParam[];
125
+ comment: string;
123
126
  }
124
127
  interface IDocInfo {
125
128
  interfaces: { [key: string]: IInterfaceDeclaration };
126
129
  components: { [key: string]: IReactComponent };
127
130
  hooks: { [key: string]: IReactHook };
128
- functions:{[key:string]:IFunctionSignature};
129
- unions:{[key:string]:IUnion};
131
+ functions: { [key: string]: IFunctionSignature };
132
+ unions: { [key: string]: IUnion };
130
133
 
131
134
  }
132
135
  interface IExample {
133
136
  summary: string;
134
-
137
+
135
138
  }
136
139
  interface ITypeDocumentation {
137
140
  name: string;
138
- type: 'interface' | 'function' |'union';
141
+ type: 'interface' | 'function' | 'union';
139
142
  summary: string;
140
- examples:IExample[];
141
- code:string;
142
- flags:ComponentFlags;
143
+ examples: IExample[];
144
+ code: string;
145
+ flags: ComponentFlags;
143
146
 
144
147
  }
145
148
 
146
149
  interface IHookDocumentation {
147
150
  name: string;
148
151
  summary: string;
149
- examples:IExample[];
150
- flags:ComponentFlags;
152
+ examples: IExample[];
153
+ flags: ComponentFlags;
151
154
  }
152
155
  interface IComponentDocumentation {
153
156
  /**
@@ -173,13 +176,13 @@ interface IComponentDocumentation {
173
176
  /**
174
177
  * Any custom @-attribute flags set on the component
175
178
  */
176
- flags:ComponentFlags;
179
+ flags: ComponentFlags;
177
180
 
178
181
  }
179
182
  interface IDocObject {
180
- components:IComponentDocumentation[];
181
- hooks:IHookDocumentation[];
182
- types:ITypeDocumentation[];
183
+ components: IComponentDocumentation[];
184
+ hooks: IHookDocumentation[];
185
+ types: ITypeDocumentation[];
183
186
  }
184
187
 
185
188
  /**
@@ -191,7 +194,7 @@ interface IComponentPropDocumentation {
191
194
  summary: string;
192
195
  examples: IExample[];
193
196
  }
194
- function extractActualContentFromDocMess(node:tsdoc.DocNode):string {
197
+ function extractActualContentFromDocMess(node: tsdoc.DocNode): string {
195
198
  if (!node) {
196
199
  return "";
197
200
  }
@@ -199,85 +202,112 @@ function extractActualContentFromDocMess(node:tsdoc.DocNode):string {
199
202
  if (node instanceof tsdoc.DocExcerpt) {
200
203
  result += node.content.toString();
201
204
  }
202
- for(const childNode of node.getChildNodes()) {
205
+ for (const childNode of node.getChildNodes()) {
203
206
  result += extractActualContentFromDocMess(childNode);
204
207
  }
205
208
  return result;
206
209
  }
207
- function parseTSDocComment(comment: string): [string, IExample[],ComponentFlags] {
210
+ function parseTSDocComment(comment: string): [string, IExample[], ComponentFlags] {
208
211
  let config = new tsdoc.TSDocConfiguration();
209
212
 
210
213
  config.addTagDefinition(
211
214
  new tsdoc.TSDocTagDefinition({
212
- tagName:'@export',
213
- syntaxKind:tsdoc.TSDocTagSyntaxKind.ModifierTag,
214
- allowMultiple:false
215
- } )
215
+ tagName: '@export',
216
+ syntaxKind: tsdoc.TSDocTagSyntaxKind.ModifierTag,
217
+ allowMultiple: false
218
+ })
216
219
  );
217
220
 
218
221
  config.addTagDefinition(
219
222
  new tsdoc.TSDocTagDefinition({
220
- tagName:'@hook',
221
- syntaxKind:tsdoc.TSDocTagSyntaxKind.ModifierTag,
222
- allowMultiple:false
223
- } )
223
+ tagName: '@hook',
224
+ syntaxKind: tsdoc.TSDocTagSyntaxKind.ModifierTag,
225
+ allowMultiple: false
226
+ })
224
227
  );
225
228
 
226
229
  let parser = new tsdoc.TSDocParser(config);
227
230
 
228
231
  let ctx = parser.parseString(comment);
229
232
  let summary = extractActualContentFromDocMess(ctx.docComment.summarySection);
230
- let examples:IExample[] = [];
231
- let props:ComponentFlags = ComponentFlags.None;
232
- for(const block of ctx.docComment.customBlocks) {
233
+ let examples: IExample[] = [];
234
+ let props: ComponentFlags = ComponentFlags.None;
235
+ for (const block of ctx.docComment.customBlocks) {
233
236
  if (block.blockTag.tagName == '@example') {
234
- let example = {summary:extractActualContentFromDocMess(block.content)};
237
+ let example = { summary: extractActualContentFromDocMess(block.content) };
235
238
  examples.push(example);
236
239
 
237
240
  }
238
241
  }
239
- let flags:ComponentFlags = ComponentFlags.None;
242
+ let flags: ComponentFlags = ComponentFlags.None;
240
243
 
241
244
  if (ctx.docComment.modifierTagSet.hasTagName('@export')) {
242
245
  flags = flags | ComponentFlags.Export;
243
- }
246
+ }
244
247
 
245
248
  if (ctx.docComment.modifierTagSet.hasTagName('@hook')) {
246
249
  flags = flags | ComponentFlags.Hook;
247
250
  }
248
251
 
249
- return [summary,examples,flags];
252
+ return [summary, examples, flags];
250
253
  }
251
254
  function generatePropDocs(inf: IInterfaceDeclaration) {
252
255
  let results: IComponentPropDocumentation[] = [];
253
256
  for (let i in inf.members) {
254
257
  let prop = inf.members[i];
255
258
  let propDoc: IComponentPropDocumentation = { examples: [], name: prop.name, summary: '', type: prop.type };
256
- [propDoc.summary,propDoc.examples] = parseTSDocComment(prop.comment);
259
+ [propDoc.summary, propDoc.examples] = parseTSDocComment(prop.comment);
257
260
  results.push(propDoc);
258
261
  }
259
262
  return results;
260
263
  }
261
- function generateHookTypeDefinition(hook:IReactHook) {
264
+ function generateHookTypeDefinition(hook: IReactHook) {
262
265
  return `export const ${hook.name}:${hook.type};`;
263
266
  }
264
- function generateComponentTypeDefinition(c:IReactComponent,interfaces:{[key:string]:IInterfaceDeclaration}) {
267
+ function generateComponentTypeDefinition(c: IReactComponent, interfaces: { [key: string]: IInterfaceDeclaration }) {
265
268
  let code = "";
269
+ let type = c.type || 'functional'
266
270
  let inf = interfaces[c.propType];
267
271
  if (inf) {
268
272
  code += inf.comment + '\n';
269
273
  code += inf.code + '\n';
270
274
  }
275
+ if (c.stateType) {
276
+ let stateInf = interfaces[c.stateType];
277
+ if (stateInf) {
278
+ code += stateInf.comment + '\n';
279
+ code += stateInf.code + '\n';
280
+ }
281
+ }
282
+ if (c.refType) {
283
+ let refInf = interfaces[c.refType];
284
+ if (refInf) {
285
+ code += refInf.comment + '\n';
286
+ code += refInf.code + '\n';
287
+ }
288
+ }
271
289
  code += c.comment + '\n';
272
- code += `export const ${c.name} : React.FunctionComponent<${c.propType}>;\n`
290
+
291
+ switch (type) {
292
+ case 'functional':
293
+ code += `export const ${c.name} : React.FunctionComponent<${c.propType}>;\n`
294
+ break
295
+ case 'class':
296
+ code += `export class ${c.name} extends React.Component<${c.propType}, ${c.stateType || 'any'}> {}\n`
297
+ break
298
+ case 'forwardRef':
299
+ code += `export const ${c.name}:React.ForwardRefExoticComponent<${c.propType} & React.RefAttributes<${c.refType || 'any'}>>;\n`
300
+ break
301
+ }
302
+
273
303
  return code;
274
304
  }
275
- function fillRelatedTypes(t:string,types:any,docInfo:IDocInfo) {
305
+ function fillRelatedTypes(t: string, types: any, docInfo: IDocInfo) {
276
306
  if (docInfo.interfaces[t]) {
277
307
  types[t] = 1;
278
308
  let inf = docInfo.interfaces[t];
279
- for(let m of inf.members) {
280
- fillRelatedTypes(m.comment,types,docInfo);
309
+ for (let m of inf.members) {
310
+ fillRelatedTypes(m.comment, types, docInfo);
281
311
  }
282
312
  return;
283
313
  }
@@ -288,10 +318,10 @@ function fillRelatedTypes(t:string,types:any,docInfo:IDocInfo) {
288
318
  if (docInfo.functions[t]) {
289
319
  let f = docInfo.functions[t];
290
320
  types[t] = 1;
291
- fillRelatedTypes(f.return,types,docInfo);
292
- for(let p of f.parameters) {
321
+ fillRelatedTypes(f.return, types, docInfo);
322
+ for (let p of f.parameters) {
293
323
  let pt = p.type;
294
- fillRelatedTypes(pt,types,docInfo);
324
+ fillRelatedTypes(pt, types, docInfo);
295
325
  }
296
326
  }
297
327
 
@@ -300,9 +330,9 @@ function generateDocObject(docInfo: IDocInfo): IDocObject {
300
330
  let components: IComponentDocumentation[] = [];
301
331
  //let typesToExport:any = {};
302
332
  for (let cn in docInfo.components) {
303
- let componentDoc: IComponentDocumentation = { examples: [], name: cn, props: [], summary: '' ,flags:ComponentFlags.None};
333
+ let componentDoc: IComponentDocumentation = { examples: [], name: cn, props: [], summary: '', flags: ComponentFlags.None };
304
334
  let componentInfo = docInfo.components[cn];
305
- [componentDoc.summary,componentDoc.examples,componentDoc.flags] = parseTSDocComment(componentInfo.comment);
335
+ [componentDoc.summary, componentDoc.examples, componentDoc.flags] = parseTSDocComment(componentInfo.comment);
306
336
 
307
337
  let propType = docInfo.interfaces[componentInfo.propType];
308
338
  if (!!propType) {
@@ -313,11 +343,11 @@ function generateDocObject(docInfo: IDocInfo): IDocObject {
313
343
  components.push(componentDoc);
314
344
 
315
345
  }
316
- let hooks:IHookDocumentation[] = [];
317
- for(let hi in docInfo.hooks) {
346
+ let hooks: IHookDocumentation[] = [];
347
+ for (let hi in docInfo.hooks) {
318
348
  let hook = docInfo.hooks[hi];
319
- let hookDoc:IHookDocumentation = {name:hook.name,flags:ComponentFlags.None,summary:'',examples:[]};
320
- [hookDoc.summary,hookDoc.examples,hookDoc.flags] = parseTSDocComment(hook.comment);
349
+ let hookDoc: IHookDocumentation = { name: hook.name, flags: ComponentFlags.None, summary: '', examples: [] };
350
+ [hookDoc.summary, hookDoc.examples, hookDoc.flags] = parseTSDocComment(hook.comment);
321
351
  let propType = docInfo.functions[hook.type];
322
352
  // if (!!propType) {
323
353
  // typesToExport[hook.type] = 1;
@@ -328,31 +358,31 @@ function generateDocObject(docInfo: IDocInfo): IDocObject {
328
358
  // for(let k of Object.keys(typesToExport)) {
329
359
  // fillRelatedTypes(k,typesToExport,docInfo);
330
360
  // }
331
- let types:ITypeDocumentation[] = [];
332
- for(let k of Object.keys(docInfo.interfaces)) {
361
+ let types: ITypeDocumentation[] = [];
362
+ for (let k of Object.keys(docInfo.interfaces)) {
333
363
  let inf = docInfo.interfaces[k];
334
- let typeDoc:ITypeDocumentation = { examples:[],name:inf.name,summary:'',type:'interface',code:'',flags:ComponentFlags.None};
364
+ let typeDoc: ITypeDocumentation = { examples: [], name: inf.name, summary: '', type: 'interface', code: '', flags: ComponentFlags.None };
335
365
  typeDoc.code = inf.code;
336
- [typeDoc.summary,typeDoc.examples,typeDoc.flags] = parseTSDocComment(inf.comment);
366
+ [typeDoc.summary, typeDoc.examples, typeDoc.flags] = parseTSDocComment(inf.comment);
337
367
  types.push(typeDoc);
338
368
  }
339
- for(let k of Object.keys(docInfo.functions)) {
369
+ for (let k of Object.keys(docInfo.functions)) {
340
370
  let inf = docInfo.functions[k];
341
- let typeDoc:ITypeDocumentation = { examples:[],name:k,summary:'',type:'function',code:'',flags:ComponentFlags.None};
371
+ let typeDoc: ITypeDocumentation = { examples: [], name: k, summary: '', type: 'function', code: '', flags: ComponentFlags.None };
342
372
  typeDoc.code = inf.code;
343
- [typeDoc.summary,typeDoc.examples,typeDoc.flags] = parseTSDocComment(inf.comment);
373
+ [typeDoc.summary, typeDoc.examples, typeDoc.flags] = parseTSDocComment(inf.comment);
344
374
  types.push(typeDoc);
345
375
  }
346
- for(let k of Object.keys(docInfo.unions)) {
376
+ for (let k of Object.keys(docInfo.unions)) {
347
377
  let inf = docInfo.unions[k];
348
- let typeDoc:ITypeDocumentation = { examples:[],name:k,summary:'',type:'union',code:'',flags:ComponentFlags.None};
378
+ let typeDoc: ITypeDocumentation = { examples: [], name: k, summary: '', type: 'union', code: '', flags: ComponentFlags.None };
349
379
  typeDoc.code = inf.code;
350
- [typeDoc.summary,typeDoc.examples,typeDoc.flags] = parseTSDocComment(inf.comment);
380
+ [typeDoc.summary, typeDoc.examples, typeDoc.flags] = parseTSDocComment(inf.comment);
351
381
  types.push(typeDoc);
352
382
  }
353
-
354
383
 
355
- return {components,hooks,types};
384
+
385
+ return { components, hooks, types };
356
386
  }
357
387
 
358
388
  function extractComment(node: ts.Node) {
@@ -361,22 +391,22 @@ function extractComment(node: ts.Node) {
361
391
  if (!comments) return '';
362
392
  return comments!.map(c => fullText.slice(c.pos, c.end)).join('\n');
363
393
  }
364
- function getCode(node:ts.Node) {
365
- return node.getSourceFile().getFullText().substring(node.getStart(),node.getEnd());
394
+ function getCode(node: ts.Node) {
395
+ return node.getSourceFile().getFullText().substring(node.getStart(), node.getEnd());
366
396
  }
367
- function parseFunctionSignature(node:ts.Node,docInfo:IDocInfo) {
397
+ function parseFunctionSignature(node: ts.Node, docInfo: IDocInfo) {
368
398
 
369
399
  }
370
400
  function parseInterfaceDeclaration(node: ts.Node, docInfo: IDocInfo) {
371
401
 
372
402
  let name = (node as any).name.getText();
373
403
  let members = (node as any).members;
374
- if (members.length==1 && members[0].kind == ts.SyntaxKind.CallSignature) {
375
- return parseFunctionSignature(members[0],docInfo);
404
+ if (members.length == 1 && members[0].kind == ts.SyntaxKind.CallSignature) {
405
+ return parseFunctionSignature(members[0], docInfo);
376
406
  }
377
407
 
378
408
  let docs = extractComment(node);
379
- let inf: IInterfaceDeclaration = { comment: docs, members: [], name: name ,code:getCode(node)};
409
+ let inf: IInterfaceDeclaration = { comment: docs, members: [], name: name, code: getCode(node) };
380
410
  for (let i = 0; i < members.length; i++) {
381
411
  let member = members[i];
382
412
  let name = member.name.getText();
@@ -390,12 +420,11 @@ function parseInterfaceDeclaration(node: ts.Node, docInfo: IDocInfo) {
390
420
  function parseVariableDeclaration(node: ts.Node, docInfo: IDocInfo) {
391
421
 
392
422
  let type = (node as any).type?.typeName?.getText();
393
- if ((node as any)?.type?.kind == ts.SyntaxKind.CallSignature ||
423
+ if ((node as any)?.type?.kind == ts.SyntaxKind.CallSignature ||
394
424
  (node as any)?.type?.kind == ts.SyntaxKind.FunctionType
395
- )
396
- {
397
- console.log('dug');
398
- }
425
+ ) {
426
+ console.log('dug');
427
+ }
399
428
  if (!type) {
400
429
  return;
401
430
  }
@@ -403,27 +432,52 @@ function parseVariableDeclaration(node: ts.Node, docInfo: IDocInfo) {
403
432
  if (type == 'React.FunctionComponent') {
404
433
  let propType = (node as any).type.typeArguments[0].getText();
405
434
  let comment = extractComment(node.parent);
406
- docInfo.components[name] = { comment, propType, name };
435
+ docInfo.components[name] = { comment, propType, name, type: 'functional' };
436
+ return;
437
+ }
438
+ if (type == 'React.ForwardRefExoticComponent') {
439
+ let cType = (node as any).type.typeArguments[0].getText();
440
+ // get prop type and ref type
441
+ // assume
442
+ // - props defined as following format <PropType & RefType>
443
+ // - RefType always starts with `React.RefAttributes`
444
+ let parts = (cType as string).split("&", 2).map(p => p.trim())
445
+ let propType = parts[0]
446
+ let refType = parts[1]
447
+ if (parts[0].startsWith('React.RefAttributes')) {
448
+ propType = parts[1]
449
+ refType = parts[0]
450
+ }
451
+
452
+ refType = refType
453
+ .replace('React.RefAttributes<', '')
454
+ .replace(">", '')
455
+ .trim()
456
+
457
+
458
+ let comment = extractComment(node.parent);
459
+ docInfo.components[name] = { comment, propType, refType, name, type: 'forwardRef' };
407
460
  return;
408
461
  }
409
462
  if (name.startsWith('use')) {
410
463
  let comment = extractComment(node.parent);
411
- let parameters:IReactHookParam[] = [];
464
+ let parameters: IReactHookParam[] = [];
412
465
 
413
- docInfo.hooks[name] = {name,type,parameters,comment};
466
+ docInfo.hooks[name] = { name, type, parameters, comment };
414
467
  }
415
468
  }
416
469
  function parseClassDeclaration(node: ts.Node, docInfo: IDocInfo) {
417
470
  let className = (node as any)?.heritageClauses[0]?.types[0].expression.getText();
418
- if (className = 'React.Component') {
471
+ if (className == 'React.Component') {
419
472
  let propType = (node as any).heritageClauses[0].types[0].typeArguments[0].getText();
473
+ let stateType = (node as any).heritageClauses[0].types[0].typeArguments[1].getText();
420
474
  let comment = extractComment(node);
421
475
  let name = (node as any).name.getText();
422
- docInfo.components[name] = { comment, propType, name };
476
+ docInfo.components[name] = { comment, propType, name, stateType, type: 'class' };
423
477
 
424
478
  }
425
479
  }
426
- function parseTypeAlias(node:ts.Node,docInfo:IDocInfo) {
480
+ function parseTypeAlias(node: ts.Node, docInfo: IDocInfo) {
427
481
  let name = (node as any).name.getText();
428
482
  let type = (node as any).type;
429
483
  if (type.kind == ts.SyntaxKind.FunctionType) {
@@ -431,10 +485,10 @@ function parseTypeAlias(node:ts.Node,docInfo:IDocInfo) {
431
485
  let parameters = type.parameters;
432
486
  let comment = extractComment(node);
433
487
  let code = getCode(node);
434
- let f:IFunctionSignature = {parameters:[],return:returnType,comment,code};
435
- for(let p=0;p<parameters.length;p++) {
488
+ let f: IFunctionSignature = { parameters: [], return: returnType, comment, code };
489
+ for (let p = 0; p < parameters.length; p++) {
436
490
  let parameter = parameters[p];
437
- let fp:IFunctionParam = {name:parameter.name.getText(),type:parameter.type.getText()};
491
+ let fp: IFunctionParam = { name: parameter.name.getText(), type: parameter.type.getText() };
438
492
  f.parameters.push(fp);
439
493
 
440
494
  }
@@ -445,9 +499,9 @@ function parseTypeAlias(node:ts.Node,docInfo:IDocInfo) {
445
499
  let types = type.types;
446
500
  let comment = extractComment(node);
447
501
  let code = getCode(node);
448
- let u:IUnion = {items:[],comment,code};
502
+ let u: IUnion = { items: [], comment, code };
449
503
 
450
- for(let p=0;p<types.length;p++) {
504
+ for (let p = 0; p < types.length; p++) {
451
505
  let txt = types[p].getText();
452
506
  u.items.push(txt);
453
507
  }
@@ -458,7 +512,7 @@ function parseTypeAlias(node:ts.Node,docInfo:IDocInfo) {
458
512
  function walkTree(node: ts.Node, docInfo: IDocInfo) {
459
513
  switch (node.kind) {
460
514
  case ts.SyntaxKind.TypeAliasDeclaration:
461
- parseTypeAlias(node,docInfo);
515
+ parseTypeAlias(node, docInfo);
462
516
  break;
463
517
  case ts.SyntaxKind.InterfaceDeclaration:
464
518
  parseInterfaceDeclaration(node, docInfo);
@@ -470,13 +524,12 @@ function walkTree(node: ts.Node, docInfo: IDocInfo) {
470
524
  parseClassDeclaration(node, docInfo);
471
525
  break;
472
526
  case ts.SyntaxKind.FunctionDeclaration:
473
- parseVariableDeclaration(node,docInfo);
527
+ case 242:
528
+ parseVariableDeclaration(node, docInfo);
474
529
  break;
475
530
 
476
-
477
-
478
531
  }
479
- node.forEachChild(child => walkTree(child, docInfo));
532
+ node.forEachChild((child: any) => walkTree(child, docInfo));
480
533
 
481
534
  }
482
535
  function validateProgram(program: ts.Program) {
@@ -505,12 +558,12 @@ function getSources(program: ts.Program) {
505
558
  }).map(f => f.fileName);
506
559
  }
507
560
 
508
- function generateExportModule(docs:IDocObject,docInfo:IDocInfo,options:IExportModuleOptions) {
561
+ function generateExportModule(docs: IDocObject, docInfo: IDocInfo, options: IExportModuleOptions) {
509
562
  let code = '';
510
563
  if (options?.moduleName) {
511
564
  code += `declare module "${options.moduleName}" {\n`;
512
565
  }
513
- for(let i in docs.types) {
566
+ for (let i in docs.types) {
514
567
  let obj = docs.types[i];
515
568
  let comment = '';
516
569
  if (docInfo.interfaces[obj.name]) {
@@ -523,23 +576,24 @@ function generateExportModule(docs:IDocObject,docInfo:IDocInfo,options:IExportMo
523
576
  comment = docInfo.unions[obj.name].comment;
524
577
  }
525
578
  if (ComponentFlags.Export === (obj.flags & ComponentFlags.Export)) {
526
- code += indentCode('\n' + comment + '\n' + 'export ' + obj.code+'\n',' ');
579
+ code += indentCode('\n' + comment + '\n' + 'export ' + obj.code + '\n', ' ');
527
580
  }
528
581
  }
529
- for(let i in docs.components) {
582
+ for (let i in docs.components) {
530
583
  let doc = docs.components[i];
584
+
531
585
  if (ComponentFlags.Export === (doc.flags & ComponentFlags.Export)) {
532
586
  let component = docInfo.components[doc.name];
533
- let componentCode = generateComponentTypeDefinition(component,docInfo.interfaces);
534
- code += indentCode(componentCode,' ');
587
+ let componentCode = generateComponentTypeDefinition(component, docInfo.interfaces);
588
+ code += indentCode(componentCode, ' ');
535
589
  }
536
590
  }
537
- for(let i in docs.hooks) {
591
+ for (let i in docs.hooks) {
538
592
  let doc = docs.hooks[i];
539
593
  if (ComponentFlags.Export === (doc.flags & ComponentFlags.Export)) {
540
594
  let hook = docInfo.hooks[doc.name];
541
595
  let hookCode = generateHookTypeDefinition(hook);
542
- code += indentCode(hookCode,' ');
596
+ code += indentCode(hookCode, ' ');
543
597
  }
544
598
 
545
599
  }
@@ -547,18 +601,18 @@ function generateExportModule(docs:IDocObject,docInfo:IDocInfo,options:IExportMo
547
601
  return code;
548
602
  }
549
603
 
550
- function load(root: string):[IDocInfo,IDocObject] {
604
+ function load(root: string): [IDocInfo, IDocObject] {
551
605
  let options: ts.CompilerOptions = {
552
606
  jsx: ts.JsxEmit.React,
553
607
  };
554
- logDebug('Loading',root);
608
+ logDebug('Loading', root);
555
609
  logDebug('Loading', root);
556
610
  let program = ts.createProgram([root], options);
557
611
  logDebug('Compiled');
558
612
  validateProgram(program);
559
613
  logDebug('Validated');
560
614
  let sources = getSources(program);
561
- let docInfo: IDocInfo = { interfaces: {}, components: {},hooks:{},functions:{},unions:{} };
615
+ let docInfo: IDocInfo = { interfaces: {}, components: {}, hooks: {}, functions: {}, unions: {} };
562
616
  for (var i = 0; i < sources.length; i++) {
563
617
  let source = sources[i];
564
618
  logDebug('Loading', source);
@@ -574,170 +628,179 @@ function load(root: string):[IDocInfo,IDocObject] {
574
628
  }
575
629
  }
576
630
  let docs = generateDocObject(docInfo);
577
- return [docInfo,docs];
578
-
579
-
580
-
581
- /*
582
- for(let i in docInfo.components) {
583
- let c = docInfo.components[i];
584
- let inf = docInfo.interfaces[c.propType];
585
- if (!!inf) {
586
- console.log(inf.comment);
587
- console.log(inf.code);
588
- }
589
- console.log(c.comment);
590
- console.log(`export const ${c.name} : React.FunctionComponent<${c.propType}>;`)
591
- }*/
631
+ return [docInfo, docs];
632
+
633
+
634
+
635
+ /*
636
+ for(let i in docInfo.components) {
637
+ let c = docInfo.components[i];
638
+ let inf = docInfo.interfaces[c.propType];
639
+ if (!!inf) {
640
+ console.log(inf.comment);
641
+ console.log(inf.code);
642
+ }
643
+ console.log(c.comment);
644
+ console.log(`export const ${c.name} : React.FunctionComponent<${c.propType}>;`)
645
+ }*/
592
646
 
593
647
  }
594
648
 
595
649
 
596
- function generateHookDoc(cdoc:IHookDocumentation,docs:IDocObject) {
597
- let md =new MarkdownBuilder();
598
- md.addTitle(cdoc.name,1)
650
+ function generateHookDoc(cdoc: IHookDocumentation, docs: IDocObject) {
651
+ let md = new MarkdownBuilder();
652
+ md.addTitle(cdoc.name, 1)
599
653
  md.addParagraph(cdoc.summary);
600
- md.addTitle('Installation',2);
654
+ md.addTitle('Installation', 2);
601
655
  md.addCode(`import {${cdoc.name}} from 'uxp/components';`);
602
656
  if (cdoc.examples.length > 0) {
603
- md.addTitle('Examples',2);
604
- for(let i in cdoc.examples) {
657
+ md.addTitle('Examples', 2);
658
+ for (let i in cdoc.examples) {
605
659
  md.addCode(cdoc.examples[i].summary)
606
660
  }
607
661
  }
608
-
662
+
609
663
  return md.toString();
610
664
  }
611
665
 
612
- function generateTypeDoc(cdoc:ITypeDocumentation,docs:IDocObject) {
613
- let md =new MarkdownBuilder();
614
- md.addTitle(cdoc.name,1)
666
+ function generateTypeDoc(cdoc: ITypeDocumentation, docs: IDocObject) {
667
+ let md = new MarkdownBuilder();
668
+ md.addTitle(cdoc.name, 1)
615
669
  md.addParagraph(cdoc.summary);
616
670
  md.addCode(cdoc.code);
617
- md.addTitle('Usage',2);
671
+ md.addTitle('Usage', 2);
618
672
  md.addCode(`import {${cdoc.name}} from 'uxp/components';`);
619
673
  if (cdoc.examples.length > 0) {
620
- md.addTitle('Examples',2);
621
- for(let i in cdoc.examples) {
674
+ md.addTitle('Examples', 2);
675
+ for (let i in cdoc.examples) {
622
676
  md.addCode(cdoc.examples[i].summary)
623
677
  }
624
678
  }
625
-
626
-
679
+
680
+
627
681
  return md.toString();
628
682
  }
629
- function generateComponentDoc(cdoc:IComponentDocumentation,docs:IDocObject) {
630
- let md =new MarkdownBuilder();
631
- md.addTitle(cdoc.name,1)
683
+ function linkedType(t: string, docs: IDocObject) {
684
+ if (docs.types.find(x => x.name.toUpperCase() == t.toUpperCase())) {
685
+ return `[${t}](types/${t})`;
686
+ }
687
+ return t;
688
+ }
689
+ function generateComponentDoc(cdoc: IComponentDocumentation, docs: IDocObject) {
690
+ let md = new MarkdownBuilder();
691
+ md.addTitle(cdoc.name, 1)
632
692
  md.addParagraph(cdoc.summary);
633
- md.addTitle('Installation',2);
693
+ md.addTitle('Installation', 2);
634
694
  md.addCode(`import {${cdoc.name}} from 'uxp/components';`);
635
695
  if (cdoc.examples.length > 0) {
636
- md.addTitle('Examples',2);
637
- for(let i in cdoc.examples) {
696
+ md.addTitle('Examples', 2);
697
+ for (let i in cdoc.examples) {
638
698
  md.addCode(cdoc.examples[i].summary)
639
699
  }
640
700
  }
641
- md.addTitle('Properties',2);
642
- md.addTable(cdoc.props.map(p => ({Name:p.name,Type:p.type,Description:p.summary})));
643
- for(let i in cdoc.props) {
644
- let prop = cdoc.props[i];
645
- md.addTitle(prop.name,3);
646
- md.addParagraph('---');
647
- md.addParagraph(prop.summary);
648
- md.addTable([{'type':prop.type}]);
649
-
650
- for(let j in prop.examples) {
651
- md.addCode(prop.examples[j].summary);
701
+ if (cdoc.props.length > 0) {
702
+
703
+ md.addTitle('Properties', 2);
704
+ md.addTable(cdoc.props.map(p => ({ Name: p.name, Type: linkedType(p.type, docs), Description: p.summary })));
705
+ for (let i in cdoc.props) {
706
+ let prop = cdoc.props[i];
707
+ md.addTitle(prop.name, 3);
708
+ md.addParagraph('---');
709
+ md.addParagraph(prop.summary);
710
+ md.addTable([{ 'type': linkedType(prop.type, docs) }]);
711
+
712
+ for (let j in prop.examples) {
713
+ md.addCode(prop.examples[j].summary);
714
+ }
652
715
  }
716
+
653
717
  }
654
-
655
718
  return md.toString();
656
719
  }
657
- function generateDocs(root: string, outputPath:string) {
658
- let [docInfo,docs] = load(root);
720
+ function generateDocs(root: string, outputPath: string) {
721
+ let [docInfo, docs] = load(root);
659
722
  let components = docs.components;
660
- if (outputPath.endsWith('/')) outputPath = outputPath.substring(0,outputPath.length-1);
723
+ if (outputPath.endsWith('/')) outputPath = outputPath.substring(0, outputPath.length - 1);
661
724
 
662
- mkdirp(outputPath + '/components/');
663
- mkdirp(outputPath + '/types/');
664
- mkdirp(outputPath + '/hooks/');
725
+ mkdirp.sync(outputPath + '/components/');
726
+ mkdirp.sync(outputPath + '/types/');
727
+ mkdirp.sync(outputPath + '/hooks/');
665
728
 
666
- for(let i in components) {
729
+ for (let i in components) {
667
730
  let component = components[i];
668
731
  if (ComponentFlags.Export === (component.flags & ComponentFlags.Export)) {
669
- let md = generateComponentDoc(component,docs);
732
+ let md = generateComponentDoc(component, docs);
670
733
  let path = outputPath + '/components/' + component.name + '.md';
671
734
 
672
- console.log(chalk.gray('Writing component',component.name,'to',path));
673
- fs.writeFileSync(path,md.toString());
735
+ console.log(chalk.gray('Writing component', component.name, 'to', path));
736
+ fs.writeFileSync(path, md.toString());
674
737
  }
675
738
  }
676
- for(let i in docs.types) {
739
+ for (let i in docs.types) {
677
740
  let type = docs.types[i];
678
741
  if (ComponentFlags.Export === (type.flags & ComponentFlags.Export)) {
679
- let md = generateTypeDoc(type,docs);
742
+ let md = generateTypeDoc(type, docs);
680
743
  let path = outputPath + '/types/' + type.name + '.md';
681
- console.log(chalk.gray('Writing type',type.name,'to',path));
682
- fs.writeFileSync(path,md.toString());
744
+ console.log(chalk.gray('Writing type', type.name, 'to', path));
745
+ fs.writeFileSync(path, md.toString());
683
746
  }
684
747
  }
685
748
 
686
- for(let i in docs.hooks) {
749
+ for (let i in docs.hooks) {
687
750
  let hook = docs.hooks[i];
688
751
  if (ComponentFlags.Export === (hook.flags & ComponentFlags.Export)) {
689
- let md = generateHookDoc(hook,docs);
752
+ let md = generateHookDoc(hook, docs);
690
753
  let path = outputPath + '/hooks/' + hook.name + '.md';
691
- console.log(chalk.gray('Writing hook',hook.name,'to',path));
692
- fs.writeFileSync(path,md.toString());
754
+ console.log(chalk.gray('Writing hook', hook.name, 'to', path));
755
+ fs.writeFileSync(path, md.toString());
693
756
  }
694
757
  }
695
758
  }
696
- function generateTypeDefinition(root:string,outputPath:string,moduleName:string) {
697
-
759
+ function generateTypeDefinition(root: string, outputPath: string, moduleName: string) {
760
+
698
761
 
699
- let [docInfo,docs] = load(root);
700
- let moduleCode = generateExportModule(docs,docInfo,{moduleName:moduleName || 'module'});
701
- fs.writeFileSync(outputPath,moduleCode);
762
+ let [docInfo, docs] = load(root);
763
+ let moduleCode = generateExportModule(docs, docInfo, { moduleName: moduleName || 'module' });
764
+ fs.writeFileSync(outputPath, moduleCode);
702
765
  }
703
766
 
704
767
  export function main() {
705
768
  try {
706
769
  let cmd = clap
707
- .command('react-tsdoc')
708
- .description('Generate docs for React components')
709
- .version('0.0.1')
710
- ;
770
+ .command('react-tsdoc')
771
+ .description('Generate docs for React components')
772
+ .version('0.0.1')
773
+ ;
711
774
  cmd.command('types [input.ts] [output.t.ds]')
712
- .option('--module-name <name>')
713
-
714
-
715
- .action((actionArgs:{args:string[],options:any})=>{
716
- let args = actionArgs.args || [];
717
- let options = actionArgs.options || {};
718
-
719
- generateTypeDefinition(
720
- args[0],
721
- args[1],
722
- options.moduleName
723
- );
724
- })
775
+ .option('--module-name <name>')
725
776
 
726
- ;
777
+
778
+ .action((actionArgs: { args: string[], options: any }) => {
779
+ let args = actionArgs.args || [];
780
+ let options = actionArgs.options || {};
781
+
782
+ generateTypeDefinition(
783
+ args[0],
784
+ args[1],
785
+ options.moduleName
786
+ );
787
+ })
788
+
789
+ ;
727
790
 
728
791
  cmd.command('docs [input.ts] [output-folder]')
729
- .action((actionArgs:{args:string[],options:any})=>{
730
- let {args,options} = actionArgs;
731
- generateDocs(args[0],args[1]);
732
- })
733
- ;
734
-
792
+ .action((actionArgs: { args: string[], options: any }) => {
793
+ let { args, options } = actionArgs;
794
+ generateDocs(args[0], args[1]);
795
+ })
796
+ ;
797
+
735
798
  cmd.run();
736
- } catch(e) {
799
+ } catch (e) {
737
800
  console.error(chalk.red(e));
738
801
 
739
802
  }
740
-
803
+
741
804
 
742
805
  }
743
806