@cparra/apexdocs 2.25.0-alpha.0 → 2.25.0-alpha.1

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 (191) hide show
  1. package/__mocks__/chalk.js +12 -0
  2. package/__mocks__/log-update.js +6 -0
  3. package/eslint.config.mjs +10 -0
  4. package/examples/plain-markdown/docs/Miscellaneous/ns.BaseClass.md +16 -0
  5. package/examples/plain-markdown/docs/Miscellaneous/ns.ParentInterface.md +15 -0
  6. package/examples/plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md +8 -0
  7. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +7 -0
  8. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleInterface.md +115 -0
  9. package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +36 -0
  10. package/examples/plain-markdown/docs/SampleGroup/ns.SampleClass.md +173 -0
  11. package/examples/plain-markdown/docs/index.md +36 -0
  12. package/examples/plain-markdown/force-app/classes/SampleClass.cls +37 -0
  13. package/examples/plain-markdown/package.json +2 -6
  14. package/jest.config.js +4 -0
  15. package/jest.d.ts +7 -0
  16. package/lib/__spec__/core/expect-extensions.d.ts +3 -0
  17. package/lib/__spec__/core/expect-extensions.js +54 -0
  18. package/lib/__spec__/core/expect-extensions.js.map +1 -0
  19. package/lib/__spec__/core/generating-class-docs.spec.d.ts +1 -0
  20. package/lib/__spec__/core/generating-class-docs.spec.js +427 -0
  21. package/lib/__spec__/core/generating-class-docs.spec.js.map +1 -0
  22. package/lib/__spec__/core/generating-enum-docs.spec.d.ts +1 -0
  23. package/lib/__spec__/core/generating-enum-docs.spec.js +303 -0
  24. package/lib/__spec__/core/generating-enum-docs.spec.js.map +1 -0
  25. package/lib/__spec__/core/generating-interface-docs.spec.d.ts +1 -0
  26. package/lib/__spec__/core/generating-interface-docs.spec.js +361 -0
  27. package/lib/__spec__/core/generating-interface-docs.spec.js.map +1 -0
  28. package/lib/__spec__/core/generating-reference-guide.spec.d.ts +1 -0
  29. package/lib/__spec__/core/generating-reference-guide.spec.js +161 -0
  30. package/lib/__spec__/core/generating-reference-guide.spec.js.map +1 -0
  31. package/lib/adapters/apex-types.d.ts +7 -5
  32. package/lib/adapters/apex-types.js +99 -21
  33. package/lib/adapters/apex-types.js.map +1 -1
  34. package/lib/adapters/documentables.d.ts +4 -3
  35. package/lib/adapters/documentables.js +23 -8
  36. package/lib/adapters/documentables.js.map +1 -1
  37. package/lib/adapters/fields-and-properties.d.ts +4 -3
  38. package/lib/adapters/fields-and-properties.js +26 -4
  39. package/lib/adapters/fields-and-properties.js.map +1 -1
  40. package/lib/adapters/methods-and-constructors.d.ts +4 -3
  41. package/lib/adapters/methods-and-constructors.js +52 -9
  42. package/lib/adapters/methods-and-constructors.js.map +1 -1
  43. package/lib/adapters/references.d.ts +1 -1
  44. package/lib/adapters/references.js +3 -3
  45. package/lib/adapters/references.js.map +1 -1
  46. package/lib/adapters/type-utils.d.ts +1 -1
  47. package/lib/adapters/type-utils.js +1 -2
  48. package/lib/adapters/type-utils.js.map +1 -1
  49. package/lib/application/Apexdocs.js.map +1 -1
  50. package/lib/cli/generate.js +7 -7
  51. package/lib/cli/generate.js.map +1 -1
  52. package/lib/core/generate-docs.d.ts +23 -0
  53. package/lib/core/generate-docs.js +241 -0
  54. package/lib/core/generate-docs.js.map +1 -0
  55. package/lib/core/template.d.ts +10 -0
  56. package/lib/core/template.js +92 -0
  57. package/lib/core/template.js.map +1 -0
  58. package/lib/core/templates/reference-guide.d.ts +1 -0
  59. package/lib/core/templates/reference-guide.js +18 -0
  60. package/lib/core/templates/reference-guide.js.map +1 -0
  61. package/lib/index.d.ts +2 -1
  62. package/lib/index.js +14 -3
  63. package/lib/index.js.map +1 -1
  64. package/lib/model/manifest.js +8 -2
  65. package/lib/model/manifest.js.map +1 -1
  66. package/lib/model/markdown-file.d.ts +2 -2
  67. package/lib/model/markdown-file.js +5 -4
  68. package/lib/model/markdown-file.js.map +1 -1
  69. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js +3 -4
  70. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +1 -1
  71. package/lib/model/markdown-generation-util/field-declaration-util.js +1 -2
  72. package/lib/model/markdown-generation-util/field-declaration-util.js.map +1 -1
  73. package/lib/model/markdown-generation-util/method-declaration-util.js +2 -3
  74. package/lib/model/markdown-generation-util/method-declaration-util.js.map +1 -1
  75. package/lib/model/markdown-generation-util/type-declaration-util.js +1 -2
  76. package/lib/model/markdown-generation-util/type-declaration-util.js.map +1 -1
  77. package/lib/model/markdown-home-file.js.map +1 -1
  78. package/lib/model/markdown-type-file.js.map +1 -1
  79. package/lib/model/openapi/open-api.js.map +1 -1
  80. package/lib/model/outputFile.d.ts +1 -1
  81. package/lib/model/outputFile.js +2 -9
  82. package/lib/model/outputFile.js.map +1 -1
  83. package/lib/model/types-repository.js.map +1 -1
  84. package/lib/service/apex-file-reader.js.map +1 -1
  85. package/lib/service/file-writer.js.map +1 -1
  86. package/lib/service/manifest-factory.js +1 -2
  87. package/lib/service/manifest-factory.js.map +1 -1
  88. package/lib/service/metadata-processor.js.map +1 -1
  89. package/lib/service/parser.js +1 -1
  90. package/lib/service/parser.js.map +1 -1
  91. package/lib/service/state.js.map +1 -1
  92. package/lib/service/walkers/class-walker.js.map +1 -1
  93. package/lib/service/walkers/interface-walker.js.map +1 -1
  94. package/lib/service/walkers/walker-factory.js.map +1 -1
  95. package/lib/service/walkers/walker.js.map +1 -1
  96. package/lib/settings.d.ts +0 -6
  97. package/lib/settings.js +0 -11
  98. package/lib/settings.js.map +1 -1
  99. package/lib/transpiler/factory.js.map +1 -1
  100. package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +1 -1
  101. package/lib/transpiler/markdown/class-file-generatorHelper.js.map +1 -1
  102. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +1 -1
  103. package/lib/transpiler/markdown/plain-markdown/class-template.js +51 -10
  104. package/lib/transpiler/markdown/plain-markdown/class-template.js.map +1 -1
  105. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js +13 -16
  106. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js.map +1 -1
  107. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js +11 -8
  108. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js.map +1 -1
  109. package/lib/transpiler/markdown/plain-markdown/enum-template.js +7 -6
  110. package/lib/transpiler/markdown/plain-markdown/enum-template.js.map +1 -1
  111. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js +9 -6
  112. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js.map +1 -1
  113. package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.d.ts +1 -0
  114. package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.js +10 -0
  115. package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.js.map +1 -0
  116. package/lib/transpiler/markdown/plain-markdown/interface-template.js +4 -4
  117. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js +18 -20
  118. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js.map +1 -1
  119. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +0 -4
  120. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +6 -86
  121. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js.map +1 -1
  122. package/lib/transpiler/markdown/plain-markdown/type-doc-partial.d.ts +1 -0
  123. package/lib/transpiler/markdown/plain-markdown/type-doc-partial.js +31 -0
  124. package/lib/transpiler/markdown/plain-markdown/type-doc-partial.js.map +1 -0
  125. package/lib/transpiler/openapi/open-api-docs-processor.js.map +1 -1
  126. package/lib/transpiler/openapi/parsers/Builder.js.map +1 -1
  127. package/lib/transpiler/openapi/parsers/MethodParser.js.map +1 -1
  128. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js +3 -2
  129. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js.map +1 -1
  130. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js.map +1 -1
  131. package/lib/transpiler/transpiler.js.map +1 -1
  132. package/lib/util/error-logger.js.map +1 -1
  133. package/lib/util/logger.js.map +1 -1
  134. package/lib/util/string-utils.js +2 -2
  135. package/lib/util/string-utils.js.map +1 -1
  136. package/package.json +19 -19
  137. package/src/__spec__/core/expect-extensions.ts +32 -0
  138. package/src/__spec__/core/generating-class-docs.spec.ts +511 -0
  139. package/src/__spec__/core/generating-enum-docs.spec.ts +355 -0
  140. package/src/__spec__/core/generating-interface-docs.spec.ts +431 -0
  141. package/src/__spec__/core/generating-reference-guide.spec.ts +163 -0
  142. package/src/adapters/__tests__/interface-adapter.spec.ts +15 -11
  143. package/src/adapters/__tests__/references.spec.ts +1 -1
  144. package/src/adapters/apex-types.ts +196 -39
  145. package/src/adapters/documentables.ts +44 -9
  146. package/src/adapters/fields-and-properties.ts +31 -7
  147. package/src/adapters/methods-and-constructors.ts +57 -18
  148. package/src/adapters/references.ts +1 -1
  149. package/src/adapters/type-utils.ts +1 -1
  150. package/src/cli/generate.ts +96 -96
  151. package/src/core/generate-docs.ts +357 -0
  152. package/src/core/renderable/types.d.ts +131 -0
  153. package/src/core/template.ts +108 -0
  154. package/src/core/templates/reference-guide.ts +14 -0
  155. package/src/index.ts +3 -1
  156. package/src/model/manifest.ts +12 -2
  157. package/src/model/markdown-file.ts +5 -4
  158. package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +1 -1
  159. package/src/model/markdown-generation-util/method-declaration-util.ts +1 -1
  160. package/src/model/outputFile.ts +2 -11
  161. package/src/service/parser.ts +1 -1
  162. package/src/settings.ts +0 -15
  163. package/src/transpiler/markdown/class-file-generatorHelper.ts +1 -1
  164. package/src/transpiler/markdown/plain-markdown/class-template.ts +51 -10
  165. package/src/transpiler/markdown/plain-markdown/constructors-partial-template.ts +13 -16
  166. package/src/transpiler/markdown/plain-markdown/documentable-partial-template.ts +11 -8
  167. package/src/transpiler/markdown/plain-markdown/enum-template.ts +7 -6
  168. package/src/transpiler/markdown/plain-markdown/fieldsPartialTemplate.ts +9 -6
  169. package/src/transpiler/markdown/plain-markdown/grouped-members-partial-template.ts +6 -0
  170. package/src/transpiler/markdown/plain-markdown/interface-template.ts +4 -4
  171. package/src/transpiler/markdown/plain-markdown/methods-partial-template.ts +18 -20
  172. package/src/transpiler/markdown/plain-markdown/plain-docsProcessor.ts +8 -100
  173. package/src/transpiler/markdown/plain-markdown/type-doc-partial.ts +27 -0
  174. package/src/transpiler/openapi/parsers/ReferenceBuilder.ts +3 -2
  175. package/tsconfig.json +1 -1
  176. package/.eslintrc.js +0 -12
  177. package/examples/plain-markdown/README.md +0 -301
  178. package/lib/templating/compile.d.ts +0 -7
  179. package/lib/templating/compile.js +0 -98
  180. package/lib/templating/compile.js.map +0 -1
  181. package/lib/templating/helpers.d.ts +0 -2
  182. package/lib/templating/helpers.js +0 -18
  183. package/lib/templating/helpers.js.map +0 -1
  184. package/lib/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.d.ts +0 -1
  185. package/lib/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.js +0 -31
  186. package/lib/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.js.map +0 -1
  187. package/src/templating/__tests__/compile.spec.ts +0 -741
  188. package/src/templating/compile.ts +0 -187
  189. package/src/templating/helpers.ts +0 -14
  190. package/src/templating/types.d.ts +0 -104
  191. package/src/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.ts +0 -27
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const expect_extensions_1 = require("./expect-extensions");
4
+ const generate_docs_1 = require("../../core/generate-docs");
5
+ describe('Generates interface documentation', () => {
6
+ beforeAll(() => {
7
+ (0, expect_extensions_1.extendExpect)();
8
+ });
9
+ describe('documentation output', () => {
10
+ it('always returns markdown as the format', () => {
11
+ const input = `
12
+ public interface MyInterface {
13
+ }
14
+ `;
15
+ const result = (0, generate_docs_1.generateDocs)([input]);
16
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.format).toBe('markdown'));
17
+ });
18
+ it('returns the name of the interface', () => {
19
+ const input = `
20
+ public interface MyInterface {
21
+ }
22
+ `;
23
+ const result = (0, generate_docs_1.generateDocs)([input]);
24
+ expect(result).documentationBundleHasLength(1);
25
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.docs[0].typeName).toBe('MyInterface'));
26
+ });
27
+ it('returns the type as interface', () => {
28
+ const input = `
29
+ public interface MyInterface {
30
+ }
31
+ `;
32
+ const result = (0, generate_docs_1.generateDocs)([input]);
33
+ expect(result).documentationBundleHasLength(1);
34
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.docs[0].type).toBe('interface'));
35
+ });
36
+ it('does not return interfaces out of scope', () => {
37
+ const input1 = `
38
+ global interface MyInterface {}
39
+ `;
40
+ const input2 = `
41
+ public interface AnotherInterface {}
42
+ `;
43
+ const result = (0, generate_docs_1.generateDocs)([input1, input2], { scope: ['global'] });
44
+ expect(result).documentationBundleHasLength(1);
45
+ });
46
+ it('does not return interfaces that have an @ignore in the docs', () => {
47
+ const input = `
48
+ /**
49
+ * @ignore
50
+ */
51
+ public interface MyInterface {}`;
52
+ const result = (0, generate_docs_1.generateDocs)([input]);
53
+ expect(result).documentationBundleHasLength(0);
54
+ });
55
+ it('does not return interface methods that have @ignore in the docs', () => {
56
+ const input = `
57
+ public interface MyInterface {
58
+ /**
59
+ * @ignore
60
+ */
61
+ void myMethod();
62
+ }`;
63
+ const result = (0, generate_docs_1.generateDocs)([input]);
64
+ expect(result).documentationBundleHasLength(1);
65
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.docs[0].docContents).not.toContain('myMethod'));
66
+ });
67
+ });
68
+ describe('documentation content', () => {
69
+ describe('type level information', () => {
70
+ it('generates a heading with the interface name', () => {
71
+ const input = `
72
+ public interface MyInterface {}
73
+ `;
74
+ const output = `# MyInterface Interface`;
75
+ const result = (0, generate_docs_1.generateDocs)([input]);
76
+ expect(result).documentationBundleHasLength(1);
77
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains(output));
78
+ });
79
+ it('displays type level annotations', () => {
80
+ const input = `
81
+ @NamespaceAccessible
82
+ public interface MyInterface {
83
+ @Deprecated
84
+ void myMethod();
85
+ }
86
+ `;
87
+ const result = (0, generate_docs_1.generateDocs)([input]);
88
+ expect(result).documentationBundleHasLength(1);
89
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('NAMESPACEACCESSIBLE'));
90
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('DEPRECATED'));
91
+ });
92
+ it('displays the description', () => {
93
+ const input = `
94
+ /**
95
+ * This is a description
96
+ */
97
+ public interface MyInterface {}
98
+ `;
99
+ const result = (0, generate_docs_1.generateDocs)([input]);
100
+ expect(result).documentationBundleHasLength(1);
101
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('This is a description'));
102
+ });
103
+ it('display custom documentation tags', () => {
104
+ const input = `
105
+ /**
106
+ * @custom-tag My Value
107
+ */
108
+ public interface MyInterface {}
109
+ `;
110
+ const result = (0, generate_docs_1.generateDocs)([input]);
111
+ expect(result).documentationBundleHasLength(1);
112
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('Custom Tag'));
113
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('My Value'));
114
+ });
115
+ it('displays the group', () => {
116
+ const input = `
117
+ /**
118
+ * @group MyGroup
119
+ */
120
+ public interface MyInterface {}`;
121
+ const result = (0, generate_docs_1.generateDocs)([input]);
122
+ expect(result).documentationBundleHasLength(1);
123
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('Group'));
124
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('MyGroup'));
125
+ });
126
+ it('displays the author', () => {
127
+ const input = `
128
+ /**
129
+ * @author John Doe
130
+ */
131
+ public interface MyInterface {}`;
132
+ const result = (0, generate_docs_1.generateDocs)([input]);
133
+ expect(result).documentationBundleHasLength(1);
134
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('Author'));
135
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('John Doe'));
136
+ });
137
+ it('displays the date', () => {
138
+ const input = `
139
+ /**
140
+ * @date 2021-01-01
141
+ */
142
+ public interface MyInterface {}`;
143
+ const result = (0, generate_docs_1.generateDocs)([input]);
144
+ expect(result).documentationBundleHasLength(1);
145
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('Date'));
146
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('2021-01-01'));
147
+ });
148
+ it('displays descriptions', () => {
149
+ const input = `
150
+ /**
151
+ * @description This is a description
152
+ */
153
+ public interface MyInterface {}`;
154
+ const result = (0, generate_docs_1.generateDocs)([input]);
155
+ expect(result).documentationBundleHasLength(1);
156
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('This is a description'));
157
+ });
158
+ it('displays descriptions with links', () => {
159
+ const input1 = `
160
+ /**
161
+ * @description This is a description with a {@link InterfaceRef} reference
162
+ */
163
+ public enum MyInterface {}
164
+ `;
165
+ const input2 = 'public interface InterfaceRef {}';
166
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
167
+ expect(result).documentationBundleHasLength(2);
168
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('This is a description with a [InterfaceRef](./InterfaceRef.md) reference'));
169
+ });
170
+ it('displays descriptions with emails', () => {
171
+ const input = `
172
+ /**
173
+ * @description This is a description with an {@email test@testerson.com} email
174
+ */
175
+ public interface MyInterface {}
176
+ `;
177
+ const result = (0, generate_docs_1.generateDocs)([input]);
178
+ expect(result).documentationBundleHasLength(1);
179
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('This is a description with an [test@testerson.com](mailto:test@testerson.com) email'));
180
+ });
181
+ it('displays sees with accurately resolved links', () => {
182
+ const input1 = `
183
+ /**
184
+ * @see InterfaceRef
185
+ */
186
+ public interface MyInterface {}
187
+ `;
188
+ const input2 = 'public interface InterfaceRef {}';
189
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
190
+ expect(result).documentationBundleHasLength(2);
191
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('See'));
192
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('[InterfaceRef](./InterfaceRef.md)'));
193
+ });
194
+ it('displays sees without links when the reference is not found', () => {
195
+ const input = `
196
+ /**
197
+ * @see InterfaceRef
198
+ */
199
+ public interface MyInterface {}
200
+ `;
201
+ const result = (0, generate_docs_1.generateDocs)([input]);
202
+ expect(result).documentationBundleHasLength(1);
203
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('See'));
204
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('InterfaceRef'));
205
+ });
206
+ it('displays the namespace if present in the config', () => {
207
+ const input = 'public interface MyInterface {}';
208
+ const result = (0, generate_docs_1.generateDocs)([input], { namespace: 'MyNamespace' });
209
+ expect(result).documentationBundleHasLength(1);
210
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('## Namespace'));
211
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('MyNamespace'));
212
+ });
213
+ it('does not display the namespace if not present in the config', () => {
214
+ const input = 'public interface MyInterface {}';
215
+ const result = (0, generate_docs_1.generateDocs)([input]);
216
+ expect(result).documentationBundleHasLength(1);
217
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContainsNot('## Namespace'));
218
+ });
219
+ it('displays a mermaid diagram', () => {
220
+ const input = `
221
+ /**
222
+ * @mermaid
223
+ * graph TD
224
+ * A[Square Rect] -- Link text --> B((Circle))
225
+ * A --> C(Round Rect)
226
+ * B --> D{Rhombus}
227
+ * C --> D
228
+ */
229
+ public interface MyInterface {}
230
+ `;
231
+ const result = (0, generate_docs_1.generateDocs)([input]);
232
+ expect(result).documentationBundleHasLength(1);
233
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('```mermaid'));
234
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('graph TD'));
235
+ });
236
+ it('displays an example code block', () => {
237
+ const input = `
238
+ /**
239
+ * @example
240
+ * public class MyClass {
241
+ * public void myMethod() {
242
+ * System.debug('Hello, World!');
243
+ * }
244
+ * }
245
+ */
246
+ public interface MyInterface {}`;
247
+ const result = (0, generate_docs_1.generateDocs)([input]);
248
+ expect(result).documentationBundleHasLength(1);
249
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('```apex'));
250
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('public class MyClass'));
251
+ });
252
+ });
253
+ describe('method information', () => {
254
+ it('displays the Method heading', () => {
255
+ const input = `
256
+ public interface MyInterface {
257
+ void myMethod();
258
+ }
259
+ `;
260
+ const result = (0, generate_docs_1.generateDocs)([input]);
261
+ expect(result).documentationBundleHasLength(1);
262
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('## Methods'));
263
+ });
264
+ it('supports having mermaid diagrams in method descriptions', () => {
265
+ const input = `
266
+ public interface MyInterface {
267
+ /**
268
+ * @mermaid
269
+ * graph TD
270
+ * A[Square Rect] -- Link text --> B((Circle))
271
+ * A --> C(Round Rect)
272
+ * B --> D{Rhombus}
273
+ * C --> D
274
+ */
275
+ void myMethod();
276
+ }
277
+ `;
278
+ const result = (0, generate_docs_1.generateDocs)([input]);
279
+ expect(result).documentationBundleHasLength(1);
280
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('```mermaid'));
281
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('graph TD'));
282
+ });
283
+ it('supports having example code blocks in method descriptions', () => {
284
+ const input = `
285
+ public interface MyInterface {
286
+ /**
287
+ * @example
288
+ * public class MyClass {
289
+ * public void myMethod() {
290
+ * System.debug('Hello, World!');
291
+ * }
292
+ * }
293
+ */
294
+ void myMethod();
295
+ }
296
+ `;
297
+ const result = (0, generate_docs_1.generateDocs)([input]);
298
+ expect(result).documentationBundleHasLength(1);
299
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('```apex'));
300
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('public class MyClass'));
301
+ });
302
+ it('has a signature section', () => {
303
+ const input = `
304
+ public interface MyInterface {
305
+ void myMethod();
306
+ }
307
+ `;
308
+ const result = (0, generate_docs_1.generateDocs)([input]);
309
+ expect(result).documentationBundleHasLength(1);
310
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('### Signature'));
311
+ });
312
+ it('has a parameters section', () => {
313
+ const input = `
314
+ public interface MyInterface {
315
+ void myMethod(String param1, Integer param2);
316
+ }
317
+ `;
318
+ const result = (0, generate_docs_1.generateDocs)([input]);
319
+ expect(result).documentationBundleHasLength(1);
320
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('### Parameters'));
321
+ });
322
+ it('has a return type section', () => {
323
+ const input = `
324
+ public interface MyInterface {
325
+ String myMethod();
326
+ }
327
+ `;
328
+ const result = (0, generate_docs_1.generateDocs)([input]);
329
+ expect(result).documentationBundleHasLength(1);
330
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('### Return Type'));
331
+ });
332
+ it('has a throws section', () => {
333
+ const input = `
334
+ public interface MyInterface {
335
+ /**
336
+ * @throws MyException
337
+ */
338
+ void myMethod();
339
+ }
340
+ `;
341
+ const result = (0, generate_docs_1.generateDocs)([input]);
342
+ expect(result).documentationBundleHasLength(1);
343
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('### Throws'));
344
+ });
345
+ it('displays an "inherited" tag if the method was inherited from a different interface', () => {
346
+ const input1 = `
347
+ public interface MyInterface {
348
+ void myMethod();
349
+ }
350
+ `;
351
+ const input2 = `
352
+ public interface AnotherInterface extends MyInterface {}
353
+ `;
354
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
355
+ expect(result).documentationBundleHasLength(2);
356
+ (0, expect_extensions_1.assertEither)(result, (data) => { var _a; return expect((_a = data.docs.find((doc) => doc.typeName === 'AnotherInterface')) === null || _a === void 0 ? void 0 : _a.docContents).toContain('Inherited'); });
357
+ });
358
+ });
359
+ });
360
+ });
361
+ //# sourceMappingURL=generating-interface-docs.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generating-interface-docs.spec.js","sourceRoot":"","sources":["../../../src/__spec__/core/generating-interface-docs.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
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
+ const expect_extensions_1 = require("./expect-extensions");
27
+ const generate_docs_1 = require("../../core/generate-docs");
28
+ const function_1 = require("fp-ts/function");
29
+ const E = __importStar(require("fp-ts/Either"));
30
+ describe('Generates a Reference Guide', () => {
31
+ beforeAll(() => {
32
+ (0, expect_extensions_1.extendExpect)();
33
+ });
34
+ it('returns a reference guide with links to all other files', () => {
35
+ const input1 = `
36
+ public enum MyEnum {
37
+ VALUE1,
38
+ VALUE2
39
+ }
40
+ `;
41
+ const input2 = `
42
+ public class MyClass {}
43
+ `;
44
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
45
+ expect(result).documentationBundleHasLength(2);
46
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.referenceGuide).toContain('[MyEnum](./Miscellaneous/MyEnum.md)'));
47
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.referenceGuide).toContain('[MyClass](./Miscellaneous/MyClass.md)'));
48
+ });
49
+ it('groups things under Miscellaneous if no group is provided', () => {
50
+ const input = `
51
+ public enum MyEnum {
52
+ VALUE1,
53
+ VALUE2
54
+ }
55
+ `;
56
+ const result = (0, generate_docs_1.generateDocs)([input]);
57
+ expect(result).documentationBundleHasLength(1);
58
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.referenceGuide).toContain('## Miscellaneous'));
59
+ });
60
+ it('group things under the provided group', () => {
61
+ const input = `
62
+ /**
63
+ * @group MyGroup
64
+ */
65
+ public enum MyEnum {
66
+ VALUE1,
67
+ VALUE2
68
+ }
69
+ `;
70
+ const result = (0, generate_docs_1.generateDocs)([input]);
71
+ expect(result).documentationBundleHasLength(1);
72
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.referenceGuide).toContain('## MyGroup'));
73
+ });
74
+ it('displays groups in alphabetical order', () => {
75
+ const input1 = `
76
+ /**
77
+ * @group ZGroup
78
+ */
79
+ public enum MyEnum {
80
+ VALUE1,
81
+ VALUE2
82
+ }
83
+ `;
84
+ const input2 = `
85
+ /**
86
+ * @group AGroup
87
+ */
88
+ public class MyClass {}
89
+ `;
90
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
91
+ expect(result).documentationBundleHasLength(2);
92
+ (0, function_1.pipe)(result, E.map((data) => ({
93
+ aGroupIndex: data.referenceGuide.indexOf('## AGroup'),
94
+ zGroupIndex: data.referenceGuide.indexOf('## ZGroup'),
95
+ })), E.match(() => fail('Expected data'), (data) => expect(data.aGroupIndex).toBeLessThan(data.zGroupIndex)));
96
+ });
97
+ it('displays references within groups in alphabetical order', () => {
98
+ const input1 = `
99
+ /**
100
+ * @group Group1
101
+ */
102
+ public enum MyEnum {
103
+ VALUE1,
104
+ VALUE2
105
+ }
106
+ `;
107
+ const input2 = `
108
+ /**
109
+ * @group Group1
110
+ */
111
+ public class MyClass {}
112
+ `;
113
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
114
+ expect(result).documentationBundleHasLength(2);
115
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.referenceGuide).toContain('## Group1'));
116
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.referenceGuide).toContain('MyClass'));
117
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.referenceGuide).toContain('MyEnum'));
118
+ });
119
+ it('returns a reference guide with descriptions', () => {
120
+ const input1 = `
121
+ /**
122
+ * @description This is a description
123
+ */
124
+ public enum MyEnum {
125
+ VALUE1,
126
+ VALUE2
127
+ }
128
+ `;
129
+ const input2 = `
130
+ /**
131
+ * @description This is a description
132
+ */
133
+ public class MyClass {}
134
+ `;
135
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
136
+ expect(result).documentationBundleHasLength(2);
137
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.referenceGuide).toContain('This is a description'));
138
+ });
139
+ it('returns a reference guide with descriptions with links to all other files', () => {
140
+ const input1 = `
141
+ /**
142
+ * @description This is a description with a {@link MyClass}
143
+ * @group Group1
144
+ */
145
+ public enum MyEnum {
146
+ VALUE1,
147
+ VALUE2
148
+ }
149
+ `;
150
+ const input2 = `
151
+ /**
152
+ * @group Group2
153
+ */
154
+ public class MyClass {}
155
+ `;
156
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
157
+ expect(result).documentationBundleHasLength(2);
158
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.referenceGuide).toContain('with a [MyClass](./Group2/MyClass.md)'));
159
+ });
160
+ });
161
+ //# sourceMappingURL=generating-reference-guide.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generating-reference-guide.spec.js","sourceRoot":"","sources":["../../../src/__spec__/core/generating-reference-guide.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- import { ClassMirror, EnumMirror, InterfaceMirror } from '@cparra/apex-reflection';
2
- import { ClassSource, EnumSource, InterfaceSource } from '../templating/types';
3
- export declare function enumTypeToEnumSource(enumType: EnumMirror): EnumSource;
4
- export declare function interfaceTypeToInterfaceSource(interfaceType: InterfaceMirror): InterfaceSource;
5
- export declare function classTypeToClassSource(classType: ClassMirror): ClassSource;
1
+ import { ClassMirror, EnumMirror, InterfaceMirror, Type } from '@cparra/apex-reflection';
2
+ import { RenderableClass, RenderableEnum, RenderableInterface, Renderable } from '../core/renderable/types';
3
+ import { GetRenderableContentByTypeName } from './references';
4
+ export declare function typeToRenderableType(type: Type, linkGenerator: GetRenderableContentByTypeName, namespace?: string): Renderable;
5
+ export declare function enumTypeToEnumSource(enumType: EnumMirror, linkGenerator: GetRenderableContentByTypeName, baseHeadingLevel?: number): RenderableEnum;
6
+ export declare function interfaceTypeToInterfaceSource(interfaceType: InterfaceMirror, linkGenerator: GetRenderableContentByTypeName, baseHeadingLevel?: number): RenderableInterface;
7
+ export declare function classTypeToClassSource(classType: ClassMirror, linkGenerator: GetRenderableContentByTypeName, baseHeadingLevel?: number): RenderableClass;