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

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 (499) hide show
  1. package/README.md +37 -0
  2. package/dist/cli/generate.js +2963 -0
  3. package/dist/defaults-DUwru49Q.js +12 -0
  4. package/dist/defaults-SH0Rsi5E.js +11 -0
  5. package/dist/defaults-jLXD2y8-.js +13 -0
  6. package/dist/index.d.ts +101 -0
  7. package/dist/index.js +36 -0
  8. package/examples/markdown/docs/index.md +109 -0
  9. package/examples/{plain-markdown/docs/Miscellaneous/ns.BaseClass.md → markdown/docs/miscellaneous/BaseClass.md} +1 -1
  10. package/examples/markdown/docs/miscellaneous/MultiInheritanceClass.md +72 -0
  11. package/examples/{plain-markdown/docs/Miscellaneous/ns.ParentInterface.md → markdown/docs/miscellaneous/ParentInterface.md} +1 -1
  12. package/examples/{plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md → markdown/docs/miscellaneous/ReferencedEnum.md} +1 -1
  13. package/examples/markdown/docs/miscellaneous/SampleException.md +24 -0
  14. package/examples/{plain-markdown/docs/Miscellaneous/ns.SampleInterface.md → markdown/docs/miscellaneous/SampleInterface.md} +29 -32
  15. package/examples/markdown/docs/miscellaneous/Url.md +309 -0
  16. package/examples/markdown/docs/sample-enums/SampleEnum.md +36 -0
  17. package/examples/{plain-markdown/docs/SampleGroup/ns.SampleClass.md → markdown/docs/samplegroup/SampleClass.md} +11 -14
  18. package/examples/markdown/force-app/classes/MultiInheritanceClass.cls +1 -0
  19. package/examples/markdown/force-app/classes/SampleException.cls +17 -0
  20. package/examples/markdown/force-app/classes/Url.cls +194 -0
  21. package/examples/{plain-markdown → markdown}/package.json +2 -2
  22. package/examples/vitepress/.forceignore +12 -0
  23. package/examples/vitepress/apexdocs.config.ts +106 -0
  24. package/examples/vitepress/config/project-scratch-def.json +13 -0
  25. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +259 -0
  26. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +7 -0
  27. package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +40 -0
  28. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +11474 -0
  29. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +7 -0
  30. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +9172 -0
  31. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +7 -0
  32. package/examples/vitepress/docs/.vitepress/cache/deps/package.json +3 -0
  33. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4339 -0
  34. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  35. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +567 -0
  36. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  37. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +323 -0
  38. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +7 -0
  39. package/examples/vitepress/docs/.vitepress/config.mts +21 -0
  40. package/examples/vitepress/docs/.vitepress/sidebar.json +119 -0
  41. package/examples/vitepress/docs/api-examples.md +49 -0
  42. package/examples/vitepress/docs/index-frontmatter.md +16 -0
  43. package/examples/vitepress/docs/index.md +56 -0
  44. package/examples/vitepress/docs/markdown-examples.md +85 -0
  45. package/examples/vitepress/docs/miscellaneous/BaseClass.md +20 -0
  46. package/examples/vitepress/docs/miscellaneous/MultiInheritanceClass.md +76 -0
  47. package/examples/vitepress/docs/miscellaneous/ParentInterface.md +19 -0
  48. package/examples/vitepress/docs/miscellaneous/ReferencedEnum.md +15 -0
  49. package/examples/vitepress/docs/miscellaneous/SampleException.md +28 -0
  50. package/examples/vitepress/docs/miscellaneous/SampleInterface.md +116 -0
  51. package/examples/vitepress/docs/miscellaneous/Url.md +317 -0
  52. package/examples/vitepress/docs/sample-enums/SampleEnum.md +40 -0
  53. package/examples/vitepress/docs/samplegroup/SampleClass.md +174 -0
  54. package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +3 -0
  55. package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +1 -0
  56. package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +3 -0
  57. package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +5 -0
  58. package/examples/vitepress/force-app/main/default/classes/SampleClass.cls +72 -0
  59. package/examples/vitepress/force-app/main/default/classes/SampleEnum.cls +30 -0
  60. package/examples/vitepress/force-app/main/default/classes/SampleException.cls +17 -0
  61. package/examples/vitepress/force-app/main/default/classes/SampleInterface.cls +46 -0
  62. package/examples/vitepress/force-app/main/default/classes/Url.cls +198 -0
  63. package/examples/vitepress/package-lock.json +2574 -0
  64. package/examples/vitepress/package.json +18 -0
  65. package/examples/vitepress/sfdx-project.json +12 -0
  66. package/jest.config.js +2 -1
  67. package/package.json +18 -19
  68. package/src/application/Apexdocs.ts +17 -70
  69. package/src/application/__tests__/apex-file-reader.spec.ts +104 -0
  70. package/src/application/apex-file-reader.ts +42 -0
  71. package/src/application/file-writer.ts +21 -0
  72. package/src/application/generators/markdown.ts +58 -0
  73. package/src/application/generators/openapi.ts +56 -0
  74. package/src/cli/args.ts +43 -0
  75. package/src/cli/commands/markdown.ts +52 -0
  76. package/src/cli/generate.ts +10 -134
  77. package/src/core/manifest.ts +90 -0
  78. package/src/{__spec__/core → core/markdown/__test__}/expect-extensions.ts +5 -5
  79. package/src/core/markdown/__test__/generating-class-docs.spec.ts +735 -0
  80. package/src/{__spec__/core → core/markdown/__test__}/generating-enum-docs.spec.ts +89 -59
  81. package/src/{__spec__/core → core/markdown/__test__}/generating-interface-docs.spec.ts +105 -75
  82. package/src/{__spec__/core → core/markdown/__test__}/generating-reference-guide.spec.ts +43 -26
  83. package/src/core/markdown/__test__/inheritance-chain.test.ts +54 -0
  84. package/src/core/markdown/__test__/test-helpers.ts +23 -0
  85. package/src/core/markdown/adapters/__tests__/documentables.spec.ts +109 -0
  86. package/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts +148 -0
  87. package/src/{adapters → core/markdown/adapters}/__tests__/references.spec.ts +23 -2
  88. package/src/{adapters → core/markdown/adapters}/apex-types.ts +58 -44
  89. package/src/{adapters → core/markdown/adapters}/documentables.ts +58 -35
  90. package/src/{adapters → core/markdown/adapters}/fields-and-properties.ts +18 -11
  91. package/src/{adapters/references.ts → core/markdown/adapters/inline.ts} +43 -13
  92. package/src/{adapters → core/markdown/adapters}/methods-and-constructors.ts +36 -20
  93. package/src/core/markdown/adapters/reference-guide.ts +35 -0
  94. package/src/core/markdown/adapters/renderable-bundle.ts +78 -0
  95. package/src/core/markdown/adapters/renderable-to-page-data.ts +89 -0
  96. package/src/core/markdown/adapters/type-utils.ts +13 -0
  97. package/src/core/{renderable → markdown/adapters}/types.d.ts +57 -8
  98. package/src/core/markdown/generate-docs.ts +216 -0
  99. package/src/core/markdown/reflection/error-handling.ts +37 -0
  100. package/src/core/markdown/reflection/filter-scope.ts +13 -0
  101. package/src/core/markdown/reflection/inheritance-chain-expanion.ts +22 -0
  102. package/src/core/markdown/reflection/inheritance-chain.ts +23 -0
  103. package/src/core/markdown/reflection/inherited-member-expansion.ts +105 -0
  104. package/src/core/markdown/reflection/reflect-source.ts +45 -0
  105. package/src/core/markdown/reflection/sort-members.ts +59 -0
  106. package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/class-template.ts +5 -3
  107. package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/constructors-partial-template.ts +2 -2
  108. package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/documentable-partial-template.ts +6 -4
  109. package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/fieldsPartialTemplate.ts +1 -1
  110. package/src/core/markdown/templates/hookable.ts +7 -0
  111. package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/methods-partial-template.ts +2 -2
  112. package/src/core/{templates → markdown/templates}/reference-guide.ts +1 -1
  113. package/src/core/{template.ts → markdown/templates/template.ts} +25 -19
  114. package/src/core/markdown/utils.ts +3 -0
  115. package/src/{transpiler → core}/openapi/__tests__/open-api-docs-processor.spec.ts +1 -1
  116. package/src/{model → core/openapi}/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +3 -3
  117. package/src/core/openapi/file-container.ts +13 -0
  118. package/src/{service → core/openapi}/manifest-factory.ts +3 -3
  119. package/src/{transpiler → core}/openapi/open-api-docs-processor.ts +9 -10
  120. package/src/core/openapi/openapi-type-file.ts +12 -0
  121. package/src/{service → core/openapi}/parser.ts +8 -8
  122. package/src/{transpiler → core}/openapi/parsers/Builder.ts +2 -2
  123. package/src/{transpiler → core}/openapi/parsers/MethodParser.ts +5 -5
  124. package/src/{transpiler → core}/openapi/parsers/ParameterObjectBuilder.ts +2 -2
  125. package/src/{transpiler → core}/openapi/parsers/ReferenceBuilder.ts +3 -3
  126. package/src/{transpiler → core}/openapi/parsers/RequestBodyBuilder.ts +2 -2
  127. package/src/{transpiler → core}/openapi/parsers/ResponsesBuilder.ts +2 -2
  128. package/src/{transpiler → core}/openapi/parsers/__tests__/MethodParser.spec.ts +1 -1
  129. package/src/{transpiler → core}/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +2 -2
  130. package/src/{transpiler → core}/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +2 -2
  131. package/src/{transpiler → core}/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +2 -2
  132. package/src/{transpiler → core}/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +1 -1
  133. package/src/{transpiler → core/openapi}/transpiler.ts +2 -6
  134. package/src/{model → core/openapi}/types-repository.ts +0 -9
  135. package/src/core/parse-apex-metadata.ts +14 -0
  136. package/src/core/settings.ts +56 -0
  137. package/src/core/shared/types.d.ts +131 -0
  138. package/src/core/shared/utils.ts +5 -0
  139. package/src/defaults.ts +9 -0
  140. package/src/index.ts +40 -2
  141. package/src/test-helpers/ClassMirrorBuilder.ts +14 -1
  142. package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -5
  143. package/src/test-helpers/SettingsBuilder.ts +1 -4
  144. package/src/util/fp.ts +3 -0
  145. package/src/util/logger.ts +3 -3
  146. package/src/util/string-utils.ts +0 -4
  147. package/tsconfig.json +6 -2
  148. package/apexdocs.config.ts +0 -13
  149. package/docs/.nojekyll +0 -0
  150. package/docs/__old/README.md +0 -1
  151. package/docs/__old/index.html +0 -22
  152. package/docs/__old/restapi.json +0 -589
  153. package/docs/__old/types/Classes/nspc.AnotherInterface.md +0 -22
  154. package/docs/__old/types/Classes/nspc.ChildClass.md +0 -97
  155. package/docs/__old/types/Main/nspc.GroupedClass.md +0 -10
  156. package/docs/__old/types/Main/nspc.SampleClass.md +0 -189
  157. package/docs/__old/types/Misc-Group/nspc.EscapedAnnotations.md +0 -4
  158. package/docs/__old/types/Misc-Group/nspc.GrandparentClass.md +0 -13
  159. package/docs/__old/types/Misc-Group/nspc.InterfaceWithInheritance.md +0 -29
  160. package/docs/__old/types/Misc-Group/nspc.MemberGrouping.md +0 -13
  161. package/docs/__old/types/Misc-Group/nspc.ParentClass.md +0 -37
  162. package/docs/__old/types/Misc-Group/nspc.Reference1.md +0 -18
  163. package/docs/__old/types/Misc-Group/nspc.Reference2.md +0 -12
  164. package/docs/__old/types/Misc-Group/nspc.Reference3.md +0 -7
  165. package/docs/__old/types/Misc-Group/nspc.Reference4.md +0 -7
  166. package/docs/__old/types/Misc-Group/nspc.Reference5.md +0 -7
  167. package/docs/__old/types/Misc-Group/nspc.Reference6.md +0 -9
  168. package/docs/__old/types/Misc-Group/nspc.Reference7.md +0 -7
  169. package/docs/__old/types/Misc-Group/nspc.SampleClassWithoutModifier.md +0 -11
  170. package/docs/__old/types/Misc-Group/nspc.SampleRestResource.md +0 -104
  171. package/docs/__old/types/Misc-Group/nspc.SampleRestResourceWithInnerClass.md +0 -33
  172. package/docs/__old/types/Misc-Group/nspc.SampleRestResourceWithoutApexDocs.md +0 -14
  173. package/docs/__old/types/README.md +0 -97
  174. package/docs/__old/types/Sample-Interfaces/nspc.SampleInterface.md +0 -23
  175. package/examples/includes/header.md +0 -3
  176. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +0 -7
  177. package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +0 -36
  178. package/examples/plain-markdown/docs/index.md +0 -36
  179. package/examples/plain-markdown/force-app/classes/SampleException.cls +0 -1
  180. package/examples/plain-markdown/template.md +0 -3
  181. package/lib/__spec__/core/expect-extensions.d.ts +0 -3
  182. package/lib/__spec__/core/expect-extensions.js +0 -54
  183. package/lib/__spec__/core/expect-extensions.js.map +0 -1
  184. package/lib/__spec__/core/generating-class-docs.spec.d.ts +0 -1
  185. package/lib/__spec__/core/generating-class-docs.spec.js +0 -427
  186. package/lib/__spec__/core/generating-class-docs.spec.js.map +0 -1
  187. package/lib/__spec__/core/generating-enum-docs.spec.d.ts +0 -1
  188. package/lib/__spec__/core/generating-enum-docs.spec.js +0 -303
  189. package/lib/__spec__/core/generating-enum-docs.spec.js.map +0 -1
  190. package/lib/__spec__/core/generating-interface-docs.spec.d.ts +0 -1
  191. package/lib/__spec__/core/generating-interface-docs.spec.js +0 -361
  192. package/lib/__spec__/core/generating-interface-docs.spec.js.map +0 -1
  193. package/lib/__spec__/core/generating-reference-guide.spec.d.ts +0 -1
  194. package/lib/__spec__/core/generating-reference-guide.spec.js +0 -161
  195. package/lib/__spec__/core/generating-reference-guide.spec.js.map +0 -1
  196. package/lib/adapters/apex-types.d.ts +0 -7
  197. package/lib/adapters/apex-types.js +0 -112
  198. package/lib/adapters/apex-types.js.map +0 -1
  199. package/lib/adapters/documentables.d.ts +0 -7
  200. package/lib/adapters/documentables.js +0 -56
  201. package/lib/adapters/documentables.js.map +0 -1
  202. package/lib/adapters/fields-and-properties.d.ts +0 -4
  203. package/lib/adapters/fields-and-properties.js +0 -32
  204. package/lib/adapters/fields-and-properties.js.map +0 -1
  205. package/lib/adapters/methods-and-constructors.d.ts +0 -5
  206. package/lib/adapters/methods-and-constructors.js +0 -92
  207. package/lib/adapters/methods-and-constructors.js.map +0 -1
  208. package/lib/adapters/references.d.ts +0 -5
  209. package/lib/adapters/references.js +0 -82
  210. package/lib/adapters/references.js.map +0 -1
  211. package/lib/adapters/type-utils.d.ts +0 -2
  212. package/lib/adapters/type-utils.js +0 -7
  213. package/lib/adapters/type-utils.js.map +0 -1
  214. package/lib/application/Apexdocs.d.ts +0 -13
  215. package/lib/application/Apexdocs.js +0 -80
  216. package/lib/application/Apexdocs.js.map +0 -1
  217. package/lib/cli/generate.d.ts +0 -2
  218. package/lib/cli/generate.js +0 -157
  219. package/lib/cli/generate.js.map +0 -1
  220. package/lib/core/generate-docs.d.ts +0 -23
  221. package/lib/core/generate-docs.js +0 -241
  222. package/lib/core/generate-docs.js.map +0 -1
  223. package/lib/core/template.d.ts +0 -10
  224. package/lib/core/template.js +0 -92
  225. package/lib/core/template.js.map +0 -1
  226. package/lib/core/templates/reference-guide.d.ts +0 -1
  227. package/lib/core/templates/reference-guide.js +0 -18
  228. package/lib/core/templates/reference-guide.js.map +0 -1
  229. package/lib/index.d.ts +0 -2
  230. package/lib/index.js +0 -29
  231. package/lib/index.js.map +0 -1
  232. package/lib/model/apex-bundle.d.ts +0 -6
  233. package/lib/model/apex-bundle.js +0 -11
  234. package/lib/model/apex-bundle.js.map +0 -1
  235. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.d.ts +0 -7
  236. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js +0 -14
  237. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js.map +0 -1
  238. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.d.ts +0 -7
  239. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.js +0 -12
  240. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.js.map +0 -1
  241. package/lib/model/inheritance.d.ts +0 -8
  242. package/lib/model/inheritance.js +0 -3
  243. package/lib/model/inheritance.js.map +0 -1
  244. package/lib/model/manifest.d.ts +0 -22
  245. package/lib/model/manifest.js +0 -53
  246. package/lib/model/manifest.js.map +0 -1
  247. package/lib/model/markdown-file.d.ts +0 -16
  248. package/lib/model/markdown-file.js +0 -111
  249. package/lib/model/markdown-file.js.map +0 -1
  250. package/lib/model/markdown-generation-util/doc-comment-annotation-util.d.ts +0 -8
  251. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js +0 -46
  252. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +0 -1
  253. package/lib/model/markdown-generation-util/field-declaration-util.d.ts +0 -3
  254. package/lib/model/markdown-generation-util/field-declaration-util.js +0 -54
  255. package/lib/model/markdown-generation-util/field-declaration-util.js.map +0 -1
  256. package/lib/model/markdown-generation-util/index.d.ts +0 -3
  257. package/lib/model/markdown-generation-util/index.js +0 -20
  258. package/lib/model/markdown-generation-util/index.js.map +0 -1
  259. package/lib/model/markdown-generation-util/method-declaration-util.d.ts +0 -4
  260. package/lib/model/markdown-generation-util/method-declaration-util.js +0 -114
  261. package/lib/model/markdown-generation-util/method-declaration-util.js.map +0 -1
  262. package/lib/model/markdown-generation-util/type-declaration-util.d.ts +0 -3
  263. package/lib/model/markdown-generation-util/type-declaration-util.js +0 -81
  264. package/lib/model/markdown-generation-util/type-declaration-util.js.map +0 -1
  265. package/lib/model/markdown-home-file.d.ts +0 -11
  266. package/lib/model/markdown-home-file.js +0 -57
  267. package/lib/model/markdown-home-file.js.map +0 -1
  268. package/lib/model/markdown-type-file.d.ts +0 -26
  269. package/lib/model/markdown-type-file.js +0 -137
  270. package/lib/model/markdown-type-file.js.map +0 -1
  271. package/lib/model/openapi/apex-doc-types.d.ts +0 -19
  272. package/lib/model/openapi/apex-doc-types.js +0 -5
  273. package/lib/model/openapi/apex-doc-types.js.map +0 -1
  274. package/lib/model/openapi/open-api-types.d.ts +0 -93
  275. package/lib/model/openapi/open-api-types.js +0 -3
  276. package/lib/model/openapi/open-api-types.js.map +0 -1
  277. package/lib/model/openapi/open-api.d.ts +0 -16
  278. package/lib/model/openapi/open-api.js +0 -34
  279. package/lib/model/openapi/open-api.js.map +0 -1
  280. package/lib/model/openapi/openapi-type-file.d.ts +0 -7
  281. package/lib/model/openapi/openapi-type-file.js +0 -17
  282. package/lib/model/openapi/openapi-type-file.js.map +0 -1
  283. package/lib/model/outputFile.d.ts +0 -10
  284. package/lib/model/outputFile.js +0 -22
  285. package/lib/model/outputFile.js.map +0 -1
  286. package/lib/model/types-repository.d.ts +0 -16
  287. package/lib/model/types-repository.js +0 -54
  288. package/lib/model/types-repository.js.map +0 -1
  289. package/lib/service/apex-file-reader.d.ts +0 -14
  290. package/lib/service/apex-file-reader.js +0 -49
  291. package/lib/service/apex-file-reader.js.map +0 -1
  292. package/lib/service/file-system.d.ts +0 -14
  293. package/lib/service/file-system.js +0 -48
  294. package/lib/service/file-system.js.map +0 -1
  295. package/lib/service/file-writer.d.ts +0 -6
  296. package/lib/service/file-writer.js +0 -57
  297. package/lib/service/file-writer.js.map +0 -1
  298. package/lib/service/manifest-factory.d.ts +0 -10
  299. package/lib/service/manifest-factory.js +0 -16
  300. package/lib/service/manifest-factory.js.map +0 -1
  301. package/lib/service/metadata-processor.d.ts +0 -3
  302. package/lib/service/metadata-processor.js +0 -17
  303. package/lib/service/metadata-processor.js.map +0 -1
  304. package/lib/service/parser.d.ts +0 -21
  305. package/lib/service/parser.js +0 -138
  306. package/lib/service/parser.js.map +0 -1
  307. package/lib/service/state.d.ts +0 -9
  308. package/lib/service/state.js +0 -20
  309. package/lib/service/state.js.map +0 -1
  310. package/lib/service/walkers/class-walker.d.ts +0 -4
  311. package/lib/service/walkers/class-walker.js +0 -33
  312. package/lib/service/walkers/class-walker.js.map +0 -1
  313. package/lib/service/walkers/enum-walker.d.ts +0 -4
  314. package/lib/service/walkers/enum-walker.js +0 -11
  315. package/lib/service/walkers/enum-walker.js.map +0 -1
  316. package/lib/service/walkers/interface-walker.d.ts +0 -4
  317. package/lib/service/walkers/interface-walker.js +0 -15
  318. package/lib/service/walkers/interface-walker.js.map +0 -1
  319. package/lib/service/walkers/walker-factory.d.ts +0 -5
  320. package/lib/service/walkers/walker-factory.js +0 -21
  321. package/lib/service/walkers/walker-factory.js.map +0 -1
  322. package/lib/service/walkers/walker.d.ts +0 -19
  323. package/lib/service/walkers/walker.js +0 -17
  324. package/lib/service/walkers/walker.js.map +0 -1
  325. package/lib/settings.d.ts +0 -64
  326. package/lib/settings.js +0 -89
  327. package/lib/settings.js.map +0 -1
  328. package/lib/test-helpers/AnnotationBuilder.d.ts +0 -12
  329. package/lib/test-helpers/AnnotationBuilder.js +0 -31
  330. package/lib/test-helpers/AnnotationBuilder.js.map +0 -1
  331. package/lib/test-helpers/ClassMirrorBuilder.d.ts +0 -18
  332. package/lib/test-helpers/ClassMirrorBuilder.js +0 -54
  333. package/lib/test-helpers/ClassMirrorBuilder.js.map +0 -1
  334. package/lib/test-helpers/DocCommentAnnotationBuilder.d.ts +0 -8
  335. package/lib/test-helpers/DocCommentAnnotationBuilder.js +0 -26
  336. package/lib/test-helpers/DocCommentAnnotationBuilder.js.map +0 -1
  337. package/lib/test-helpers/DocCommentBuilder.d.ts +0 -12
  338. package/lib/test-helpers/DocCommentBuilder.js +0 -38
  339. package/lib/test-helpers/DocCommentBuilder.js.map +0 -1
  340. package/lib/test-helpers/FieldMirrorBuilder.d.ts +0 -18
  341. package/lib/test-helpers/FieldMirrorBuilder.js +0 -54
  342. package/lib/test-helpers/FieldMirrorBuilder.js.map +0 -1
  343. package/lib/test-helpers/InterfaceMirrorBuilder.d.ts +0 -16
  344. package/lib/test-helpers/InterfaceMirrorBuilder.js +0 -43
  345. package/lib/test-helpers/InterfaceMirrorBuilder.js.map +0 -1
  346. package/lib/test-helpers/MethodMirrorBuilder.d.ts +0 -29
  347. package/lib/test-helpers/MethodMirrorBuilder.js +0 -72
  348. package/lib/test-helpers/MethodMirrorBuilder.js.map +0 -1
  349. package/lib/test-helpers/SettingsBuilder.d.ts +0 -8
  350. package/lib/test-helpers/SettingsBuilder.js +0 -27
  351. package/lib/test-helpers/SettingsBuilder.js.map +0 -1
  352. package/lib/transpiler/factory.d.ts +0 -6
  353. package/lib/transpiler/factory.js +0 -35
  354. package/lib/transpiler/factory.js.map +0 -1
  355. package/lib/transpiler/file-container.d.ts +0 -6
  356. package/lib/transpiler/file-container.js +0 -16
  357. package/lib/transpiler/file-container.js.map +0 -1
  358. package/lib/transpiler/generator-choices.d.ts +0 -1
  359. package/lib/transpiler/generator-choices.js +0 -3
  360. package/lib/transpiler/generator-choices.js.map +0 -1
  361. package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +0 -11
  362. package/lib/transpiler/markdown/class-file-generatorHelper.js +0 -75
  363. package/lib/transpiler/markdown/class-file-generatorHelper.js.map +0 -1
  364. package/lib/transpiler/markdown/docsify/docsify-docs-processor.d.ts +0 -6
  365. package/lib/transpiler/markdown/docsify/docsify-docs-processor.js +0 -13
  366. package/lib/transpiler/markdown/docsify/docsify-docs-processor.js.map +0 -1
  367. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +0 -11
  368. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js +0 -51
  369. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +0 -1
  370. package/lib/transpiler/markdown/markdown-transpiler-base.d.ts +0 -11
  371. package/lib/transpiler/markdown/markdown-transpiler-base.js +0 -27
  372. package/lib/transpiler/markdown/markdown-transpiler-base.js.map +0 -1
  373. package/lib/transpiler/markdown/plain-markdown/class-template.d.ts +0 -1
  374. package/lib/transpiler/markdown/plain-markdown/class-template.js +0 -77
  375. package/lib/transpiler/markdown/plain-markdown/class-template.js.map +0 -1
  376. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.d.ts +0 -1
  377. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js +0 -36
  378. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js.map +0 -1
  379. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.d.ts +0 -1
  380. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js +0 -28
  381. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js.map +0 -1
  382. package/lib/transpiler/markdown/plain-markdown/enum-template.d.ts +0 -1
  383. package/lib/transpiler/markdown/plain-markdown/enum-template.js +0 -16
  384. package/lib/transpiler/markdown/plain-markdown/enum-template.js.map +0 -1
  385. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.d.ts +0 -1
  386. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js +0 -27
  387. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js.map +0 -1
  388. package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.d.ts +0 -1
  389. package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.js +0 -10
  390. package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.js.map +0 -1
  391. package/lib/transpiler/markdown/plain-markdown/interface-template.d.ts +0 -1
  392. package/lib/transpiler/markdown/plain-markdown/interface-template.js +0 -20
  393. package/lib/transpiler/markdown/plain-markdown/interface-template.js.map +0 -1
  394. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.d.ts +0 -1
  395. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js +0 -47
  396. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js.map +0 -1
  397. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +0 -9
  398. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +0 -42
  399. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js.map +0 -1
  400. package/lib/transpiler/markdown/plain-markdown/type-doc-partial.d.ts +0 -1
  401. package/lib/transpiler/markdown/plain-markdown/type-doc-partial.js +0 -31
  402. package/lib/transpiler/markdown/plain-markdown/type-doc-partial.js.map +0 -1
  403. package/lib/transpiler/openapi/open-api-docs-processor.d.ts +0 -13
  404. package/lib/transpiler/openapi/open-api-docs-processor.js +0 -78
  405. package/lib/transpiler/openapi/open-api-docs-processor.js.map +0 -1
  406. package/lib/transpiler/openapi/parsers/Builder.d.ts +0 -16
  407. package/lib/transpiler/openapi/parsers/Builder.js +0 -30
  408. package/lib/transpiler/openapi/parsers/Builder.js.map +0 -1
  409. package/lib/transpiler/openapi/parsers/MethodParser.d.ts +0 -20
  410. package/lib/transpiler/openapi/parsers/MethodParser.js +0 -190
  411. package/lib/transpiler/openapi/parsers/MethodParser.js.map +0 -1
  412. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.d.ts +0 -7
  413. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js +0 -11
  414. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js.map +0 -1
  415. package/lib/transpiler/openapi/parsers/ReferenceBuilder.d.ts +0 -39
  416. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js +0 -250
  417. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js.map +0 -1
  418. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.d.ts +0 -10
  419. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js +0 -20
  420. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js.map +0 -1
  421. package/lib/transpiler/openapi/parsers/ResponsesBuilder.d.ts +0 -7
  422. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js +0 -22
  423. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js.map +0 -1
  424. package/lib/transpiler/processor-type-transpiler.d.ts +0 -10
  425. package/lib/transpiler/processor-type-transpiler.js +0 -9
  426. package/lib/transpiler/processor-type-transpiler.js.map +0 -1
  427. package/lib/transpiler/transpiler.d.ts +0 -5
  428. package/lib/transpiler/transpiler.js +0 -30
  429. package/lib/transpiler/transpiler.js.map +0 -1
  430. package/lib/util/error-logger.d.ts +0 -8
  431. package/lib/util/error-logger.js +0 -90
  432. package/lib/util/error-logger.js.map +0 -1
  433. package/lib/util/logger.d.ts +0 -21
  434. package/lib/util/logger.js +0 -61
  435. package/lib/util/logger.js.map +0 -1
  436. package/lib/util/string-utils.d.ts +0 -2
  437. package/lib/util/string-utils.js +0 -15
  438. package/lib/util/string-utils.js.map +0 -1
  439. package/src/__spec__/core/generating-class-docs.spec.ts +0 -511
  440. package/src/adapters/__tests__/interface-adapter.spec.ts +0 -80
  441. package/src/adapters/type-utils.ts +0 -5
  442. package/src/adapters/types.d.ts +0 -8
  443. package/src/core/generate-docs.ts +0 -357
  444. package/src/model/apex-bundle.ts +0 -3
  445. package/src/model/inheritance.ts +0 -7
  446. package/src/model/manifest.ts +0 -84
  447. package/src/model/markdown-file.ts +0 -122
  448. package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +0 -50
  449. package/src/model/markdown-generation-util/field-declaration-util.ts +0 -71
  450. package/src/model/markdown-generation-util/index.ts +0 -3
  451. package/src/model/markdown-generation-util/method-declaration-util.ts +0 -166
  452. package/src/model/markdown-generation-util/type-declaration-util.ts +0 -91
  453. package/src/model/markdown-home-file.ts +0 -58
  454. package/src/model/markdown-type-file.ts +0 -165
  455. package/src/model/openapi/openapi-type-file.ts +0 -14
  456. package/src/model/outputFile.ts +0 -20
  457. package/src/service/__tests__/apex-file-reader.spec.ts +0 -92
  458. package/src/service/apex-file-reader.ts +0 -51
  459. package/src/service/file-writer.ts +0 -34
  460. package/src/service/metadata-processor.ts +0 -16
  461. package/src/service/state.ts +0 -24
  462. package/src/service/walkers/class-walker.ts +0 -30
  463. package/src/service/walkers/enum-walker.ts +0 -7
  464. package/src/service/walkers/interface-walker.ts +0 -12
  465. package/src/service/walkers/walker-factory.ts +0 -19
  466. package/src/service/walkers/walker.ts +0 -42
  467. package/src/settings.ts +0 -147
  468. package/src/transpiler/factory.ts +0 -33
  469. package/src/transpiler/file-container.ts +0 -13
  470. package/src/transpiler/generator-choices.ts +0 -1
  471. package/src/transpiler/markdown/class-file-generatorHelper.ts +0 -78
  472. package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +0 -12
  473. package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +0 -50
  474. package/src/transpiler/markdown/markdown-transpiler-base.ts +0 -28
  475. package/src/transpiler/markdown/plain-markdown/plain-docsProcessor.ts +0 -42
  476. package/src/transpiler/processor-type-transpiler.ts +0 -18
  477. /package/examples/{plain-markdown → markdown}/.forceignore +0 -0
  478. /package/examples/{plain-markdown → markdown}/config/project-scratch-def.json +0 -0
  479. /package/examples/{plain-markdown → markdown}/force-app/classes/BaseClass.cls +0 -0
  480. /package/examples/{plain-markdown → markdown}/force-app/classes/ParentInterface.cls +0 -0
  481. /package/examples/{plain-markdown → markdown}/force-app/classes/ReferencedEnum.cls +0 -0
  482. /package/examples/{plain-markdown → markdown}/force-app/classes/SampleClass.cls +0 -0
  483. /package/examples/{plain-markdown → markdown}/force-app/classes/SampleEnum.cls +0 -0
  484. /package/examples/{plain-markdown → markdown}/force-app/classes/SampleInterface.cls +0 -0
  485. /package/examples/{plain-markdown → markdown}/package-lock.json +0 -0
  486. /package/examples/{plain-markdown → markdown}/sfdx-project.json +0 -0
  487. /package/src/{service → application}/file-system.ts +0 -0
  488. /package/src/{model/__tests__ → core/__test__}/manifest.spec.ts +0 -0
  489. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/enum-template.ts +0 -0
  490. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/grouped-members-partial-template.ts +0 -0
  491. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/interface-template.ts +0 -0
  492. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/type-doc-partial.ts +0 -0
  493. /package/src/{service → core/openapi}/__tests__/manifest-factory.spec.ts +0 -0
  494. /package/src/{model → core}/openapi/__tests__/open-api.spec.ts +0 -0
  495. /package/src/{model → core}/openapi/apex-doc-types.ts +0 -0
  496. /package/src/{model → core/openapi}/apex-type-wrappers/ClassMirrorWrapper.ts +0 -0
  497. /package/src/{model → core/openapi}/apex-type-wrappers/MethodMirrorWrapper.ts +0 -0
  498. /package/src/{model → core}/openapi/open-api-types.ts +0 -0
  499. /package/src/{model → core}/openapi/open-api.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import { assertEither, extendExpect } from './expect-extensions';
2
- import { generateDocs } from '../../core/generate-docs';
2
+ import { apexBundleFromRawString, generateDocs } from './test-helpers';
3
3
 
4
4
  describe('Generates interface documentation', () => {
5
5
  beforeAll(() => {
@@ -7,39 +7,29 @@ describe('Generates interface documentation', () => {
7
7
  });
8
8
 
9
9
  describe('documentation output', () => {
10
- it('always returns markdown as the format', () => {
11
- const input = `
12
- public interface MyInterface {
13
- }
14
- `;
15
-
16
- const result = generateDocs([input]);
17
- assertEither(result, (data) => expect(data.format).toBe('markdown'));
18
- });
19
-
20
- it('returns the name of the interface', () => {
10
+ it('returns the name of the interface', async () => {
21
11
  const input = `
22
12
  public interface MyInterface {
23
13
  }
24
14
  `;
25
15
 
26
- const result = generateDocs([input]);
16
+ const result = await generateDocs([apexBundleFromRawString(input)])();
27
17
  expect(result).documentationBundleHasLength(1);
28
- assertEither(result, (data) => expect(data.docs[0].typeName).toBe('MyInterface'));
18
+ assertEither(result, (data) => expect(data.docs[0].source.name).toBe('MyInterface'));
29
19
  });
30
20
 
31
- it('returns the type as interface', () => {
21
+ it('returns the type as interface', async () => {
32
22
  const input = `
33
23
  public interface MyInterface {
34
24
  }
35
25
  `;
36
26
 
37
- const result = generateDocs([input]);
27
+ const result = await generateDocs([apexBundleFromRawString(input)])();
38
28
  expect(result).documentationBundleHasLength(1);
39
- assertEither(result, (data) => expect(data.docs[0].type).toBe('interface'));
29
+ assertEither(result, (data) => expect(data.docs[0].source.type).toBe('interface'));
40
30
  });
41
31
 
42
- it('does not return interfaces out of scope', () => {
32
+ it('does not return interfaces out of scope', async () => {
43
33
  const input1 = `
44
34
  global interface MyInterface {}
45
35
  `;
@@ -48,22 +38,24 @@ describe('Generates interface documentation', () => {
48
38
  public interface AnotherInterface {}
49
39
  `;
50
40
 
51
- const result = generateDocs([input1, input2], { scope: ['global'] });
41
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)], {
42
+ scope: ['global'],
43
+ })();
52
44
  expect(result).documentationBundleHasLength(1);
53
45
  });
54
46
 
55
- it('does not return interfaces that have an @ignore in the docs', () => {
47
+ it('does not return interfaces that have an @ignore in the docs', async () => {
56
48
  const input = `
57
49
  /**
58
50
  * @ignore
59
51
  */
60
52
  public interface MyInterface {}`;
61
53
 
62
- const result = generateDocs([input]);
54
+ const result = await generateDocs([apexBundleFromRawString(input)])();
63
55
  expect(result).documentationBundleHasLength(0);
64
56
  });
65
57
 
66
- it('does not return interface methods that have @ignore in the docs', () => {
58
+ it('does not return interface methods that have @ignore in the docs', async () => {
67
59
  const input = `
68
60
  public interface MyInterface {
69
61
  /**
@@ -72,26 +64,26 @@ describe('Generates interface documentation', () => {
72
64
  void myMethod();
73
65
  }`;
74
66
 
75
- const result = generateDocs([input]);
67
+ const result = await generateDocs([apexBundleFromRawString(input)])();
76
68
  expect(result).documentationBundleHasLength(1);
77
- assertEither(result, (data) => expect(data.docs[0].docContents).not.toContain('myMethod'));
69
+ assertEither(result, (data) => expect(data.docs[0].content).not.toContain('myMethod'));
78
70
  });
79
71
  });
80
72
 
81
73
  describe('documentation content', () => {
82
74
  describe('type level information', () => {
83
- it('generates a heading with the interface name', () => {
75
+ it('generates a heading with the interface name', async () => {
84
76
  const input = `
85
77
  public interface MyInterface {}
86
78
  `;
87
79
 
88
80
  const output = `# MyInterface Interface`;
89
- const result = generateDocs([input]);
81
+ const result = await generateDocs([apexBundleFromRawString(input)])();
90
82
  expect(result).documentationBundleHasLength(1);
91
83
  assertEither(result, (data) => expect(data).firstDocContains(output));
92
84
  });
93
85
 
94
- it('displays type level annotations', () => {
86
+ it('displays type level annotations', async () => {
95
87
  const input = `
96
88
  @NamespaceAccessible
97
89
  public interface MyInterface {
@@ -100,13 +92,13 @@ describe('Generates interface documentation', () => {
100
92
  }
101
93
  `;
102
94
 
103
- const result = generateDocs([input]);
95
+ const result = await generateDocs([apexBundleFromRawString(input)])();
104
96
  expect(result).documentationBundleHasLength(1);
105
97
  assertEither(result, (data) => expect(data).firstDocContains('NAMESPACEACCESSIBLE'));
106
98
  assertEither(result, (data) => expect(data).firstDocContains('DEPRECATED'));
107
99
  });
108
100
 
109
- it('displays the description', () => {
101
+ it('displays the description', async () => {
110
102
  const input = `
111
103
  /**
112
104
  * This is a description
@@ -114,12 +106,12 @@ describe('Generates interface documentation', () => {
114
106
  public interface MyInterface {}
115
107
  `;
116
108
 
117
- const result = generateDocs([input]);
109
+ const result = await generateDocs([apexBundleFromRawString(input)])();
118
110
  expect(result).documentationBundleHasLength(1);
119
111
  assertEither(result, (data) => expect(data).firstDocContains('This is a description'));
120
112
  });
121
113
 
122
- it('display custom documentation tags', () => {
114
+ it('display custom documentation tags', async () => {
123
115
  const input = `
124
116
  /**
125
117
  * @custom-tag My Value
@@ -127,64 +119,64 @@ describe('Generates interface documentation', () => {
127
119
  public interface MyInterface {}
128
120
  `;
129
121
 
130
- const result = generateDocs([input]);
122
+ const result = await generateDocs([apexBundleFromRawString(input)])();
131
123
  expect(result).documentationBundleHasLength(1);
132
124
  assertEither(result, (data) => expect(data).firstDocContains('Custom Tag'));
133
125
  assertEither(result, (data) => expect(data).firstDocContains('My Value'));
134
126
  });
135
127
 
136
- it('displays the group', () => {
128
+ it('displays the group', async () => {
137
129
  const input = `
138
130
  /**
139
131
  * @group MyGroup
140
132
  */
141
133
  public interface MyInterface {}`;
142
134
 
143
- const result = generateDocs([input]);
135
+ const result = await generateDocs([apexBundleFromRawString(input)])();
144
136
  expect(result).documentationBundleHasLength(1);
145
137
  assertEither(result, (data) => expect(data).firstDocContains('Group'));
146
138
  assertEither(result, (data) => expect(data).firstDocContains('MyGroup'));
147
139
  });
148
140
 
149
- it('displays the author', () => {
141
+ it('displays the author', async () => {
150
142
  const input = `
151
143
  /**
152
144
  * @author John Doe
153
145
  */
154
146
  public interface MyInterface {}`;
155
147
 
156
- const result = generateDocs([input]);
148
+ const result = await generateDocs([apexBundleFromRawString(input)])();
157
149
  expect(result).documentationBundleHasLength(1);
158
150
  assertEither(result, (data) => expect(data).firstDocContains('Author'));
159
151
  assertEither(result, (data) => expect(data).firstDocContains('John Doe'));
160
152
  });
161
153
 
162
- it('displays the date', () => {
154
+ it('displays the date', async () => {
163
155
  const input = `
164
156
  /**
165
157
  * @date 2021-01-01
166
158
  */
167
159
  public interface MyInterface {}`;
168
160
 
169
- const result = generateDocs([input]);
161
+ const result = await generateDocs([apexBundleFromRawString(input)])();
170
162
  expect(result).documentationBundleHasLength(1);
171
163
  assertEither(result, (data) => expect(data).firstDocContains('Date'));
172
164
  assertEither(result, (data) => expect(data).firstDocContains('2021-01-01'));
173
165
  });
174
166
 
175
- it('displays descriptions', () => {
167
+ it('displays descriptions', async () => {
176
168
  const input = `
177
169
  /**
178
170
  * @description This is a description
179
171
  */
180
172
  public interface MyInterface {}`;
181
173
 
182
- const result = generateDocs([input]);
174
+ const result = await generateDocs([apexBundleFromRawString(input)])();
183
175
  expect(result).documentationBundleHasLength(1);
184
176
  assertEither(result, (data) => expect(data).firstDocContains('This is a description'));
185
177
  });
186
178
 
187
- it('displays descriptions with links', () => {
179
+ it('displays descriptions with links', async () => {
188
180
  const input1 = `
189
181
  /**
190
182
  * @description This is a description with a {@link InterfaceRef} reference
@@ -194,14 +186,16 @@ describe('Generates interface documentation', () => {
194
186
 
195
187
  const input2 = 'public interface InterfaceRef {}';
196
188
 
197
- const result = generateDocs([input1, input2]);
189
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
198
190
  expect(result).documentationBundleHasLength(2);
199
191
  assertEither(result, (data) =>
200
- expect(data).firstDocContains('This is a description with a [InterfaceRef](./InterfaceRef.md) reference'),
192
+ expect(data).firstDocContains(
193
+ 'This is a description with a [InterfaceRef](/miscellaneous/InterfaceRef.md) reference',
194
+ ),
201
195
  );
202
196
  });
203
197
 
204
- it('displays descriptions with emails', () => {
198
+ it('displays descriptions with emails', async () => {
205
199
  const input = `
206
200
  /**
207
201
  * @description This is a description with an {@email test@testerson.com} email
@@ -209,7 +203,7 @@ describe('Generates interface documentation', () => {
209
203
  public interface MyInterface {}
210
204
  `;
211
205
 
212
- const result = generateDocs([input]);
206
+ const result = await generateDocs([apexBundleFromRawString(input)])();
213
207
  expect(result).documentationBundleHasLength(1);
214
208
  assertEither(result, (data) =>
215
209
  expect(data).firstDocContains(
@@ -218,7 +212,7 @@ describe('Generates interface documentation', () => {
218
212
  );
219
213
  });
220
214
 
221
- it('displays sees with accurately resolved links', () => {
215
+ it('displays sees with accurately resolved links', async () => {
222
216
  const input1 = `
223
217
  /**
224
218
  * @see InterfaceRef
@@ -228,13 +222,13 @@ describe('Generates interface documentation', () => {
228
222
 
229
223
  const input2 = 'public interface InterfaceRef {}';
230
224
 
231
- const result = generateDocs([input1, input2]);
225
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
232
226
  expect(result).documentationBundleHasLength(2);
233
227
  assertEither(result, (data) => expect(data).firstDocContains('See'));
234
- assertEither(result, (data) => expect(data).firstDocContains('[InterfaceRef](./InterfaceRef.md)'));
228
+ assertEither(result, (data) => expect(data).firstDocContains('[InterfaceRef](/miscellaneous/InterfaceRef.md)'));
235
229
  });
236
230
 
237
- it('displays sees without links when the reference is not found', () => {
231
+ it('displays sees without links when the reference is not found', async () => {
238
232
  const input = `
239
233
  /**
240
234
  * @see InterfaceRef
@@ -242,61 +236,65 @@ describe('Generates interface documentation', () => {
242
236
  public interface MyInterface {}
243
237
  `;
244
238
 
245
- const result = generateDocs([input]);
239
+ const result = await generateDocs([apexBundleFromRawString(input)])();
246
240
  expect(result).documentationBundleHasLength(1);
247
241
  assertEither(result, (data) => expect(data).firstDocContains('See'));
248
242
  assertEither(result, (data) => expect(data).firstDocContains('InterfaceRef'));
249
243
  });
250
244
 
251
- it('displays the namespace if present in the config', () => {
245
+ it('displays the namespace if present in the config', async () => {
252
246
  const input = 'public interface MyInterface {}';
253
247
 
254
- const result = generateDocs([input], { namespace: 'MyNamespace' });
248
+ const result = await generateDocs([apexBundleFromRawString(input)], { namespace: 'MyNamespace' })();
255
249
  expect(result).documentationBundleHasLength(1);
256
250
  assertEither(result, (data) => expect(data).firstDocContains('## Namespace'));
257
251
  assertEither(result, (data) => expect(data).firstDocContains('MyNamespace'));
258
252
  });
259
253
 
260
- it('does not display the namespace if not present in the config', () => {
254
+ it('does not display the namespace if not present in the config', async () => {
261
255
  const input = 'public interface MyInterface {}';
262
256
 
263
- const result = generateDocs([input]);
257
+ const result = await generateDocs([apexBundleFromRawString(input)])();
264
258
  expect(result).documentationBundleHasLength(1);
265
259
  assertEither(result, (data) => expect(data).firstDocContainsNot('## Namespace'));
266
260
  });
267
261
 
268
- it('displays a mermaid diagram', () => {
262
+ it('displays a mermaid diagram', async () => {
269
263
  const input = `
270
264
  /**
271
265
  * @mermaid
266
+ * \`\`\`mermaid
272
267
  * graph TD
273
268
  * A[Square Rect] -- Link text --> B((Circle))
274
269
  * A --> C(Round Rect)
275
270
  * B --> D{Rhombus}
276
271
  * C --> D
272
+ * \`\`\`
277
273
  */
278
274
  public interface MyInterface {}
279
275
  `;
280
276
 
281
- const result = generateDocs([input]);
277
+ const result = await generateDocs([apexBundleFromRawString(input)])();
282
278
  expect(result).documentationBundleHasLength(1);
283
279
  assertEither(result, (data) => expect(data).firstDocContains('```mermaid'));
284
280
  assertEither(result, (data) => expect(data).firstDocContains('graph TD'));
285
281
  });
286
282
 
287
- it('displays an example code block', () => {
283
+ it('displays an example code block', async () => {
288
284
  const input = `
289
285
  /**
290
286
  * @example
287
+ * \`\`\`apex
291
288
  * public class MyClass {
292
289
  * public void myMethod() {
293
290
  * System.debug('Hello, World!');
294
291
  * }
295
292
  * }
293
+ * \`\`\`
296
294
  */
297
295
  public interface MyInterface {}`;
298
296
 
299
- const result = generateDocs([input]);
297
+ const result = await generateDocs([apexBundleFromRawString(input)])();
300
298
  expect(result).documentationBundleHasLength(1);
301
299
  assertEither(result, (data) => expect(data).firstDocContains('```apex'));
302
300
  assertEither(result, (data) => expect(data).firstDocContains('public class MyClass'));
@@ -304,40 +302,72 @@ describe('Generates interface documentation', () => {
304
302
  });
305
303
 
306
304
  describe('method information', () => {
307
- it('displays the Method heading', () => {
305
+ it('displays the Method heading', async () => {
308
306
  const input = `
309
307
  public interface MyInterface {
310
308
  void myMethod();
311
309
  }
312
310
  `;
313
311
 
314
- const result = generateDocs([input]);
312
+ const result = await generateDocs([apexBundleFromRawString(input)])();
315
313
  expect(result).documentationBundleHasLength(1);
316
314
  assertEither(result, (data) => expect(data).firstDocContains('## Methods'));
317
315
  });
318
316
 
319
- it('supports having mermaid diagrams in method descriptions', () => {
317
+ it('displays methods sorted if sortMembersAlphabetically is true', async () => {
318
+ const input = `
319
+ public interface MyInterface {
320
+ void myMethod();
321
+ void anotherMethod();
322
+ }
323
+ `;
324
+
325
+ const result = await generateDocs([apexBundleFromRawString(input)], { sortMembersAlphabetically: true })();
326
+ expect(result).documentationBundleHasLength(1);
327
+ assertEither(result, (data) => {
328
+ expect(data.docs[0].content.indexOf('anotherMethod')).toBeLessThan(data.docs[0].content.indexOf('myMethod'));
329
+ });
330
+ });
331
+
332
+ it('does not display methods sorted if sortMembersAlphabetically is false', async () => {
333
+ const input = `
334
+ public interface MyInterface {
335
+ void myMethod();
336
+ void anotherMethod();
337
+ }
338
+ `;
339
+
340
+ const result = await generateDocs([apexBundleFromRawString(input)], { sortMembersAlphabetically: false })();
341
+ expect(result).documentationBundleHasLength(1);
342
+ assertEither(result, (data) => {
343
+ expect(data.docs[0].content.indexOf('myMethod')).toBeLessThan(data.docs[0].content.indexOf('anotherMethod'));
344
+ });
345
+ });
346
+
347
+ it('supports having mermaid diagrams in method descriptions', async () => {
320
348
  const input = `
321
349
  public interface MyInterface {
322
350
  /**
323
351
  * @mermaid
352
+ * \`\`\`mermaid
324
353
  * graph TD
325
354
  * A[Square Rect] -- Link text --> B((Circle))
326
355
  * A --> C(Round Rect)
327
356
  * B --> D{Rhombus}
328
357
  * C --> D
358
+ * \`\`\`
329
359
  */
330
360
  void myMethod();
331
361
  }
332
362
  `;
333
363
 
334
- const result = generateDocs([input]);
364
+ const result = await generateDocs([apexBundleFromRawString(input)])();
335
365
  expect(result).documentationBundleHasLength(1);
336
366
  assertEither(result, (data) => expect(data).firstDocContains('```mermaid'));
337
367
  assertEither(result, (data) => expect(data).firstDocContains('graph TD'));
338
368
  });
339
369
 
340
- it('supports having example code blocks in method descriptions', () => {
370
+ it('supports having example code blocks in method descriptions', async () => {
341
371
  const input = `
342
372
  public interface MyInterface {
343
373
  /**
@@ -352,49 +382,49 @@ describe('Generates interface documentation', () => {
352
382
  }
353
383
  `;
354
384
 
355
- const result = generateDocs([input]);
385
+ const result = await generateDocs([apexBundleFromRawString(input)])();
356
386
  expect(result).documentationBundleHasLength(1);
357
387
  assertEither(result, (data) => expect(data).firstDocContains('```apex'));
358
388
  assertEither(result, (data) => expect(data).firstDocContains('public class MyClass'));
359
389
  });
360
390
 
361
- it('has a signature section', () => {
391
+ it('has a signature section', async () => {
362
392
  const input = `
363
393
  public interface MyInterface {
364
394
  void myMethod();
365
395
  }
366
396
  `;
367
397
 
368
- const result = generateDocs([input]);
398
+ const result = await generateDocs([apexBundleFromRawString(input)])();
369
399
  expect(result).documentationBundleHasLength(1);
370
400
  assertEither(result, (data) => expect(data).firstDocContains('### Signature'));
371
401
  });
372
402
 
373
- it('has a parameters section', () => {
403
+ it('has a parameters section', async () => {
374
404
  const input = `
375
405
  public interface MyInterface {
376
406
  void myMethod(String param1, Integer param2);
377
407
  }
378
408
  `;
379
409
 
380
- const result = generateDocs([input]);
410
+ const result = await generateDocs([apexBundleFromRawString(input)])();
381
411
  expect(result).documentationBundleHasLength(1);
382
412
  assertEither(result, (data) => expect(data).firstDocContains('### Parameters'));
383
413
  });
384
414
 
385
- it('has a return type section', () => {
415
+ it('has a return type section', async () => {
386
416
  const input = `
387
417
  public interface MyInterface {
388
418
  String myMethod();
389
419
  }
390
420
  `;
391
421
 
392
- const result = generateDocs([input]);
422
+ const result = await generateDocs([apexBundleFromRawString(input)])();
393
423
  expect(result).documentationBundleHasLength(1);
394
424
  assertEither(result, (data) => expect(data).firstDocContains('### Return Type'));
395
425
  });
396
426
 
397
- it('has a throws section', () => {
427
+ it('has a throws section', async () => {
398
428
  const input = `
399
429
  public interface MyInterface {
400
430
  /**
@@ -404,12 +434,12 @@ describe('Generates interface documentation', () => {
404
434
  }
405
435
  `;
406
436
 
407
- const result = generateDocs([input]);
437
+ const result = await generateDocs([apexBundleFromRawString(input)])();
408
438
  expect(result).documentationBundleHasLength(1);
409
439
  assertEither(result, (data) => expect(data).firstDocContains('### Throws'));
410
440
  });
411
441
 
412
- it('displays an "inherited" tag if the method was inherited from a different interface', () => {
442
+ it('displays an "inherited" tag if the method was inherited from a different interface', async () => {
413
443
  const input1 = `
414
444
  public interface MyInterface {
415
445
  void myMethod();
@@ -420,10 +450,10 @@ describe('Generates interface documentation', () => {
420
450
  public interface AnotherInterface extends MyInterface {}
421
451
  `;
422
452
 
423
- const result = generateDocs([input1, input2]);
453
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
424
454
  expect(result).documentationBundleHasLength(2);
425
455
  assertEither(result, (data) =>
426
- expect(data.docs.find((doc) => doc.typeName === 'AnotherInterface')?.docContents).toContain('Inherited'),
456
+ expect(data.docs.find((doc) => doc.filePath.includes('AnotherInterface'))?.content).toContain('Inherited'),
427
457
  );
428
458
  });
429
459
  });
@@ -1,14 +1,15 @@
1
1
  import { assertEither, extendExpect } from './expect-extensions';
2
- import { generateDocs } from '../../core/generate-docs';
3
2
  import { pipe } from 'fp-ts/function';
4
3
  import * as E from 'fp-ts/Either';
4
+ import { apexBundleFromRawString, generateDocs } from './test-helpers';
5
+ import { ReferenceGuidePageData } from '../../shared/types';
5
6
 
6
7
  describe('Generates a Reference Guide', () => {
7
8
  beforeAll(() => {
8
9
  extendExpect();
9
10
  });
10
11
 
11
- it('returns a reference guide with links to all other files', () => {
12
+ it('returns a reference guide with links to all other files', async () => {
12
13
  const input1 = `
13
14
  public enum MyEnum {
14
15
  VALUE1,
@@ -20,14 +21,18 @@ describe('Generates a Reference Guide', () => {
20
21
  public class MyClass {}
21
22
  `;
22
23
 
23
- const result = generateDocs([input1, input2]);
24
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
24
25
  expect(result).documentationBundleHasLength(2);
25
26
 
26
- assertEither(result, (data) => expect(data.referenceGuide).toContain('[MyEnum](./Miscellaneous/MyEnum.md)'));
27
- assertEither(result, (data) => expect(data.referenceGuide).toContain('[MyClass](./Miscellaneous/MyClass.md)'));
27
+ assertEither(result, (data) =>
28
+ expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('[MyEnum](/miscellaneous/MyEnum.md)'),
29
+ );
30
+ assertEither(result, (data) =>
31
+ expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('[MyClass](/miscellaneous/MyClass.md)'),
32
+ );
28
33
  });
29
34
 
30
- it('groups things under Miscellaneous if no group is provided', () => {
35
+ it('groups things under Miscellaneous if no group is provided', async () => {
31
36
  const input = `
32
37
  public enum MyEnum {
33
38
  VALUE1,
@@ -35,12 +40,14 @@ describe('Generates a Reference Guide', () => {
35
40
  }
36
41
  `;
37
42
 
38
- const result = generateDocs([input]);
43
+ const result = await generateDocs([apexBundleFromRawString(input)])();
39
44
  expect(result).documentationBundleHasLength(1);
40
- assertEither(result, (data) => expect(data.referenceGuide).toContain('## Miscellaneous'));
45
+ assertEither(result, (data) =>
46
+ expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## Miscellaneous'),
47
+ );
41
48
  });
42
49
 
43
- it('group things under the provided group', () => {
50
+ it('group things under the provided group', async () => {
44
51
  const input = `
45
52
  /**
46
53
  * @group MyGroup
@@ -51,12 +58,14 @@ describe('Generates a Reference Guide', () => {
51
58
  }
52
59
  `;
53
60
 
54
- const result = generateDocs([input]);
61
+ const result = await generateDocs([apexBundleFromRawString(input)])();
55
62
  expect(result).documentationBundleHasLength(1);
56
- assertEither(result, (data) => expect(data.referenceGuide).toContain('## MyGroup'));
63
+ assertEither(result, (data) =>
64
+ expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## MyGroup'),
65
+ );
57
66
  });
58
67
 
59
- it('displays groups in alphabetical order', () => {
68
+ it('displays groups in alphabetical order', async () => {
60
69
  const input1 = `
61
70
  /**
62
71
  * @group ZGroup
@@ -74,13 +83,13 @@ describe('Generates a Reference Guide', () => {
74
83
  public class MyClass {}
75
84
  `;
76
85
 
77
- const result = generateDocs([input1, input2]);
86
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
78
87
  expect(result).documentationBundleHasLength(2);
79
88
  pipe(
80
89
  result,
81
90
  E.map((data) => ({
82
- aGroupIndex: data.referenceGuide.indexOf('## AGroup'),
83
- zGroupIndex: data.referenceGuide.indexOf('## ZGroup'),
91
+ aGroupIndex: (data.referenceGuide as ReferenceGuidePageData).content.indexOf('## AGroup'),
92
+ zGroupIndex: (data.referenceGuide as ReferenceGuidePageData).content.indexOf('## ZGroup'),
84
93
  })),
85
94
  E.match(
86
95
  () => fail('Expected data'),
@@ -89,7 +98,7 @@ describe('Generates a Reference Guide', () => {
89
98
  );
90
99
  });
91
100
 
92
- it('displays references within groups in alphabetical order', () => {
101
+ it('displays references within groups in alphabetical order', async () => {
93
102
  const input1 = `
94
103
  /**
95
104
  * @group Group1
@@ -107,14 +116,18 @@ describe('Generates a Reference Guide', () => {
107
116
  public class MyClass {}
108
117
  `;
109
118
 
110
- const result = generateDocs([input1, input2]);
119
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
111
120
  expect(result).documentationBundleHasLength(2);
112
- assertEither(result, (data) => expect(data.referenceGuide).toContain('## Group1'));
113
- assertEither(result, (data) => expect(data.referenceGuide).toContain('MyClass'));
114
- assertEither(result, (data) => expect(data.referenceGuide).toContain('MyEnum'));
121
+ assertEither(result, (data) =>
122
+ expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## Group1'),
123
+ );
124
+ assertEither(result, (data) =>
125
+ expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('MyClass'),
126
+ );
127
+ assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('MyEnum'));
115
128
  });
116
129
 
117
- it('returns a reference guide with descriptions', () => {
130
+ it('returns a reference guide with descriptions', async () => {
118
131
  const input1 = `
119
132
  /**
120
133
  * @description This is a description
@@ -132,12 +145,14 @@ describe('Generates a Reference Guide', () => {
132
145
  public class MyClass {}
133
146
  `;
134
147
 
135
- const result = generateDocs([input1, input2]);
148
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
136
149
  expect(result).documentationBundleHasLength(2);
137
- assertEither(result, (data) => expect(data.referenceGuide).toContain('This is a description'));
150
+ assertEither(result, (data) =>
151
+ expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('This is a description'),
152
+ );
138
153
  });
139
154
 
140
- it('returns a reference guide with descriptions with links to all other files', () => {
155
+ it('returns a reference guide with descriptions with links to all other files', async () => {
141
156
  const input1 = `
142
157
  /**
143
158
  * @description This is a description with a {@link MyClass}
@@ -156,8 +171,10 @@ describe('Generates a Reference Guide', () => {
156
171
  public class MyClass {}
157
172
  `;
158
173
 
159
- const result = generateDocs([input1, input2]);
174
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
160
175
  expect(result).documentationBundleHasLength(2);
161
- assertEither(result, (data) => expect(data.referenceGuide).toContain('with a [MyClass](./Group2/MyClass.md)'));
176
+ assertEither(result, (data) =>
177
+ expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('with a [MyClass](/group2/MyClass.md)'),
178
+ );
162
179
  });
163
180
  });