@iviva/react-tsdoc 0.1.2 → 0.1.5

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