@cparra/apexdocs 1.13.4 → 2.0.0-alpha.14

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 (251) hide show
  1. package/.eslintrc.js +12 -0
  2. package/.prettierrc.js +7 -0
  3. package/README.md +344 -277
  4. package/ROADMAP.md +18 -0
  5. package/docs/Gemfile.lock +1 -1
  6. package/docs/Sample-Classes/SampleClass.md +138 -30
  7. package/docs/Sample-Interfaces/SampleInterface.md +21 -4
  8. package/docs/index.md +1 -9
  9. package/examples/apex/SampleClass.cls +31 -6
  10. package/examples/apex/SampleInterface.cls +3 -2
  11. package/lib/application/Apexdocs.d.ts +11 -0
  12. package/lib/application/Apexdocs.js +41 -0
  13. package/lib/application/Apexdocs.js.map +1 -0
  14. package/lib/cli/generate.js +17 -21
  15. package/lib/cli/generate.js.map +1 -0
  16. package/lib/index.d.ts +1 -1
  17. package/lib/index.js +2 -1
  18. package/lib/index.js.map +1 -0
  19. package/lib/model/file.d.ts +10 -0
  20. package/lib/model/file.js +23 -0
  21. package/lib/model/file.js.map +1 -0
  22. package/lib/model/manifest.d.ts +22 -0
  23. package/lib/model/manifest.js +41 -0
  24. package/lib/model/manifest.js.map +1 -0
  25. package/lib/model/markdown-file.d.ts +10 -0
  26. package/lib/model/markdown-file.js +52 -0
  27. package/lib/model/markdown-file.js.map +1 -0
  28. package/lib/model/markdown-generation-util/field-declaration-util.d.ts +3 -0
  29. package/lib/model/markdown-generation-util/field-declaration-util.js +33 -0
  30. package/lib/model/markdown-generation-util/field-declaration-util.js.map +1 -0
  31. package/lib/model/markdown-generation-util/index.d.ts +3 -0
  32. package/lib/model/markdown-generation-util/index.js +9 -0
  33. package/lib/model/markdown-generation-util/index.js.map +1 -0
  34. package/lib/model/markdown-generation-util/method-declaration-util.d.ts +3 -0
  35. package/lib/model/markdown-generation-util/method-declaration-util.js +97 -0
  36. package/lib/model/markdown-generation-util/method-declaration-util.js.map +1 -0
  37. package/lib/model/markdown-generation-util/type-declaration-util.d.ts +3 -0
  38. package/lib/model/markdown-generation-util/type-declaration-util.js +25 -0
  39. package/lib/model/markdown-generation-util/type-declaration-util.js.map +1 -0
  40. package/lib/model/markdown-home-file.d.ts +11 -0
  41. package/lib/model/markdown-home-file.js +50 -0
  42. package/lib/model/markdown-home-file.js.map +1 -0
  43. package/lib/model/markdown-type-file.d.ts +17 -0
  44. package/lib/model/markdown-type-file.js +62 -0
  45. package/lib/model/markdown-type-file.js.map +1 -0
  46. package/lib/service/apex-file-reader.d.ts +13 -0
  47. package/lib/service/apex-file-reader.js +39 -0
  48. package/lib/service/apex-file-reader.js.map +1 -0
  49. package/lib/service/file-system.d.ts +12 -0
  50. package/lib/service/file-system.js +21 -0
  51. package/lib/service/file-system.js.map +1 -0
  52. package/lib/service/file-writer.d.ts +4 -0
  53. package/lib/service/file-writer.js +25 -0
  54. package/lib/service/file-writer.js.map +1 -0
  55. package/lib/service/manifest-factory.d.ts +9 -0
  56. package/lib/service/manifest-factory.js +13 -0
  57. package/lib/service/manifest-factory.js.map +1 -0
  58. package/lib/service/parser.d.ts +9 -0
  59. package/lib/service/parser.js +17 -0
  60. package/lib/service/parser.js.map +1 -0
  61. package/lib/service/walkers/class-walker.d.ts +4 -0
  62. package/lib/service/walkers/class-walker.js +32 -0
  63. package/lib/service/walkers/class-walker.js.map +1 -0
  64. package/lib/service/walkers/enum-walker.d.ts +4 -0
  65. package/lib/service/walkers/enum-walker.js +10 -0
  66. package/lib/service/walkers/enum-walker.js.map +1 -0
  67. package/lib/service/walkers/interface-walker.d.ts +4 -0
  68. package/lib/service/walkers/interface-walker.js +14 -0
  69. package/lib/service/walkers/interface-walker.js.map +1 -0
  70. package/lib/service/walkers/walker-factory.d.ts +5 -0
  71. package/lib/service/walkers/walker-factory.js +19 -0
  72. package/lib/service/walkers/walker-factory.js.map +1 -0
  73. package/lib/service/walkers/walker.d.ts +16 -0
  74. package/lib/service/walkers/walker.js +9 -0
  75. package/lib/service/walkers/walker.js.map +1 -0
  76. package/lib/settings.d.ts +21 -0
  77. package/lib/settings.js +42 -0
  78. package/lib/settings.js.map +1 -0
  79. package/lib/transpiler/file-container.d.ts +6 -0
  80. package/lib/transpiler/file-container.js +15 -0
  81. package/lib/transpiler/file-container.js.map +1 -0
  82. package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +6 -0
  83. package/lib/transpiler/markdown/class-file-generatorHelper.js +17 -0
  84. package/lib/transpiler/markdown/class-file-generatorHelper.js.map +1 -0
  85. package/lib/transpiler/markdown/docsify/docsify-docs-processor.d.ts +4 -0
  86. package/lib/transpiler/markdown/docsify/docsify-docs-processor.js +10 -0
  87. package/lib/transpiler/markdown/docsify/docsify-docs-processor.js.map +1 -0
  88. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +8 -0
  89. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js +24 -0
  90. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +1 -0
  91. package/lib/transpiler/markdown/markdown-transpiler-base.d.ts +11 -0
  92. package/lib/transpiler/markdown/markdown-transpiler-base.js +23 -0
  93. package/lib/transpiler/markdown/markdown-transpiler-base.js.map +1 -0
  94. package/lib/transpiler/processor-type-transpiler.d.ts +8 -0
  95. package/lib/transpiler/processor-type-transpiler.js +6 -0
  96. package/lib/transpiler/processor-type-transpiler.js.map +1 -0
  97. package/lib/transpiler/transpiler.d.ts +5 -0
  98. package/lib/transpiler/transpiler.js +21 -0
  99. package/lib/transpiler/transpiler.js.map +1 -0
  100. package/lib/util/logger.d.ts +18 -0
  101. package/lib/util/logger.js +32 -0
  102. package/lib/util/logger.js.map +1 -0
  103. package/package.json +22 -11
  104. package/src/application/Apexdocs.ts +41 -0
  105. package/src/cli/generate.ts +52 -64
  106. package/src/index.ts +1 -1
  107. package/src/model/__tests__/manifest.spec.ts +15 -0
  108. package/src/model/file.ts +23 -0
  109. package/src/model/manifest.ts +60 -0
  110. package/src/model/markdown-file.ts +56 -0
  111. package/src/model/markdown-generation-util/field-declaration-util.ts +42 -0
  112. package/src/model/markdown-generation-util/index.ts +3 -0
  113. package/src/model/markdown-generation-util/method-declaration-util.ts +128 -0
  114. package/src/model/markdown-generation-util/type-declaration-util.ts +29 -0
  115. package/src/model/markdown-home-file.ts +48 -0
  116. package/src/model/markdown-type-file.ts +75 -0
  117. package/src/service/__tests__/apex-file-reader.spec.ts +79 -0
  118. package/src/service/__tests__/manifest-factory.spec.ts +16 -0
  119. package/src/service/apex-file-reader.ts +45 -0
  120. package/src/service/file-system.ts +28 -0
  121. package/src/service/file-writer.ts +25 -0
  122. package/src/service/manifest-factory.ts +12 -0
  123. package/src/service/parser.ts +18 -0
  124. package/src/service/walkers/class-walker.ts +31 -0
  125. package/src/service/walkers/enum-walker.ts +8 -0
  126. package/src/service/walkers/interface-walker.ts +12 -0
  127. package/src/service/walkers/walker-factory.ts +18 -0
  128. package/src/service/walkers/walker.ts +35 -0
  129. package/src/settings.ts +57 -0
  130. package/src/transpiler/file-container.ts +13 -0
  131. package/src/transpiler/markdown/class-file-generatorHelper.ts +16 -0
  132. package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +7 -0
  133. package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +22 -0
  134. package/src/transpiler/markdown/markdown-transpiler-base.ts +28 -0
  135. package/src/transpiler/processor-type-transpiler.ts +12 -0
  136. package/src/transpiler/transpiler.ts +18 -0
  137. package/src/util/logger.ts +31 -0
  138. package/tsconfig.json +9 -3
  139. package/.prettierrc +0 -5
  140. package/examples/config/config.json +0 -5
  141. package/lib/AsJsDocsProcessor.d.ts +0 -9
  142. package/lib/AsJsDocsProcessor.js +0 -61
  143. package/lib/ClassFileGeneratorHelper.d.ts +0 -5
  144. package/lib/ClassFileGeneratorHelper.js +0 -25
  145. package/lib/ClassFileGeneratorHelper.test.d.ts +0 -1
  146. package/lib/ClassFileGeneratorHelper.test.js +0 -32
  147. package/lib/Configuration.d.ts +0 -34
  148. package/lib/Configuration.js +0 -37
  149. package/lib/DocsProcessor.d.ts +0 -6
  150. package/lib/DocsProcessor.js +0 -9
  151. package/lib/DocsifyDocsProcessor.d.ts +0 -4
  152. package/lib/DocsifyDocsProcessor.js +0 -9
  153. package/lib/DocsifyDocsProcessor.test.d.ts +0 -1
  154. package/lib/DocsifyDocsProcessor.test.js +0 -7
  155. package/lib/FileManager.d.ts +0 -6
  156. package/lib/FileManager.js +0 -28
  157. package/lib/JekyllDocsProcessor.d.ts +0 -8
  158. package/lib/JekyllDocsProcessor.js +0 -20
  159. package/lib/JekyllDocsProcessor.test.d.ts +0 -1
  160. package/lib/JekyllDocsProcessor.test.js +0 -21
  161. package/lib/JsHelper.d.ts +0 -12
  162. package/lib/JsHelper.js +0 -72
  163. package/lib/MarkdownDocsProcessor.d.ts +0 -22
  164. package/lib/MarkdownDocsProcessor.js +0 -358
  165. package/lib/MarkdownHelper.d.ts +0 -13
  166. package/lib/MarkdownHelper.js +0 -78
  167. package/lib/Settings.d.ts +0 -22
  168. package/lib/Settings.js +0 -51
  169. package/lib/Settings.test.d.ts +0 -1
  170. package/lib/Settings.test.js +0 -38
  171. package/lib/command/Generate.d.ts +0 -2
  172. package/lib/command/Generate.js +0 -54
  173. package/lib/command/__test__/Generte.test.d.ts +0 -1
  174. package/lib/command/__test__/Generte.test.js +0 -30
  175. package/lib/model/ApexModel.d.ts +0 -30
  176. package/lib/model/ApexModel.js +0 -85
  177. package/lib/model/ClassModel.d.ts +0 -39
  178. package/lib/model/ClassModel.js +0 -125
  179. package/lib/model/EnumModel.d.ts +0 -6
  180. package/lib/model/EnumModel.js +0 -28
  181. package/lib/model/MethodModel.d.ts +0 -18
  182. package/lib/model/MethodModel.js +0 -74
  183. package/lib/model/PropertyModel.d.ts +0 -6
  184. package/lib/model/PropertyModel.js +0 -40
  185. package/lib/model/__test__/ClassModel.test.d.ts +0 -1
  186. package/lib/model/__test__/ClassModel.test.js +0 -79
  187. package/lib/model/__test__/MethodModel.test.d.ts +0 -1
  188. package/lib/model/__test__/MethodModel.test.js +0 -55
  189. package/lib/model/__test__/PropertyModel.test.d.ts +0 -1
  190. package/lib/model/__test__/PropertyModel.test.js +0 -25
  191. package/lib/parser/ClassParser.d.ts +0 -5
  192. package/lib/parser/ClassParser.js +0 -79
  193. package/lib/parser/EnumParser.d.ts +0 -5
  194. package/lib/parser/EnumParser.js +0 -45
  195. package/lib/parser/FileParser.d.ts +0 -8
  196. package/lib/parser/FileParser.js +0 -210
  197. package/lib/parser/MethodParser.d.ts +0 -5
  198. package/lib/parser/MethodParser.js +0 -109
  199. package/lib/parser/PropertyParser.d.ts +0 -5
  200. package/lib/parser/PropertyParser.js +0 -46
  201. package/lib/parser/__test__/ClassParser.test.d.ts +0 -1
  202. package/lib/parser/__test__/ClassParser.test.js +0 -52
  203. package/lib/parser/__test__/FileParser.test.d.ts +0 -1
  204. package/lib/parser/__test__/FileParser.test.js +0 -12
  205. package/lib/parser/__test__/MethodParser.test.d.ts +0 -1
  206. package/lib/parser/__test__/MethodParser.test.js +0 -69
  207. package/lib/parser/__test__/PropertyParser.test.d.ts +0 -1
  208. package/lib/parser/__test__/PropertyParser.test.js +0 -14
  209. package/lib/parser/__test__/testFileContents.d.ts +0 -1
  210. package/lib/parser/__test__/testFileContents.js +0 -82
  211. package/lib/utils.d.ts +0 -12
  212. package/lib/utils.js +0 -49
  213. package/lib/utils.test.d.ts +0 -1
  214. package/lib/utils.test.js +0 -35
  215. package/src/AsJsDocsProcessor.ts +0 -67
  216. package/src/ClassFileGeneratorHelper.test.ts +0 -44
  217. package/src/ClassFileGeneratorHelper.ts +0 -26
  218. package/src/Configuration.ts +0 -69
  219. package/src/DocsProcessor.ts +0 -9
  220. package/src/DocsifyDocsProcessor.test.ts +0 -6
  221. package/src/DocsifyDocsProcessor.ts +0 -7
  222. package/src/FileManager.ts +0 -32
  223. package/src/JekyllDocsProcessor.test.ts +0 -28
  224. package/src/JekyllDocsProcessor.ts +0 -22
  225. package/src/JsHelper.ts +0 -78
  226. package/src/MarkdownDocsProcessor.ts +0 -420
  227. package/src/MarkdownHelper.ts +0 -91
  228. package/src/Settings.test.ts +0 -54
  229. package/src/Settings.ts +0 -65
  230. package/src/command/Generate.ts +0 -69
  231. package/src/command/__test__/Generte.test.ts +0 -39
  232. package/src/model/ApexModel.ts +0 -102
  233. package/src/model/ClassModel.ts +0 -140
  234. package/src/model/EnumModel.ts +0 -27
  235. package/src/model/MethodModel.ts +0 -80
  236. package/src/model/PropertyModel.ts +0 -37
  237. package/src/model/__test__/ClassModel.test.ts +0 -100
  238. package/src/model/__test__/MethodModel.test.ts +0 -70
  239. package/src/model/__test__/PropertyModel.test.ts +0 -34
  240. package/src/parser/ClassParser.ts +0 -83
  241. package/src/parser/EnumParser.ts +0 -47
  242. package/src/parser/FileParser.ts +0 -250
  243. package/src/parser/MethodParser.ts +0 -119
  244. package/src/parser/PropertyParser.ts +0 -46
  245. package/src/parser/__test__/ClassParser.test.ts +0 -70
  246. package/src/parser/__test__/FileParser.test.ts +0 -14
  247. package/src/parser/__test__/MethodParser.test.ts +0 -90
  248. package/src/parser/__test__/PropertyParser.test.ts +0 -18
  249. package/src/parser/__test__/testFileContents.ts +0 -81
  250. package/src/utils.test.ts +0 -40
  251. package/src/utils.ts +0 -52
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const walker_1 = require("./walker");
4
+ class ClassWalker extends walker_1.Walker {
5
+ walk(listener) {
6
+ listener.onTypeDeclaration(this.type);
7
+ const classMirror = this.type;
8
+ if (classMirror.constructors.length) {
9
+ listener.onConstructorDeclaration(this.type.name, classMirror.constructors);
10
+ }
11
+ if (classMirror.fields.length) {
12
+ listener.onFieldsDeclaration(classMirror.fields);
13
+ }
14
+ if (classMirror.properties.length) {
15
+ listener.onPropertiesDeclaration(classMirror.properties);
16
+ }
17
+ if (classMirror.methods.length) {
18
+ listener.onMethodsDeclaration(classMirror.methods);
19
+ }
20
+ if (classMirror.enums.length) {
21
+ listener.onInnerEnumsDeclaration(classMirror.enums);
22
+ }
23
+ if (classMirror.classes.length) {
24
+ listener.onInnerClassesDeclaration(classMirror.classes);
25
+ }
26
+ if (classMirror.interfaces.length) {
27
+ listener.onInnerInterfacesDeclaration(classMirror.interfaces);
28
+ }
29
+ }
30
+ }
31
+ exports.ClassWalker = ClassWalker;
32
+ //# sourceMappingURL=class-walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-walker.js","sourceRoot":"","sources":["../../../src/service/walkers/class-walker.ts"],"names":[],"mappings":";;AAAA,qCAAkD;AAGlD,MAAa,WAAY,SAAQ,eAAM;IACrC,IAAI,CAAC,QAAwB;QAC3B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAmB,CAAC;QAE7C,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE;YACnC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;SAC7E;QACD,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE;YAC7B,QAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SAClD;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE;YACjC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC1D;QACD,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9B,QAAQ,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACpD;QACD,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;YAC5B,QAAQ,CAAC,uBAAuB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACrD;QACD,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9B,QAAQ,CAAC,yBAAyB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACzD;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE;YACjC,QAAQ,CAAC,4BAA4B,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC/D;IACH,CAAC;CACF;AA3BD,kCA2BC"}
@@ -0,0 +1,4 @@
1
+ import { Walker, WalkerListener } from './walker';
2
+ export declare class EnumWalker extends Walker {
3
+ walk(listener: WalkerListener): void;
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const walker_1 = require("./walker");
4
+ class EnumWalker extends walker_1.Walker {
5
+ walk(listener) {
6
+ listener.onTypeDeclaration(this.type);
7
+ }
8
+ }
9
+ exports.EnumWalker = EnumWalker;
10
+ //# sourceMappingURL=enum-walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-walker.js","sourceRoot":"","sources":["../../../src/service/walkers/enum-walker.ts"],"names":[],"mappings":";;AAAA,qCAAkD;AAGlD,MAAa,UAAW,SAAQ,eAAM;IACpC,IAAI,CAAC,QAAwB;QAC3B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACF;AAJD,gCAIC"}
@@ -0,0 +1,4 @@
1
+ import { Walker, WalkerListener } from './walker';
2
+ export declare class InterfaceWalker extends Walker {
3
+ walk(listener: WalkerListener): void;
4
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const walker_1 = require("./walker");
4
+ class InterfaceWalker extends walker_1.Walker {
5
+ walk(listener) {
6
+ listener.onTypeDeclaration(this.type);
7
+ const interfaceMirror = this.type;
8
+ if (interfaceMirror.methods.length) {
9
+ listener.onMethodsDeclaration(interfaceMirror.methods);
10
+ }
11
+ }
12
+ }
13
+ exports.InterfaceWalker = InterfaceWalker;
14
+ //# sourceMappingURL=interface-walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface-walker.js","sourceRoot":"","sources":["../../../src/service/walkers/interface-walker.ts"],"names":[],"mappings":";;AAAA,qCAAkD;AAGlD,MAAa,eAAgB,SAAQ,eAAM;IACzC,IAAI,CAAC,QAAwB;QAC3B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAuB,CAAC;QACrD,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;SACxD;IACH,CAAC;CACF;AARD,0CAQC"}
@@ -0,0 +1,5 @@
1
+ import { Type } from '@cparra/apex-reflection';
2
+ import { Walker } from './walker';
3
+ export declare class WalkerFactory {
4
+ static get(type: Type): Walker;
5
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const class_walker_1 = require("./class-walker");
4
+ const enum_walker_1 = require("./enum-walker");
5
+ const interface_walker_1 = require("./interface-walker");
6
+ class WalkerFactory {
7
+ static get(type) {
8
+ switch (type.type_name) {
9
+ case 'class':
10
+ return new class_walker_1.ClassWalker(type);
11
+ case 'enum':
12
+ return new enum_walker_1.EnumWalker(type);
13
+ case 'interface':
14
+ return new interface_walker_1.InterfaceWalker(type);
15
+ }
16
+ }
17
+ }
18
+ exports.WalkerFactory = WalkerFactory;
19
+ //# sourceMappingURL=walker-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker-factory.js","sourceRoot":"","sources":["../../../src/service/walkers/walker-factory.ts"],"names":[],"mappings":";;AAEA,iDAA6C;AAC7C,+CAA2C;AAC3C,yDAAqD;AAErD,MAAa,aAAa;IACxB,MAAM,CAAC,GAAG,CAAC,IAAU;QACnB,QAAQ,IAAI,CAAC,SAAS,EAAE;YACtB,KAAK,OAAO;gBACV,OAAO,IAAI,0BAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,MAAM;gBACT,OAAO,IAAI,wBAAU,CAAC,IAAI,CAAC,CAAC;YAC9B,KAAK,WAAW;gBACd,OAAO,IAAI,kCAAe,CAAC,IAAI,CAAC,CAAC;SACpC;IACH,CAAC;CACF;AAXD,sCAWC"}
@@ -0,0 +1,16 @@
1
+ import { ClassMirror, ConstructorMirror, EnumMirror, FieldMirror, InterfaceMirror, MethodMirror, PropertyMirror, Type } from '@cparra/apex-reflection';
2
+ export interface WalkerListener {
3
+ onTypeDeclaration(typeMirror: Type): void;
4
+ onConstructorDeclaration(className: string, constructors: ConstructorMirror[]): void;
5
+ onFieldsDeclaration(fields: FieldMirror[]): void;
6
+ onPropertiesDeclaration(properties: PropertyMirror[]): void;
7
+ onMethodsDeclaration(methods: MethodMirror[]): void;
8
+ onInnerEnumsDeclaration(enums: EnumMirror[]): void;
9
+ onInnerClassesDeclaration(classes: ClassMirror[]): void;
10
+ onInnerInterfacesDeclaration(interfaces: InterfaceMirror[]): void;
11
+ }
12
+ export declare abstract class Walker {
13
+ type: Type;
14
+ constructor(type: Type);
15
+ abstract walk(listener: WalkerListener): void;
16
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Walker {
4
+ constructor(type) {
5
+ this.type = type;
6
+ }
7
+ }
8
+ exports.Walker = Walker;
9
+ //# sourceMappingURL=walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../../src/service/walkers/walker.ts"],"names":[],"mappings":";;AA8BA,MAAsB,MAAM;IAC1B,YAAmB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;CAGlC;AAJD,wBAIC"}
@@ -0,0 +1,21 @@
1
+ import ProcessorTypeTranspiler from './transpiler/processor-type-transpiler';
2
+ export declare type GeneratorChoices = 'jekyll' | 'docsify';
3
+ export interface SettingsConfig {
4
+ sourceDirectory: string;
5
+ recursive: boolean;
6
+ scope: string[];
7
+ outputDir: string;
8
+ targetGenerator: GeneratorChoices;
9
+ }
10
+ export declare class Settings {
11
+ config: SettingsConfig;
12
+ private static instance;
13
+ private constructor();
14
+ static build(config: SettingsConfig): void;
15
+ static getInstance(): Settings;
16
+ get sourceDirectory(): string;
17
+ get recursive(): boolean;
18
+ get scope(): string[];
19
+ get outputDir(): string;
20
+ get typeTranspiler(): ProcessorTypeTranspiler;
21
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jekyll_docsProcessor_1 = require("./transpiler/markdown/jekyll/jekyll-docsProcessor");
4
+ const docsify_docs_processor_1 = require("./transpiler/markdown/docsify/docsify-docs-processor");
5
+ class Settings {
6
+ constructor(config) {
7
+ this.config = config;
8
+ }
9
+ static build(config) {
10
+ Settings.instance = new Settings(config);
11
+ }
12
+ static getInstance() {
13
+ if (!Settings.instance) {
14
+ throw new Error('Settings has not been initialized');
15
+ }
16
+ return Settings.instance;
17
+ }
18
+ get sourceDirectory() {
19
+ return this.config.sourceDirectory;
20
+ }
21
+ get recursive() {
22
+ return this.config.recursive;
23
+ }
24
+ get scope() {
25
+ return this.config.scope;
26
+ }
27
+ get outputDir() {
28
+ return this.config.outputDir;
29
+ }
30
+ get typeTranspiler() {
31
+ switch (this.config.targetGenerator) {
32
+ case 'jekyll':
33
+ return new jekyll_docsProcessor_1.JekyllDocsProcessor();
34
+ case 'docsify':
35
+ return new docsify_docs_processor_1.default();
36
+ default:
37
+ throw Error('Invalid target generator');
38
+ }
39
+ }
40
+ }
41
+ exports.Settings = Settings;
42
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;AACA,4FAAwF;AACxF,iGAAwF;AAYxF,MAAa,QAAQ;IAGnB,YAA2B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAE9C,MAAM,CAAC,KAAK,CAAC,MAAsB;QACxC,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,cAAc;QAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;YACnC,KAAK,QAAQ;gBACX,OAAO,IAAI,0CAAmB,EAAE,CAAC;YACnC,KAAK,SAAS;gBACZ,OAAO,IAAI,gCAAoB,EAAE,CAAC;YACpC;gBACE,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC3C;IACH,CAAC;CACF;AA1CD,4BA0CC"}
@@ -0,0 +1,6 @@
1
+ import { File } from '../model/file';
2
+ export declare class FileContainer {
3
+ _files: File[];
4
+ files(): File[];
5
+ pushFile(file: File): void;
6
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class FileContainer {
4
+ constructor() {
5
+ this._files = [];
6
+ }
7
+ files() {
8
+ return this._files;
9
+ }
10
+ pushFile(file) {
11
+ this._files.push(file);
12
+ }
13
+ }
14
+ exports.FileContainer = FileContainer;
15
+ //# sourceMappingURL=file-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-container.js","sourceRoot":"","sources":["../../src/transpiler/file-container.ts"],"names":[],"mappings":";;AAEA,MAAa,aAAa;IAA1B;QACE,WAAM,GAAW,EAAE,CAAC;IAStB,CAAC;IAPC,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,IAAU;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAVD,sCAUC"}
@@ -0,0 +1,6 @@
1
+ import { Type } from '@cparra/apex-reflection';
2
+ export default class ClassFileGeneratorHelper {
3
+ static getSanitizedGroup(classModel: Type): string;
4
+ static getFileLink(classModel: Type): string;
5
+ private static getClassGroup;
6
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class ClassFileGeneratorHelper {
4
+ static getSanitizedGroup(classModel) {
5
+ return this.getClassGroup(classModel).replace(/ /g, '-').replace('.', '');
6
+ }
7
+ static getFileLink(classModel) {
8
+ return `[${classModel.name}](/${this.getSanitizedGroup(classModel)}/${classModel.name}.md)`;
9
+ }
10
+ static getClassGroup(classModel) {
11
+ var _a, _b;
12
+ const groupAnnotation = (_a = classModel.docComment) === null || _a === void 0 ? void 0 : _a.annotations.find((annotation) => annotation.name === 'group');
13
+ return (_b = groupAnnotation === null || groupAnnotation === void 0 ? void 0 : groupAnnotation.body) !== null && _b !== void 0 ? _b : 'Misc';
14
+ }
15
+ }
16
+ exports.default = ClassFileGeneratorHelper;
17
+ //# sourceMappingURL=class-file-generatorHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-file-generatorHelper.js","sourceRoot":"","sources":["../../../src/transpiler/markdown/class-file-generatorHelper.ts"],"names":[],"mappings":";;AAEA,MAAqB,wBAAwB;IACpC,MAAM,CAAC,iBAAiB,CAAC,UAAgB;QAC9C,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,UAAgB;QACxC,OAAO,IAAI,UAAU,CAAC,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,MAAM,CAAC;IAC9F,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,UAAgB;;QAC3C,MAAM,eAAe,SAAG,UAAU,CAAC,UAAU,0CAAE,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC7G,aAAO,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,MAAM,CAAC;IACzC,CAAC;CACF;AAbD,2CAaC"}
@@ -0,0 +1,4 @@
1
+ import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
+ export default class DocsifyDocsProcessor extends MarkdownTranspilerBase {
3
+ homeFileName(): string;
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const markdown_transpiler_base_1 = require("../markdown-transpiler-base");
4
+ class DocsifyDocsProcessor extends markdown_transpiler_base_1.MarkdownTranspilerBase {
5
+ homeFileName() {
6
+ return 'README';
7
+ }
8
+ }
9
+ exports.default = DocsifyDocsProcessor;
10
+ //# sourceMappingURL=docsify-docs-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docsify-docs-processor.js","sourceRoot":"","sources":["../../../../src/transpiler/markdown/docsify/docsify-docs-processor.ts"],"names":[],"mappings":";;AAAA,0EAAqE;AAErE,MAAqB,oBAAqB,SAAQ,iDAAsB;IACtE,YAAY;QACV,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAJD,uCAIC"}
@@ -0,0 +1,8 @@
1
+ import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
+ import { Type } from '@cparra/apex-reflection';
3
+ export declare class JekyllDocsProcessor extends MarkdownTranspilerBase {
4
+ homeFileName(): string;
5
+ onBeforeProcess: (types: Type[]) => void;
6
+ onProcess(type: Type): void;
7
+ get frontMatterHeader(): string;
8
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const markdown_transpiler_base_1 = require("../markdown-transpiler-base");
4
+ const markdown_home_file_1 = require("../../../model/markdown-home-file");
5
+ const markdown_type_file_1 = require("../../../model/markdown-type-file");
6
+ class JekyllDocsProcessor extends markdown_transpiler_base_1.MarkdownTranspilerBase {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.onBeforeProcess = (types) => {
10
+ this._fileContainer.pushFile(new markdown_home_file_1.MarkdownHomeFile(this.homeFileName(), types, this.frontMatterHeader));
11
+ };
12
+ }
13
+ homeFileName() {
14
+ return 'index';
15
+ }
16
+ onProcess(type) {
17
+ this._fileContainer.pushFile(new markdown_type_file_1.MarkdownTypeFile(type, 1, this.frontMatterHeader));
18
+ }
19
+ get frontMatterHeader() {
20
+ return '---\nlayout: default\n---';
21
+ }
22
+ }
23
+ exports.JekyllDocsProcessor = JekyllDocsProcessor;
24
+ //# sourceMappingURL=jekyll-docsProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jekyll-docsProcessor.js","sourceRoot":"","sources":["../../../../src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts"],"names":[],"mappings":";;AAAA,0EAAqE;AAErE,0EAAqE;AACrE,0EAAqE;AAErE,MAAa,mBAAoB,SAAQ,iDAAsB;IAA/D;;QAKE,oBAAe,GAAG,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,qCAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACzG,CAAC,CAAC;IASJ,CAAC;IAfC,YAAY;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;IAMD,SAAS,CAAC,IAAU;QAClB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,qCAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,2BAA2B,CAAC;IACrC,CAAC;CACF;AAhBD,kDAgBC"}
@@ -0,0 +1,11 @@
1
+ import ProcessorTypeTranspiler from '../processor-type-transpiler';
2
+ import { Type } from '@cparra/apex-reflection';
3
+ import { FileContainer } from '../file-container';
4
+ export declare abstract class MarkdownTranspilerBase extends ProcessorTypeTranspiler {
5
+ protected readonly _fileContainer: FileContainer;
6
+ constructor();
7
+ abstract homeFileName(): string;
8
+ fileBuilder(): FileContainer;
9
+ onBeforeProcess: (types: Type[]) => void;
10
+ onProcess(type: Type): void;
11
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const processor_type_transpiler_1 = require("../processor-type-transpiler");
4
+ const file_container_1 = require("../file-container");
5
+ const markdown_home_file_1 = require("../../model/markdown-home-file");
6
+ const markdown_type_file_1 = require("../../model/markdown-type-file");
7
+ class MarkdownTranspilerBase extends processor_type_transpiler_1.default {
8
+ constructor() {
9
+ super();
10
+ this.onBeforeProcess = (types) => {
11
+ this._fileContainer.pushFile(new markdown_home_file_1.MarkdownHomeFile(this.homeFileName(), types));
12
+ };
13
+ this._fileContainer = new file_container_1.FileContainer();
14
+ }
15
+ fileBuilder() {
16
+ return this._fileContainer;
17
+ }
18
+ onProcess(type) {
19
+ this._fileContainer.pushFile(new markdown_type_file_1.MarkdownTypeFile(type));
20
+ }
21
+ }
22
+ exports.MarkdownTranspilerBase = MarkdownTranspilerBase;
23
+ //# sourceMappingURL=markdown-transpiler-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-transpiler-base.js","sourceRoot":"","sources":["../../../src/transpiler/markdown/markdown-transpiler-base.ts"],"names":[],"mappings":";;AAAA,4EAAmE;AAEnE,sDAAkD;AAClD,uEAAkE;AAClE,uEAAkE;AAElE,MAAsB,sBAAuB,SAAQ,mCAAuB;IAG1E;QACE,KAAK,EAAE,CAAC;QAUV,oBAAe,GAAG,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,qCAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC;QAXA,IAAI,CAAC,cAAc,GAAG,IAAI,8BAAa,EAAE,CAAC;IAC5C,CAAC;IAID,WAAW;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAMD,SAAS,CAAC,IAAU;QAClB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,qCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF;AArBD,wDAqBC"}
@@ -0,0 +1,8 @@
1
+ import { Type } from '@cparra/apex-reflection';
2
+ import { FileContainer } from './file-container';
3
+ export default abstract class ProcessorTypeTranspiler {
4
+ onBeforeProcess: ((types: Type[]) => void) | undefined;
5
+ abstract onProcess(type: Type): void;
6
+ onAfterProcess: ((types: Type[]) => void) | undefined;
7
+ abstract fileBuilder(): FileContainer;
8
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class ProcessorTypeTranspiler {
4
+ }
5
+ exports.default = ProcessorTypeTranspiler;
6
+ //# sourceMappingURL=processor-type-transpiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor-type-transpiler.js","sourceRoot":"","sources":["../../src/transpiler/processor-type-transpiler.ts"],"names":[],"mappings":";;AAGA,MAA8B,uBAAuB;CAQpD;AARD,0CAQC"}
@@ -0,0 +1,5 @@
1
+ import { Type } from '@cparra/apex-reflection';
2
+ import ProcessorTypeTranspiler from './processor-type-transpiler';
3
+ export default class Transpiler {
4
+ static generate(types: Type[], processor: ProcessorTypeTranspiler): void;
5
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Transpiler {
4
+ static generate(types, processor) {
5
+ var _a, _b;
6
+ const sortedTypes = types.sort((apexTypeA, apexTypeB) => {
7
+ if (apexTypeA.name < apexTypeB.name)
8
+ return -1;
9
+ if (apexTypeA.name > apexTypeB.name)
10
+ return 1;
11
+ return 0;
12
+ });
13
+ (_a = processor.onBeforeProcess) === null || _a === void 0 ? void 0 : _a.call(processor, sortedTypes);
14
+ sortedTypes.forEach((currentType) => {
15
+ processor.onProcess(currentType);
16
+ });
17
+ (_b = processor.onAfterProcess) === null || _b === void 0 ? void 0 : _b.call(processor, sortedTypes);
18
+ }
19
+ }
20
+ exports.default = Transpiler;
21
+ //# sourceMappingURL=transpiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../src/transpiler/transpiler.ts"],"names":[],"mappings":";;AAGA,MAAqB,UAAU;IAC7B,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,SAAkC;;QAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;YACtD,IAAI,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC/C,IAAI,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAA,SAAS,CAAC,eAAe,+CAAzB,SAAS,EAAmB,WAAW,EAAE;QACzC,WAAW,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YAClC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,MAAA,SAAS,CAAC,cAAc,+CAAxB,SAAS,EAAkB,WAAW,EAAE;IAC1C,CAAC;CACF;AAdD,6BAcC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Logs messages to the console.
3
+ */
4
+ export declare class Logger {
5
+ /**
6
+ * Logs a message with optional arguments.
7
+ * @param message The message to log.
8
+ * @param args Optional arguments.
9
+ */
10
+ static log(message: string, ...args: string[]): void;
11
+ /**
12
+ * Logs an error message with optional arguments.
13
+ * @param message The error message to log.
14
+ * @param args Optional arguments.
15
+ */
16
+ static error(message: string, ...args: string[]): void;
17
+ private static logSingle;
18
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chalk = require("chalk");
4
+ /**
5
+ * Logs messages to the console.
6
+ */
7
+ class Logger {
8
+ /**
9
+ * Logs a message with optional arguments.
10
+ * @param message The message to log.
11
+ * @param args Optional arguments.
12
+ */
13
+ static log(message, ...args) {
14
+ this.logSingle(message);
15
+ args.forEach((arg) => {
16
+ this.logSingle(arg);
17
+ });
18
+ }
19
+ /**
20
+ * Logs an error message with optional arguments.
21
+ * @param message The error message to log.
22
+ * @param args Optional arguments.
23
+ */
24
+ static error(message, ...args) {
25
+ this.log(`${chalk.red(message)}`, ...args);
26
+ }
27
+ static logSingle(message) {
28
+ process.stdout.write(`${chalk.green(new Date().toLocaleString() + ': ')}${message}\n`);
29
+ }
30
+ }
31
+ exports.Logger = Logger;
32
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAE/B;;GAEG;AACH,MAAa,MAAM;IACjB;;;;OAIG;IACI,MAAM,CAAC,GAAG,CAAC,OAAe,EAAE,GAAG,IAAc;QAClD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,GAAG,IAAc;QACpD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,OAAe;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IACzF,CAAC;CACF;AAzBD,wBAyBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cparra/apexdocs",
3
- "version": "1.13.4",
3
+ "version": "2.0.0-alpha.14",
4
4
  "description": "Library with CLI capabilities to generate documentation for Salesforce Apex classes.",
5
5
  "keywords": [
6
6
  "apex",
@@ -17,12 +17,12 @@
17
17
  "types": "lib/index.d.ts",
18
18
  "scripts": {
19
19
  "test": "jest --coverage",
20
- "build": "tsc --declaration",
21
- "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
22
- "lint": "tslint -p tsconfig.json",
20
+ "build": "rimraf ./lib && npm run lint && tsc --declaration",
21
+ "lint": "eslint ./src/**/*.{js,ts} --quiet --fix",
23
22
  "prepare": "npm run build",
24
23
  "version": "npm run format && git add -A src",
25
- "postversion": "git push && git push --tags"
24
+ "postversion": "git push && git push --tags",
25
+ "execute:example": "node lib/cli/generate.js -s examples/apex -t docs --scope public"
26
26
  },
27
27
  "author": "Cesar Parra",
28
28
  "license": "MIT",
@@ -36,19 +36,28 @@
36
36
  "@types/node": "^13.7.4",
37
37
  "@types/shelljs": "^0.8.6",
38
38
  "@types/yargs": "^15.0.3",
39
+ "@typescript-eslint/eslint-plugin": "^5.1.0",
40
+ "@typescript-eslint/parser": "^5.1.0",
41
+ "eslint": "^8.0.1",
42
+ "eslint-config-prettier": "^8.3.0",
43
+ "eslint-plugin-prettier": "^4.0.0",
39
44
  "husky": "^4.2.3",
40
45
  "jest": "^27.0.4",
41
- "prettier": "^1.19.1",
46
+ "prettier": "^2.4.1",
47
+ "rimraf": "^3.0.2",
42
48
  "ts-jest": "^27.0.3",
43
- "tslint": "^6.0.0",
44
- "tslint-config-prettier": "^1.18.0",
45
49
  "typescript": "^3.8.2"
46
50
  },
47
51
  "husky": {
48
52
  "hooks": {
49
- "pre-commit": "npm run format"
53
+ "pre-commit": "lint-staged"
50
54
  }
51
55
  },
56
+ "lint-staged": {
57
+ "*.{js,ts,tsx}": [
58
+ "eslint --fix"
59
+ ]
60
+ },
52
61
  "jest": {
53
62
  "transform": {
54
63
  ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
@@ -62,7 +71,9 @@
62
71
  ]
63
72
  },
64
73
  "dependencies": {
65
- "yargs": "^16.0.3",
66
- "html-entities": "^2.3.2"
74
+ "@cparra/apex-reflection": "^0.1.1-alpha.14",
75
+ "chalk": "^4.1.2",
76
+ "html-entities": "^2.3.2",
77
+ "yargs": "^16.0.3"
67
78
  }
68
79
  }
@@ -0,0 +1,41 @@
1
+ import { ApexFileReader } from '../service/apex-file-reader';
2
+ import { DefaultFileSystem } from '../service/file-system';
3
+ import { ReflectionResult } from '@cparra/apex-reflection/index';
4
+ import { reflect } from '@cparra/apex-reflection';
5
+ import { Logger } from '../util/logger';
6
+ import { createManifest } from '../service/manifest-factory';
7
+ import { RawBodyParser } from '../service/parser';
8
+ import { Settings } from '../settings';
9
+ import Transpiler from '../transpiler/transpiler';
10
+ import { FileWriter } from '../service/file-writer';
11
+
12
+ /**
13
+ * Application entry-point to generate documentation out of Apex source files.
14
+ */
15
+ export class Apexdocs {
16
+ /**
17
+ * Generates documentation out of Apex source files.
18
+ */
19
+ static generate(): void {
20
+ const fileBodies = ApexFileReader.processFiles(new DefaultFileSystem());
21
+ const manifest = createManifest(new RawBodyParser(fileBodies), this._reflectionWithLogger);
22
+
23
+ const filteredManifest = manifest.filteredByAccessModifierAndAnnotations(Settings.getInstance().scope);
24
+
25
+ Logger.log(`Parsed ${filteredManifest.length} files`);
26
+ const processor = Settings.getInstance().typeTranspiler;
27
+ Transpiler.generate(filteredManifest, processor);
28
+ const generatedFiles = processor.fileBuilder().files();
29
+ FileWriter.write(generatedFiles, (fileName: string) => {
30
+ Logger.log(`${fileName} processed.`);
31
+ });
32
+ }
33
+
34
+ static _reflectionWithLogger = (declarationBody: string): ReflectionResult => {
35
+ const result = reflect(declarationBody);
36
+ if (result.error) {
37
+ Logger.log(`Parsing error ${result.error?.message}`);
38
+ }
39
+ return result;
40
+ };
41
+ }