@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
- import { generateDocs } from '../../core/generate-docs';
2
1
  import { assertEither, extendExpect } from './expect-extensions';
2
+ import { apexBundleFromRawString, generateDocs } from './test-helpers';
3
3
 
4
4
  describe('Generates enum documentation', () => {
5
5
  beforeAll(() => {
@@ -7,7 +7,7 @@ describe('Generates enum documentation', () => {
7
7
  });
8
8
 
9
9
  describe('documentation output', () => {
10
- it('always returns markdown as the format', () => {
10
+ it('returns the name of the enum', async () => {
11
11
  const input = `
12
12
  public enum MyEnum {
13
13
  VALUE1,
@@ -15,24 +15,12 @@ describe('Generates enum documentation', () => {
15
15
  }
16
16
  `;
17
17
 
18
- const result = generateDocs([input]);
19
- assertEither(result, (data) => expect(data.format).toBe('markdown'));
20
- });
21
-
22
- it('returns the name of the enum', () => {
23
- const input = `
24
- public enum MyEnum {
25
- VALUE1,
26
- VALUE2
27
- }
28
- `;
29
-
30
- const result = generateDocs([input]);
18
+ const result = await generateDocs([apexBundleFromRawString(input)])();
31
19
  expect(result).documentationBundleHasLength(1);
32
- assertEither(result, (data) => expect(data.docs[0].typeName).toBe('MyEnum'));
20
+ assertEither(result, (data) => expect(data.docs[0].filePath).toContain('MyEnum'));
33
21
  });
34
22
 
35
- it('returns the type as enum', () => {
23
+ it('returns the type as enum', async () => {
36
24
  const input = `
37
25
  public enum MyEnum {
38
26
  VALUE1,
@@ -40,12 +28,12 @@ describe('Generates enum documentation', () => {
40
28
  }
41
29
  `;
42
30
 
43
- const result = generateDocs([input]);
31
+ const result = await generateDocs([apexBundleFromRawString(input)])();
44
32
  expect(result).documentationBundleHasLength(1);
45
- assertEither(result, (data) => expect(data.docs[0].type).toBe('enum'));
33
+ assertEither(result, (data) => expect(data.docs[0].source.type).toBe('enum'));
46
34
  });
47
35
 
48
- it('does not return enums out of scope', () => {
36
+ it('does not return enums out of scope', async () => {
49
37
  const input1 = `
50
38
  global enum MyEnum {
51
39
  VALUE1,
@@ -60,11 +48,13 @@ describe('Generates enum documentation', () => {
60
48
  }
61
49
  `;
62
50
 
63
- const result = generateDocs([input1, input2], { scope: ['global'] });
51
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)], {
52
+ scope: ['global'],
53
+ })();
64
54
  expect(result).documentationBundleHasLength(1);
65
55
  });
66
56
 
67
- it('does not return enums that have an @ignore in the docs', () => {
57
+ it('does not return enums that have an @ignore in the docs', async () => {
68
58
  const input = `
69
59
  /**
70
60
  * @ignore
@@ -75,13 +65,13 @@ describe('Generates enum documentation', () => {
75
65
  }
76
66
  `;
77
67
 
78
- const result = generateDocs([input]);
68
+ const result = await generateDocs([apexBundleFromRawString(input)])();
79
69
  expect(result).documentationBundleHasLength(0);
80
70
  });
81
71
  });
82
72
 
83
73
  describe('documentation content', () => {
84
- it('generates a heading with the enum name', () => {
74
+ it('generates a heading with the enum name', async () => {
85
75
  const input = `
86
76
  public enum MyEnum {
87
77
  VALUE1,
@@ -91,12 +81,12 @@ describe('Generates enum documentation', () => {
91
81
 
92
82
  const output = `# MyEnum Enum`;
93
83
 
94
- const result = generateDocs([input]);
84
+ const result = await generateDocs([apexBundleFromRawString(input)])();
95
85
  expect(result).documentationBundleHasLength(1);
96
86
  assertEither(result, (data) => expect(data).firstDocContains(output));
97
87
  });
98
88
 
99
- it('displays type level annotations', () => {
89
+ it('displays type level annotations', async () => {
100
90
  const input = `
101
91
  @NamespaceAccessible
102
92
  public enum MyEnum {
@@ -105,12 +95,12 @@ describe('Generates enum documentation', () => {
105
95
  }
106
96
  `;
107
97
 
108
- const result = generateDocs([input]);
98
+ const result = await generateDocs([apexBundleFromRawString(input)])();
109
99
  expect(result).documentationBundleHasLength(1);
110
100
  assertEither(result, (data) => expect(data).firstDocContains('NAMESPACEACCESSIBLE'));
111
101
  });
112
102
 
113
- it('displays the description', () => {
103
+ it('displays the description', async () => {
114
104
  const input = `
115
105
  /**
116
106
  * This is a description
@@ -121,12 +111,12 @@ describe('Generates enum documentation', () => {
121
111
  }
122
112
  `;
123
113
 
124
- const result = generateDocs([input]);
114
+ const result = await generateDocs([apexBundleFromRawString(input)])();
125
115
  expect(result).documentationBundleHasLength(1);
126
116
  assertEither(result, (data) => expect(data).firstDocContains('This is a description'));
127
117
  });
128
118
 
129
- it('display custom documentation tags', () => {
119
+ it('display custom documentation tags', async () => {
130
120
  const input = `
131
121
  /**
132
122
  * @custom-tag My Value
@@ -137,13 +127,13 @@ describe('Generates enum documentation', () => {
137
127
  }
138
128
  `;
139
129
 
140
- const result = generateDocs([input]);
130
+ const result = await generateDocs([apexBundleFromRawString(input)])();
141
131
  expect(result).documentationBundleHasLength(1);
142
132
  assertEither(result, (data) => expect(data).firstDocContains('Custom Tag'));
143
133
  assertEither(result, (data) => expect(data).firstDocContains('My Value'));
144
134
  });
145
135
 
146
- it('displays the group', () => {
136
+ it('displays the group', async () => {
147
137
  const input = `
148
138
  /**
149
139
  * @group MyGroup
@@ -154,13 +144,13 @@ describe('Generates enum documentation', () => {
154
144
  }
155
145
  `;
156
146
 
157
- const result = generateDocs([input]);
147
+ const result = await generateDocs([apexBundleFromRawString(input)])();
158
148
  expect(result).documentationBundleHasLength(1);
159
149
  assertEither(result, (data) => expect(data).firstDocContains('Group'));
160
150
  assertEither(result, (data) => expect(data).firstDocContains('MyGroup'));
161
151
  });
162
152
 
163
- it('displays the author', () => {
153
+ it('displays the author', async () => {
164
154
  const input = `
165
155
  /**
166
156
  * @author John Doe
@@ -171,13 +161,13 @@ describe('Generates enum documentation', () => {
171
161
  }
172
162
  `;
173
163
 
174
- const result = generateDocs([input]);
164
+ const result = await generateDocs([apexBundleFromRawString(input)])();
175
165
  expect(result).documentationBundleHasLength(1);
176
166
  assertEither(result, (data) => expect(data).firstDocContains('Author'));
177
167
  assertEither(result, (data) => expect(data).firstDocContains('John Doe'));
178
168
  });
179
169
 
180
- it('displays the date', () => {
170
+ it('displays the date', async () => {
181
171
  const input = `
182
172
  /**
183
173
  * @date 2021-01-01
@@ -188,13 +178,13 @@ describe('Generates enum documentation', () => {
188
178
  }
189
179
  `;
190
180
 
191
- const result = generateDocs([input]);
181
+ const result = await generateDocs([apexBundleFromRawString(input)])();
192
182
  expect(result).documentationBundleHasLength(1);
193
183
  assertEither(result, (data) => expect(data).firstDocContains('Date'));
194
184
  assertEither(result, (data) => expect(data).firstDocContains('2021-01-01'));
195
185
  });
196
186
 
197
- it('displays descriptions', () => {
187
+ it('displays descriptions', async () => {
198
188
  const input = `
199
189
  /**
200
190
  * @description This is a description
@@ -202,12 +192,12 @@ describe('Generates enum documentation', () => {
202
192
  public enum MyEnum {}
203
193
  `;
204
194
 
205
- const result = generateDocs([input]);
195
+ const result = await generateDocs([apexBundleFromRawString(input)])();
206
196
  expect(result).documentationBundleHasLength(1);
207
197
  assertEither(result, (data) => expect(data).firstDocContains('This is a description'));
208
198
  });
209
199
 
210
- it('displays descriptions with links', () => {
200
+ it('displays descriptions with links', async () => {
211
201
  const input1 = `
212
202
  /**
213
203
  * @description This is a description with a {@link EnumRef} reference
@@ -217,15 +207,15 @@ describe('Generates enum documentation', () => {
217
207
 
218
208
  const input2 = 'public enum EnumRef {}';
219
209
 
220
- const result = generateDocs([input1, input2]);
210
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
221
211
  expect(result).documentationBundleHasLength(2);
222
212
  assertEither(result, (data) => expect(data).firstDocContains('Description'));
223
213
  assertEither(result, (data) =>
224
- expect(data).firstDocContains('This is a description with a [EnumRef](./EnumRef.md) reference'),
214
+ expect(data).firstDocContains('This is a description with a [EnumRef](/miscellaneous/EnumRef.md) reference'),
225
215
  );
226
216
  });
227
217
 
228
- it('displays descriptions with emails', () => {
218
+ it('displays descriptions with emails', async () => {
229
219
  const input = `
230
220
  /**
231
221
  * @description This is a description with an {@email test@testerson.com} email
@@ -233,7 +223,7 @@ describe('Generates enum documentation', () => {
233
223
  public enum MyEnum {}
234
224
  `;
235
225
 
236
- const result = generateDocs([input]);
226
+ const result = await generateDocs([apexBundleFromRawString(input)])();
237
227
  expect(result).documentationBundleHasLength(1);
238
228
  assertEither(result, (data) =>
239
229
  expect(data).firstDocContains(
@@ -242,7 +232,7 @@ describe('Generates enum documentation', () => {
242
232
  );
243
233
  });
244
234
 
245
- it('displays sees with accurately resolved links', () => {
235
+ it('displays sees with accurately resolved links', async () => {
246
236
  const input1 = `
247
237
  /**
248
238
  * @see EnumRef
@@ -252,13 +242,13 @@ describe('Generates enum documentation', () => {
252
242
 
253
243
  const input2 = 'public enum EnumRef {}';
254
244
 
255
- const result = generateDocs([input1, input2]);
245
+ const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
256
246
  expect(result).documentationBundleHasLength(2);
257
247
  assertEither(result, (data) => expect(data).firstDocContains('See'));
258
- assertEither(result, (data) => expect(data).firstDocContains('[EnumRef](./EnumRef.md)'));
248
+ assertEither(result, (data) => expect(data).firstDocContains('[EnumRef](/miscellaneous/EnumRef.md)'));
259
249
  });
260
250
 
261
- it('displays sees without links when the reference is not found', () => {
251
+ it('displays sees without links when the reference is not found', async () => {
262
252
  const input = `
263
253
  /**
264
254
  * @see EnumRef
@@ -266,42 +256,44 @@ describe('Generates enum documentation', () => {
266
256
  public enum MyEnum {}
267
257
  `;
268
258
 
269
- const result = generateDocs([input]);
259
+ const result = await generateDocs([apexBundleFromRawString(input)])();
270
260
  expect(result).documentationBundleHasLength(1);
271
261
  assertEither(result, (data) => expect(data).firstDocContains('See'));
272
262
  assertEither(result, (data) => expect(data).firstDocContains('EnumRef'));
273
263
  });
274
264
 
275
- it('displays the namespace if present in the config', () => {
265
+ it('displays the namespace if present in the config', async () => {
276
266
  const input = `
277
267
  public enum MyEnum {}
278
268
  `;
279
269
 
280
- const result = generateDocs([input], { namespace: 'MyNamespace' });
270
+ const result = await generateDocs([apexBundleFromRawString(input)], { namespace: 'MyNamespace' })();
281
271
  expect(result).documentationBundleHasLength(1);
282
272
  assertEither(result, (data) => expect(data).firstDocContains('## Namespace'));
283
273
  assertEither(result, (data) => expect(data).firstDocContains('MyNamespace'));
284
274
  });
285
275
 
286
- it('does not display the namespace if not present in the config', () => {
276
+ it('does not display the namespace if not present in the config', async () => {
287
277
  const input = `
288
278
  public enum MyEnum {}
289
279
  `;
290
280
 
291
- const result = generateDocs([input]);
281
+ const result = await generateDocs([apexBundleFromRawString(input)])();
292
282
  expect(result).documentationBundleHasLength(1);
293
283
  assertEither(result, (data) => expect(data).firstDocContainsNot('## Namespace'));
294
284
  });
295
285
 
296
- it('displays a mermaid diagram', () => {
286
+ it('displays a mermaid diagram', async () => {
297
287
  const input = `
298
288
  /**
299
289
  * @mermaid
290
+ * \`\`\`mermaid
300
291
  * graph TD
301
292
  * A[Square Rect] -- Link text --> B((Circle))
302
293
  * A --> C(Round Rect)
303
294
  * B --> D{Rhombus}
304
295
  * C --> D
296
+ * \`\`\`
305
297
  */
306
298
  public enum MyEnum {
307
299
  VALUE1,
@@ -309,21 +301,23 @@ describe('Generates enum documentation', () => {
309
301
  }
310
302
  `;
311
303
 
312
- const result = generateDocs([input]);
304
+ const result = await generateDocs([apexBundleFromRawString(input)])();
313
305
  expect(result).documentationBundleHasLength(1);
314
306
  assertEither(result, (data) => expect(data).firstDocContains('```mermaid'));
315
307
  assertEither(result, (data) => expect(data).firstDocContains('graph TD'));
316
308
  });
317
309
 
318
- it('displays an example code block', () => {
310
+ it('displays an example code block', async () => {
319
311
  const input = `
320
312
  /**
321
313
  * @example
314
+ * \`\`\`apex
322
315
  * public class MyClass {
323
316
  * public void myMethod() {
324
317
  * System.debug('Hello, World!');
325
318
  * }
326
319
  * }
320
+ * \`\`\`
327
321
  */
328
322
  public enum MyEnum {
329
323
  VALUE1,
@@ -331,13 +325,13 @@ describe('Generates enum documentation', () => {
331
325
  }
332
326
  `;
333
327
 
334
- const result = generateDocs([input]);
328
+ const result = await generateDocs([apexBundleFromRawString(input)])();
335
329
  expect(result).documentationBundleHasLength(1);
336
330
  assertEither(result, (data) => expect(data).firstDocContains('```apex'));
337
331
  assertEither(result, (data) => expect(data).firstDocContains('public class MyClass'));
338
332
  });
339
333
 
340
- it('displays values', () => {
334
+ it('displays values', async () => {
341
335
  const input = `
342
336
  public enum MyEnum {
343
337
  VALUE1,
@@ -345,11 +339,47 @@ describe('Generates enum documentation', () => {
345
339
  }
346
340
  `;
347
341
 
348
- const result = generateDocs([input]);
342
+ const result = await generateDocs([apexBundleFromRawString(input)])();
349
343
  expect(result).documentationBundleHasLength(1);
350
344
  assertEither(result, (data) => expect(data).firstDocContains('## Values'));
351
345
  assertEither(result, (data) => expect(data).firstDocContains('VALUE1'));
352
346
  assertEither(result, (data) => expect(data).firstDocContains('VALUE2'));
353
347
  });
348
+
349
+ it('displays values sorted when sortMembersAlphabetically is true', async () => {
350
+ const input = `
351
+ public enum MyEnum {
352
+ VALUE2,
353
+ VALUE1
354
+ }
355
+ `;
356
+
357
+ const result = await generateDocs([apexBundleFromRawString(input)], { sortMembersAlphabetically: true })();
358
+ expect(result).documentationBundleHasLength(1);
359
+ assertEither(result, (data) => expect(data).firstDocContains('## Values'));
360
+ assertEither(result, (data) => {
361
+ const value1Index = data.docs[0].content.indexOf('VALUE1');
362
+ const value2Index = data.docs[0].content.indexOf('VALUE2');
363
+ expect(value1Index).toBeLessThan(value2Index);
364
+ });
365
+ });
366
+
367
+ it('does not sort values when sortMembersAlphabetically is false', async () => {
368
+ const input = `
369
+ public enum MyEnum {
370
+ VALUE2,
371
+ VALUE1
372
+ }
373
+ `;
374
+
375
+ const result = await generateDocs([apexBundleFromRawString(input)], { sortMembersAlphabetically: false })();
376
+ expect(result).documentationBundleHasLength(1);
377
+ assertEither(result, (data) => expect(data).firstDocContains('## Values'));
378
+ assertEither(result, (data) => {
379
+ const value1Index = data.docs[0].content.indexOf('VALUE1');
380
+ const value2Index = data.docs[0].content.indexOf('VALUE2');
381
+ expect(value1Index).toBeGreaterThan(value2Index);
382
+ });
383
+ });
354
384
  });
355
385
  });