@iviva/react-tsdoc 0.1.8 → 0.2.0

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.
Files changed (50) hide show
  1. package/README.md +217 -26
  2. package/bin/react-tsdoc.js +1 -1
  3. package/dist/cli/index.d.ts +1 -0
  4. package/dist/cli/index.js +38 -0
  5. package/dist/cli/index.js.map +1 -0
  6. package/dist/core/analyzer.d.ts +18 -0
  7. package/dist/core/analyzer.js +574 -0
  8. package/dist/core/analyzer.js.map +1 -0
  9. package/dist/core/parser.d.ts +4 -0
  10. package/dist/core/parser.js +73 -0
  11. package/dist/core/parser.js.map +1 -0
  12. package/dist/core/types.d.ts +134 -0
  13. package/dist/core/types.js +10 -0
  14. package/dist/core/types.js.map +1 -0
  15. package/dist/generators/docs/component.d.ts +7 -0
  16. package/dist/generators/docs/component.js +87 -0
  17. package/dist/generators/docs/component.js.map +1 -0
  18. package/dist/generators/docs/function.d.ts +2 -0
  19. package/dist/generators/docs/function.js +38 -0
  20. package/dist/generators/docs/function.js.map +1 -0
  21. package/dist/generators/docs/hook.d.ts +2 -0
  22. package/dist/generators/docs/hook.js +36 -0
  23. package/dist/generators/docs/hook.js.map +1 -0
  24. package/dist/generators/docs/type.d.ts +2 -0
  25. package/dist/generators/docs/type.js +61 -0
  26. package/dist/generators/docs/type.js.map +1 -0
  27. package/dist/generators/markdown.d.ts +8 -0
  28. package/dist/generators/markdown.js +44 -0
  29. package/dist/generators/markdown.js.map +1 -0
  30. package/dist/generators/types/module.d.ts +4 -0
  31. package/dist/generators/types/module.js +242 -0
  32. package/dist/generators/types/module.js.map +1 -0
  33. package/dist/index.d.ts +4 -1
  34. package/dist/index.js +116 -603
  35. package/dist/index.js.map +1 -1
  36. package/dist/utils/file.d.ts +3 -0
  37. package/dist/utils/file.js +45 -0
  38. package/dist/utils/file.js.map +1 -0
  39. package/dist/utils/logger.d.ts +5 -0
  40. package/dist/utils/logger.js +28 -0
  41. package/dist/utils/logger.js.map +1 -0
  42. package/dist/utils/type-helpers.d.ts +13 -0
  43. package/dist/utils/type-helpers.js +160 -0
  44. package/dist/utils/type-helpers.js.map +1 -0
  45. package/package.json +28 -18
  46. package/.github/workflows/npm-publish.yml +0 -37
  47. package/clap.d.ts +0 -1
  48. package/package-lock.json +0 -104
  49. package/src/index.ts +0 -812
  50. package/tsconfig.json +0 -15
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.parseTSDocComment = exports.extractActualContentFromDocMess = void 0;
27
+ const tsdoc = __importStar(require("@microsoft/tsdoc"));
28
+ const types_1 = require("./types");
29
+ function extractActualContentFromDocMess(node) {
30
+ if (!node)
31
+ return '';
32
+ let result = '';
33
+ if (node instanceof tsdoc.DocExcerpt) {
34
+ result += node.content.toString();
35
+ }
36
+ for (const childNode of node.getChildNodes()) {
37
+ result += extractActualContentFromDocMess(childNode);
38
+ }
39
+ return result;
40
+ }
41
+ exports.extractActualContentFromDocMess = extractActualContentFromDocMess;
42
+ function parseTSDocComment(comment) {
43
+ const config = new tsdoc.TSDocConfiguration();
44
+ config.addTagDefinition(new tsdoc.TSDocTagDefinition({
45
+ tagName: '@export',
46
+ syntaxKind: tsdoc.TSDocTagSyntaxKind.ModifierTag,
47
+ allowMultiple: false
48
+ }));
49
+ config.addTagDefinition(new tsdoc.TSDocTagDefinition({
50
+ tagName: '@hook',
51
+ syntaxKind: tsdoc.TSDocTagSyntaxKind.ModifierTag,
52
+ allowMultiple: false
53
+ }));
54
+ const parser = new tsdoc.TSDocParser(config);
55
+ const ctx = parser.parseString(comment);
56
+ const summary = extractActualContentFromDocMess(ctx.docComment.summarySection);
57
+ const examples = [];
58
+ let flags = types_1.ComponentFlags.None;
59
+ for (const block of ctx.docComment.customBlocks) {
60
+ if (block.blockTag.tagName === '@example') {
61
+ examples.push({ summary: extractActualContentFromDocMess(block.content) });
62
+ }
63
+ }
64
+ if (ctx.docComment.modifierTagSet.hasTagName('@export')) {
65
+ flags |= types_1.ComponentFlags.Export;
66
+ }
67
+ if (ctx.docComment.modifierTagSet.hasTagName('@hook')) {
68
+ flags |= types_1.ComponentFlags.Hook;
69
+ }
70
+ return [summary, examples, flags];
71
+ }
72
+ exports.parseTSDocComment = parseTSDocComment;
73
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAC1C,mCAAmD;AAEnD,SAAgB,+BAA+B,CAAC,IAAmB;IAC/D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,IAAI,YAAY,KAAK,CAAC,UAAU,EAAE;QAClC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;KACrC;IACD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;QAC1C,MAAM,IAAI,+BAA+B,CAAC,SAAS,CAAC,CAAC;KACxD;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAVD,0EAUC;AAED,SAAgB,iBAAiB,CAAC,OAAe;IAC7C,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;IAC9C,MAAM,CAAC,gBAAgB,CACnB,IAAI,KAAK,CAAC,kBAAkB,CAAC;QACzB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,WAAW;QAChD,aAAa,EAAE,KAAK;KACvB,CAAC,CACL,CAAC;IACF,MAAM,CAAC,gBAAgB,CACnB,IAAI,KAAK,CAAC,kBAAkB,CAAC;QACzB,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,WAAW;QAChD,aAAa,EAAE,KAAK;KACvB,CAAC,CACL,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,+BAA+B,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,IAAI,KAAK,GAAmB,sBAAc,CAAC,IAAI,CAAC;IAEhD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE;QAC7C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE;YACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC9E;KACJ;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QACrD,KAAK,IAAI,sBAAc,CAAC,MAAM,CAAC;KAClC;IACD,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACnD,KAAK,IAAI,sBAAc,CAAC,IAAI,CAAC;KAChC;IAED,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AArCD,8CAqCC"}
@@ -0,0 +1,134 @@
1
+ export declare enum ComponentFlags {
2
+ None = 0,
3
+ Export = 1,
4
+ Hook = 2
5
+ }
6
+ export interface IExportInfo {
7
+ isDefault: boolean;
8
+ isNamed: boolean;
9
+ }
10
+ export interface ITypeDefinition {
11
+ comment: string;
12
+ }
13
+ export interface IFunctionParam {
14
+ name: string;
15
+ type: string;
16
+ }
17
+ export interface IFunctionSignature extends ITypeDefinition {
18
+ parameters: IFunctionParam[];
19
+ return: string;
20
+ code: string;
21
+ }
22
+ export interface IUnion extends ITypeDefinition {
23
+ items: string[];
24
+ code: string;
25
+ }
26
+ export interface IInterfaceMember {
27
+ name: string;
28
+ type: string;
29
+ comment: string;
30
+ isOptional?: boolean;
31
+ defaultValue?: string;
32
+ exampleValue?: string;
33
+ }
34
+ export interface IInterfaceDeclaration extends ITypeDefinition {
35
+ name: string;
36
+ comment: string;
37
+ members: IInterfaceMember[];
38
+ code: string;
39
+ }
40
+ export interface IReactComponent {
41
+ name: string;
42
+ propType: string;
43
+ stateType?: string;
44
+ refType?: string;
45
+ comment: string;
46
+ type?: 'class' | 'functional' | 'forwardRef';
47
+ exportInfo?: IExportInfo;
48
+ wrappers?: string[];
49
+ referencedComponent?: string;
50
+ }
51
+ export interface IReactHookParam {
52
+ name: string;
53
+ type: string;
54
+ }
55
+ export interface IReactHook {
56
+ name: string;
57
+ type: string;
58
+ parameters: IReactHookParam[];
59
+ comment: string;
60
+ }
61
+ export interface IEnumDeclaration extends ITypeDefinition {
62
+ name: string;
63
+ members: {
64
+ name: string;
65
+ value?: string;
66
+ }[];
67
+ code: string;
68
+ }
69
+ export interface ITypeAlias extends ITypeDefinition {
70
+ name: string;
71
+ type: string;
72
+ code: string;
73
+ }
74
+ export interface IDocInfo {
75
+ interfaces: {
76
+ [key: string]: IInterfaceDeclaration;
77
+ };
78
+ components: {
79
+ [key: string]: IReactComponent;
80
+ };
81
+ hooks: {
82
+ [key: string]: IReactHook;
83
+ };
84
+ functions: {
85
+ [key: string]: IFunctionSignature;
86
+ };
87
+ unions: {
88
+ [key: string]: IUnion;
89
+ };
90
+ enums: {
91
+ [key: string]: IEnumDeclaration;
92
+ };
93
+ typeAliases: {
94
+ [key: string]: ITypeAlias;
95
+ };
96
+ }
97
+ export interface IExample {
98
+ summary: string;
99
+ }
100
+ export interface ITypeDocumentation {
101
+ name: string;
102
+ type: 'interface' | 'function' | 'union';
103
+ summary: string;
104
+ examples: IExample[];
105
+ code: string;
106
+ flags: ComponentFlags;
107
+ }
108
+ export interface IHookDocumentation {
109
+ name: string;
110
+ summary: string;
111
+ examples: IExample[];
112
+ flags: ComponentFlags;
113
+ }
114
+ export interface IComponentDocumentation {
115
+ name: string;
116
+ summary: string;
117
+ examples: IExample[];
118
+ props: IComponentPropDocumentation[];
119
+ flags: ComponentFlags;
120
+ }
121
+ export interface IComponentPropDocumentation {
122
+ name: string;
123
+ type: string;
124
+ summary: string;
125
+ examples: IExample[];
126
+ }
127
+ export interface IDocObject {
128
+ components: IComponentDocumentation[];
129
+ hooks: IHookDocumentation[];
130
+ types: ITypeDocumentation[];
131
+ }
132
+ export interface IExportModuleOptions {
133
+ moduleName: string;
134
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComponentFlags = void 0;
4
+ var ComponentFlags;
5
+ (function (ComponentFlags) {
6
+ ComponentFlags[ComponentFlags["None"] = 0] = "None";
7
+ ComponentFlags[ComponentFlags["Export"] = 1] = "Export";
8
+ ComponentFlags[ComponentFlags["Hook"] = 2] = "Hook";
9
+ })(ComponentFlags = exports.ComponentFlags || (exports.ComponentFlags = {}));
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,mDAAQ,CAAA;IACR,uDAAe,CAAA;IACf,mDAAa,CAAA;AACjB,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
@@ -0,0 +1,7 @@
1
+ import { IReactComponent, IDocInfo, IComponentPropDocumentation, IInterfaceDeclaration } from '../../core/types';
2
+ export declare function generatePropDocs(inf: IInterfaceDeclaration): IComponentPropDocumentation[];
3
+ export declare function extractTypesFromComplex(comp: IReactComponent, docInfo: IDocInfo): {
4
+ propType: string;
5
+ refType?: string;
6
+ };
7
+ export declare function generateComponentDocFromDocInfo(comp: IReactComponent, docInfo: IDocInfo, moduleName?: string, dependentTypes?: Set<string>): string;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateComponentDocFromDocInfo = exports.extractTypesFromComplex = exports.generatePropDocs = void 0;
4
+ const markdown_1 = require("../markdown");
5
+ const parser_1 = require("../../core/parser");
6
+ const type_helpers_1 = require("../../utils/type-helpers");
7
+ const module_1 = require("../types/module");
8
+ function generatePropDocs(inf) {
9
+ const results = [];
10
+ for (const prop of inf.members) {
11
+ const propDoc = { examples: [], name: prop.name, summary: '', type: prop.type };
12
+ [propDoc.summary, propDoc.examples] = (0, parser_1.parseTSDocComment)(prop.comment);
13
+ results.push(propDoc);
14
+ }
15
+ return results;
16
+ }
17
+ exports.generatePropDocs = generatePropDocs;
18
+ function extractTypesFromComplex(comp, docInfo) {
19
+ let actualComp = comp;
20
+ if (comp.referencedComponent && docInfo.components[comp.referencedComponent]) {
21
+ actualComp = docInfo.components[comp.referencedComponent];
22
+ }
23
+ return {
24
+ propType: actualComp.propType,
25
+ refType: actualComp.refType
26
+ };
27
+ }
28
+ exports.extractTypesFromComplex = extractTypesFromComplex;
29
+ function generateComponentDocFromDocInfo(comp, docInfo, moduleName, dependentTypes) {
30
+ const md = new markdown_1.MarkdownBuilder();
31
+ const [summary, examples] = (0, parser_1.parseTSDocComment)(comp.comment);
32
+ md.addTitle(comp.name, 1);
33
+ if (summary)
34
+ md.addParagraph(summary);
35
+ md.addTitle('Installation', 2);
36
+ const moduleImport = moduleName || 'your-module';
37
+ md.addCode(`import { ${comp.name} } from '${moduleImport}';`);
38
+ md.addTitle('Signature', 2);
39
+ const complexType = (0, module_1.generateComplexComponentType)(comp, docInfo, false);
40
+ md.addCode(`const ${comp.name}: ${complexType}`);
41
+ if (examples.length > 0) {
42
+ md.addTitle('Examples', 2);
43
+ for (const example of examples) {
44
+ md.addCode(example.summary);
45
+ }
46
+ }
47
+ const { propType, refType } = extractTypesFromComplex(comp, docInfo);
48
+ const propInterface = docInfo.interfaces[propType];
49
+ if (propInterface && propInterface.members.length > 0) {
50
+ md.addTitle('Properties', 2);
51
+ const propTableData = propInterface.members.map(member => ({
52
+ Name: member.name,
53
+ Type: (0, type_helpers_1.linkedType)(member.type, docInfo),
54
+ Mandatory: member.isOptional ? 'No' : 'Yes',
55
+ 'Default Value': member.defaultValue || '-',
56
+ 'Example Value': member.exampleValue || '-'
57
+ }));
58
+ md.addTable(propTableData);
59
+ }
60
+ if (refType) {
61
+ const refInterface = docInfo.interfaces[refType];
62
+ if (refInterface && refInterface.members.length > 0) {
63
+ md.addTitle('Ref Handlers', 2);
64
+ md.addParagraph('Available methods through ref:');
65
+ const handlersTable = refInterface.members.map(member => {
66
+ const [memberSummary] = (0, parser_1.parseTSDocComment)(member.comment || '');
67
+ return {
68
+ Method: member.name,
69
+ Type: (0, type_helpers_1.linkedType)(member.type, docInfo),
70
+ Description: memberSummary || '-'
71
+ };
72
+ });
73
+ md.addTable(handlersTable);
74
+ }
75
+ }
76
+ if (dependentTypes) {
77
+ const relatedTypes = (0, type_helpers_1.getRelatedTypes)(comp, dependentTypes, docInfo);
78
+ if (relatedTypes.length > 0) {
79
+ md.addTitle('Related Types', 2);
80
+ const typeLinks = relatedTypes.map(typeName => `- [${typeName}](../types/${typeName}.md)`).join('\n');
81
+ md.addParagraph(typeLinks);
82
+ }
83
+ }
84
+ return md.toString();
85
+ }
86
+ exports.generateComponentDocFromDocInfo = generateComponentDocFromDocInfo;
87
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/generators/docs/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { IFunctionSignature, IDocInfo } from '../../core/types';
2
+ export declare function generateFunctionDocFromDocInfo(func: IFunctionSignature, docInfo: IDocInfo, moduleName?: string, dependentTypes?: Set<string>): string;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateFunctionDocFromDocInfo = void 0;
4
+ const markdown_1 = require("../markdown");
5
+ const parser_1 = require("../../core/parser");
6
+ const type_helpers_1 = require("../../utils/type-helpers");
7
+ function generateFunctionDocFromDocInfo(func, docInfo, moduleName, dependentTypes) {
8
+ const md = new markdown_1.MarkdownBuilder();
9
+ const [summary, examples] = (0, parser_1.parseTSDocComment)(func.comment);
10
+ const functionName = Object.keys(docInfo.functions).find(key => docInfo.functions[key] === func) || 'function';
11
+ md.addTitle(functionName, 1);
12
+ if (summary)
13
+ md.addParagraph(summary);
14
+ md.addTitle('Installation', 2);
15
+ const moduleImport = moduleName || 'your-module';
16
+ md.addCode(`import { ${functionName} } from '${moduleImport}';`);
17
+ md.addTitle('Signature', 2);
18
+ const params = func.parameters.map(p => `${p.name}: ${p.type}`).join(', ');
19
+ const signature = `function ${functionName}(${params}): ${func.return}`;
20
+ md.addCode(signature);
21
+ if (examples.length > 0) {
22
+ md.addTitle('Examples', 2);
23
+ for (const example of examples) {
24
+ md.addCode(example.summary);
25
+ }
26
+ }
27
+ if (dependentTypes) {
28
+ const relatedTypes = (0, type_helpers_1.getRelatedTypes)(func, dependentTypes, docInfo);
29
+ if (relatedTypes.length > 0) {
30
+ md.addTitle('Related Types', 2);
31
+ const typeLinks = relatedTypes.map(typeName => `- [${typeName}](../types/${typeName}.md)`).join('\n');
32
+ md.addParagraph(typeLinks);
33
+ }
34
+ }
35
+ return md.toString();
36
+ }
37
+ exports.generateFunctionDocFromDocInfo = generateFunctionDocFromDocInfo;
38
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/generators/docs/function.ts"],"names":[],"mappings":";;;AACA,0CAA8C;AAC9C,8CAAsD;AACtD,2DAA2D;AAE3D,SAAgB,8BAA8B,CAAC,IAAwB,EAAE,OAAiB,EAAE,UAAmB,EAAE,cAA4B;IACzI,MAAM,EAAE,GAAG,IAAI,0BAAe,EAAE,CAAC;IACjC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAA,0BAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,UAAU,CAAC;IAE/G,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC7B,IAAI,OAAO;QAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtC,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,UAAU,IAAI,aAAa,CAAC;IACjD,EAAE,CAAC,OAAO,CAAC,YAAY,YAAY,YAAY,YAAY,IAAI,CAAC,CAAC;IAEjE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,YAAY,YAAY,IAAI,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACxE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/B;KACJ;IAED,IAAI,cAAc,EAAE;QAChB,MAAM,YAAY,GAAG,IAAA,8BAAe,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,QAAQ,cAAc,QAAQ,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAC9B;KACJ;IAED,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC;AAlCD,wEAkCC"}
@@ -0,0 +1,2 @@
1
+ import { IReactHook, IDocInfo } from '../../core/types';
2
+ export declare function generateHookDocFromDocInfo(hook: IReactHook, docInfo: IDocInfo, moduleName?: string, dependentTypes?: Set<string>): string;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateHookDocFromDocInfo = void 0;
4
+ const markdown_1 = require("../markdown");
5
+ const parser_1 = require("../../core/parser");
6
+ const type_helpers_1 = require("../../utils/type-helpers");
7
+ function generateHookDocFromDocInfo(hook, docInfo, moduleName, dependentTypes) {
8
+ const md = new markdown_1.MarkdownBuilder();
9
+ const [summary, examples] = (0, parser_1.parseTSDocComment)(hook.comment);
10
+ md.addTitle(hook.name, 1);
11
+ if (summary)
12
+ md.addParagraph(summary);
13
+ md.addTitle('Installation', 2);
14
+ const moduleImport = moduleName || 'your-module';
15
+ md.addCode(`import { ${hook.name} } from '${moduleImport}';`);
16
+ md.addTitle('Signature', 2);
17
+ const params = hook.parameters.map(p => `${p.name}: ${p.type}`).join(', ');
18
+ md.addCode(`function ${hook.name}(${params}): ${hook.type}`);
19
+ if (examples.length > 0) {
20
+ md.addTitle('Examples', 2);
21
+ for (const example of examples) {
22
+ md.addCode(example.summary);
23
+ }
24
+ }
25
+ if (dependentTypes) {
26
+ const relatedTypes = (0, type_helpers_1.getRelatedTypes)(hook, dependentTypes, docInfo);
27
+ if (relatedTypes.length > 0) {
28
+ md.addTitle('Related Types', 2);
29
+ const typeLinks = relatedTypes.map(typeName => `- [${typeName}](../types/${typeName}.md)`).join('\n');
30
+ md.addParagraph(typeLinks);
31
+ }
32
+ }
33
+ return md.toString();
34
+ }
35
+ exports.generateHookDocFromDocInfo = generateHookDocFromDocInfo;
36
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/generators/docs/hook.ts"],"names":[],"mappings":";;;AACA,0CAA8C;AAC9C,8CAAsD;AACtD,2DAA2D;AAE3D,SAAgB,0BAA0B,CAAC,IAAgB,EAAE,OAAiB,EAAE,UAAmB,EAAE,cAA4B;IAC7H,MAAM,EAAE,GAAG,IAAI,0BAAe,EAAE,CAAC;IACjC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAA,0BAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE5D,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1B,IAAI,OAAO;QAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtC,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,UAAU,IAAI,aAAa,CAAC;IACjD,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,IAAI,YAAY,YAAY,IAAI,CAAC,CAAC;IAE9D,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/B;KACJ;IAED,IAAI,cAAc,EAAE;QAChB,MAAM,YAAY,GAAG,IAAA,8BAAe,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,QAAQ,cAAc,QAAQ,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAC9B;KACJ;IAED,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC;AAhCD,gEAgCC"}
@@ -0,0 +1,2 @@
1
+ import { IDocInfo } from '../../core/types';
2
+ export declare function generateTypeDocFromDocInfo(typeInfo: any, typeKind: 'interface' | 'union' | 'enum' | 'type', docInfo: IDocInfo, moduleName?: string, dependentTypes?: Set<string>): string;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateTypeDocFromDocInfo = void 0;
4
+ const markdown_1 = require("../markdown");
5
+ const parser_1 = require("../../core/parser");
6
+ const type_helpers_1 = require("../../utils/type-helpers");
7
+ function generateTypeDocFromDocInfo(typeInfo, typeKind, docInfo, moduleName, dependentTypes) {
8
+ const md = new markdown_1.MarkdownBuilder();
9
+ const [summary, examples] = (0, parser_1.parseTSDocComment)(typeInfo.comment);
10
+ md.addTitle(typeInfo.name, 1);
11
+ if (summary)
12
+ md.addParagraph(summary);
13
+ md.addTitle('Definition', 2);
14
+ md.addCode(typeInfo.code);
15
+ md.addTitle('Usage', 2);
16
+ const moduleImport = moduleName || 'your-module';
17
+ md.addCode(`import { ${typeInfo.name} } from '${moduleImport}';`);
18
+ if (examples.length > 0) {
19
+ md.addTitle('Examples', 2);
20
+ for (const example of examples) {
21
+ md.addCode(example.summary);
22
+ }
23
+ }
24
+ if (dependentTypes) {
25
+ // Prepare a shape that getRelatedTypes can consume
26
+ const typeSearchTarget = { type: typeInfo.name };
27
+ if (typeKind === 'interface' && typeInfo.members) {
28
+ // Collect member property types
29
+ typeSearchTarget.propType = typeInfo.name;
30
+ typeSearchTarget.parameters = typeInfo.members.map((m) => ({ type: m.type }));
31
+ // Check for extends clause
32
+ const extendsMatch = typeInfo.code.match(/extends\s+([^{]+)/);
33
+ if (extendsMatch) {
34
+ typeSearchTarget.type = extendsMatch[1];
35
+ }
36
+ }
37
+ if (typeKind === 'union' && typeInfo.items) {
38
+ typeSearchTarget.type = typeInfo.items.join(' | ');
39
+ }
40
+ if (typeKind === 'type' && typeInfo.type) {
41
+ typeSearchTarget.type = typeInfo.type;
42
+ }
43
+ if (typeKind === 'enum') {
44
+ // Enum members generally won't have related types,
45
+ // but still pass the name so it can link if referenced elsewhere.
46
+ typeSearchTarget.type = typeInfo.name;
47
+ }
48
+ const relatedTypes = (0, type_helpers_1.getRelatedTypes)(typeSearchTarget, dependentTypes, docInfo)
49
+ .filter(t => t !== typeInfo.name); // exclude the current type itself
50
+ if (relatedTypes.length > 0) {
51
+ md.addTitle('Related Types', 2);
52
+ const typeLinks = relatedTypes
53
+ .map(typeName => `- [${typeName}](../types/${typeName}.md)`)
54
+ .join('\n');
55
+ md.addParagraph(typeLinks);
56
+ }
57
+ }
58
+ return md.toString();
59
+ }
60
+ exports.generateTypeDocFromDocInfo = generateTypeDocFromDocInfo;
61
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/generators/docs/type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare class MarkdownBuilder {
2
+ private code;
3
+ addTitle(title: string, level: 1 | 2 | 3 | 4): void;
4
+ addParagraph(p: string): void;
5
+ addCode(code: string): void;
6
+ addTable(table: any[]): void;
7
+ toString(): string;
8
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarkdownBuilder = void 0;
4
+ class MarkdownBuilder {
5
+ constructor() {
6
+ this.code = '';
7
+ }
8
+ addTitle(title, level) {
9
+ const prefix = '#'.repeat(level);
10
+ this.code += `${prefix} ${title}\n\n`;
11
+ }
12
+ addParagraph(p) {
13
+ this.code += `${p}\n\n`;
14
+ }
15
+ addCode(code) {
16
+ code = code.trim();
17
+ if (code.startsWith('```')) {
18
+ code = code.substring(3);
19
+ }
20
+ if (code.endsWith('```')) {
21
+ code = code.substring(0, code.length - 3);
22
+ }
23
+ this.code += `\`\`\`tsx\n${code.trim()}\n\`\`\`\n\n`;
24
+ }
25
+ addTable(table) {
26
+ const tableFormat = (s) => {
27
+ return s.replace(/\s+/g, ' ').replace(/\|/g, '\\|');
28
+ };
29
+ if (table.length === 0)
30
+ return;
31
+ const headers = Object.keys(table[0]);
32
+ this.code += `|${headers.map(tableFormat).join('|')}|\n`;
33
+ this.code += `|${headers.map(h => '-').join('|')}|\n`;
34
+ for (const row of table) {
35
+ this.code += `|${headers.map(h => tableFormat(row[h])).join('|')}|\n`;
36
+ }
37
+ this.code += '\n';
38
+ }
39
+ toString() {
40
+ return this.code;
41
+ }
42
+ }
43
+ exports.MarkdownBuilder = MarkdownBuilder;
44
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/generators/markdown.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IAA5B;QACY,SAAI,GAAG,EAAE,CAAC;IAuCtB,CAAC;IArCU,QAAQ,CAAC,KAAa,EAAE,KAAoB;QAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,IAAI,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC;IAC1C,CAAC;IAEM,YAAY,CAAC,CAAS;QACzB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEM,OAAO,CAAC,IAAY;QACvB,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC7C;QACD,IAAI,CAAC,IAAI,IAAI,cAAc,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;IACzD,CAAC;IAEM,QAAQ,CAAC,KAAY;QACxB,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,EAAE;YAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACzD,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACrB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;SACzE;QACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IACtB,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ;AAxCD,0CAwCC"}
@@ -0,0 +1,4 @@
1
+ import { IDocInfo, IExportModuleOptions, IReactComponent } from '../../core/types';
2
+ export declare function collectAllDependentTypes(docInfo: IDocInfo): Set<string>;
3
+ export declare function generateComplexComponentType(comp: IReactComponent, docInfo: IDocInfo, linkTypes?: boolean): string;
4
+ export declare function generateExportModule(docInfo: IDocInfo, options: IExportModuleOptions): string;