@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
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const Settings_1 = require("./Settings");
4
- const Configuration_1 = require("./Configuration");
5
- class ClassFileGeneratorHelper {
6
- static getSanitizedGroup(classModel) {
7
- return classModel
8
- .getClassGroup()
9
- .replace(/ /g, '-')
10
- .replace('.', '');
11
- }
12
- static getFileLink(classModel) {
13
- var _a, _b;
14
- const root = ((_a = Configuration_1.default.getConfig()) === null || _a === void 0 ? void 0 : _a.root) ? (_b = Configuration_1.default.getConfig()) === null || _b === void 0 ? void 0 : _b.root : '';
15
- let fileLink;
16
- if (Settings_1.default.getInstance().getShouldGroup()) {
17
- fileLink = `[${classModel.getClassName()}](${root}/${this.getSanitizedGroup(classModel)}/${classModel.getClassName()}.md)`;
18
- }
19
- else {
20
- fileLink = `[${classModel.getClassName()}](${root}/${classModel.getClassName()}.md)`;
21
- }
22
- return fileLink;
23
- }
24
- }
25
- exports.default = ClassFileGeneratorHelper;
@@ -1 +0,0 @@
1
- export {};
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ClassFileGeneratorHelper_1 = require("./ClassFileGeneratorHelper");
4
- const ClassModel_1 = require("./model/ClassModel");
5
- const Settings_1 = require("./Settings");
6
- test('that getSanitizedGroup returns the same string when there is nothing to sanitize', () => {
7
- const testClass = new ClassModel_1.default();
8
- testClass.setClassGroup('GroupName');
9
- expect(ClassFileGeneratorHelper_1.default.getSanitizedGroup(testClass)).toBe('GroupName');
10
- });
11
- test('that getSanitizedGroup replaces spaces with dashes', () => {
12
- const testClass = new ClassModel_1.default();
13
- testClass.setClassGroup('Group Name');
14
- expect(ClassFileGeneratorHelper_1.default.getSanitizedGroup(testClass)).toBe('Group-Name');
15
- });
16
- test('that getSanitizedGroup removes dots', () => {
17
- const testClass = new ClassModel_1.default();
18
- testClass.setClassGroup('Group Na.me');
19
- expect(ClassFileGeneratorHelper_1.default.getSanitizedGroup(testClass)).toBe('Group-Name');
20
- });
21
- test('that getFileLink returns the correct string when grouping is off', () => {
22
- Settings_1.default.getInstance().setShouldGroup(false);
23
- const testClass = new ClassModel_1.default();
24
- testClass.setClassName('MyTestClassName');
25
- expect(ClassFileGeneratorHelper_1.default.getFileLink(testClass)).toBe('[MyTestClassName](/MyTestClassName.md)');
26
- });
27
- test('that getFileLink returns the correct string when grouping is on', () => {
28
- Settings_1.default.getInstance().setShouldGroup(true);
29
- const testClass = new ClassModel_1.default();
30
- testClass.setClassName('MyTestClassName');
31
- expect(ClassFileGeneratorHelper_1.default.getFileLink(testClass)).toBe(`[MyTestClassName](/${ClassFileGeneratorHelper_1.default.getSanitizedGroup(testClass)}/MyTestClassName.md)`);
32
- });
@@ -1,34 +0,0 @@
1
- interface ConfigHome {
2
- header?: string;
3
- }
4
- interface ConfigContent {
5
- startingHeadingLevel?: number;
6
- includeAuthor?: string;
7
- includeDate?: string;
8
- injections?: Injection;
9
- }
10
- interface Config {
11
- root?: string;
12
- defaultGroupName?: string;
13
- sourceLanguage?: string;
14
- home?: ConfigHome;
15
- content?: ConfigContent;
16
- }
17
- interface Injection {
18
- doc: DocInjection;
19
- }
20
- interface DocInjection {
21
- onInit: string[];
22
- onEnd: string[];
23
- method: MethodInjection;
24
- }
25
- interface MethodInjection {
26
- onInit: string[];
27
- onEnd: string[];
28
- onBeforeExample: string[];
29
- }
30
- export default class Configuration {
31
- static getHeader(): string | undefined;
32
- static getConfig(): Config | undefined;
33
- }
34
- export {};
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fs = require("fs");
4
- const Settings_1 = require("./Settings");
5
- class Configuration {
6
- static getHeader() {
7
- var _a;
8
- let config = this.getConfig();
9
- if (!((_a = config === null || config === void 0 ? void 0 : config.home) === null || _a === void 0 ? void 0 : _a.header)) {
10
- return undefined;
11
- }
12
- const headerFilePath = config.home.header;
13
- try {
14
- const rawHeader = fs.readFileSync(headerFilePath);
15
- return rawHeader.toString();
16
- }
17
- catch (error) {
18
- throw new Error('Error occurred while reading the header file ' + error.toString());
19
- }
20
- }
21
- static getConfig() {
22
- const configPath = Settings_1.default.getInstance().getConfigPath();
23
- if (!configPath) {
24
- return undefined;
25
- }
26
- let config;
27
- try {
28
- const rawFile = fs.readFileSync(configPath);
29
- config = JSON.parse(rawFile.toString());
30
- }
31
- catch (error) {
32
- throw new Error('Error occurred while reading the configuration file ' + error.toString());
33
- }
34
- return config;
35
- }
36
- }
37
- exports.default = Configuration;
@@ -1,6 +0,0 @@
1
- import ClassModel from './model/ClassModel';
2
- export default abstract class DocsProcessor {
3
- onBeforeProcess(classes: ClassModel[], outputDir: string): void;
4
- abstract process(cModel: ClassModel, outputDir: string): void;
5
- onAfterProcess(classes: ClassModel[], outputDir: string): void;
6
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class DocsProcessor {
4
- // tslint:disable-next-line:no-empty
5
- onBeforeProcess(classes, outputDir) { }
6
- // tslint:disable-next-line:no-empty
7
- onAfterProcess(classes, outputDir) { }
8
- }
9
- exports.default = DocsProcessor;
@@ -1,4 +0,0 @@
1
- import MarkdownDocsProcessor from './MarkdownDocsProcessor';
2
- export default class DocsifyDocsProcessor extends MarkdownDocsProcessor {
3
- getHomeFileName(): string;
4
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const MarkdownDocsProcessor_1 = require("./MarkdownDocsProcessor");
4
- class DocsifyDocsProcessor extends MarkdownDocsProcessor_1.default {
5
- getHomeFileName() {
6
- return 'README.md';
7
- }
8
- }
9
- exports.default = DocsifyDocsProcessor;
@@ -1 +0,0 @@
1
- export {};
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const DocsifyDocsProcessor_1 = require("./DocsifyDocsProcessor");
4
- test('that the home file name is README', () => {
5
- const processor = new DocsifyDocsProcessor_1.default();
6
- expect(processor.getHomeFileName()).toBe('README.md');
7
- });
@@ -1,6 +0,0 @@
1
- import ClassModel from './model/ClassModel';
2
- export default class FileManager {
3
- classModels: ClassModel[];
4
- constructor(classModels: ClassModel[]);
5
- generate(): void;
6
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const Settings_1 = require("./Settings");
4
- class FileManager {
5
- constructor(classModels) {
6
- this.classModels = classModels;
7
- }
8
- // TODO: Make static
9
- generate() {
10
- const sortedClasses = this.classModels.sort((classA, classB) => {
11
- if (classA.getClassName() < classB.getClassName())
12
- return -1;
13
- if (classA.getClassName() > classB.getClassName())
14
- return 1;
15
- return 0;
16
- });
17
- const docsProcessor = Settings_1.default.getInstance().getDocsProcessor();
18
- if (!docsProcessor) {
19
- return;
20
- }
21
- const outputDir = Settings_1.default.getInstance().getOutputDir();
22
- docsProcessor.onBeforeProcess(sortedClasses, Settings_1.default.getInstance().getOutputDir());
23
- sortedClasses.forEach(classModel => {
24
- docsProcessor.process(classModel, outputDir);
25
- });
26
- }
27
- }
28
- exports.default = FileManager;
@@ -1,8 +0,0 @@
1
- import MarkdownDocsProcessor from './MarkdownDocsProcessor';
2
- import MarkdownHelper from './MarkdownHelper';
3
- export default class JekyllDocsProcessor extends MarkdownDocsProcessor {
4
- getHomeFileName(): string;
5
- onBeforeHomeFileCreated(generator: MarkdownHelper): void;
6
- onBeforeClassFileCreated(generator: MarkdownHelper): void;
7
- private addFrontMatterHeader;
8
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const MarkdownDocsProcessor_1 = require("./MarkdownDocsProcessor");
4
- class JekyllDocsProcessor extends MarkdownDocsProcessor_1.default {
5
- getHomeFileName() {
6
- return 'index.md';
7
- }
8
- onBeforeHomeFileCreated(generator) {
9
- this.addFrontMatterHeader(generator);
10
- }
11
- onBeforeClassFileCreated(generator) {
12
- this.addFrontMatterHeader(generator);
13
- }
14
- addFrontMatterHeader(generator) {
15
- generator.addText('---');
16
- generator.addText('layout: default');
17
- generator.addText('---');
18
- }
19
- }
20
- exports.default = JekyllDocsProcessor;
@@ -1 +0,0 @@
1
- export {};
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const JekyllDocsProcessor_1 = require("./JekyllDocsProcessor");
4
- test('that home file is index.md', () => {
5
- const processor = new JekyllDocsProcessor_1.default();
6
- expect(processor.getHomeFileName()).toBe('index.md');
7
- });
8
- test('that onBeforeHomeFileCreated adds front matter', () => {
9
- const markdownHelper = jest.genMockFromModule('./MarkdownHelper');
10
- markdownHelper.addText = jest.fn();
11
- const processor = new JekyllDocsProcessor_1.default();
12
- processor.onBeforeHomeFileCreated(markdownHelper);
13
- expect(markdownHelper.addText).toHaveBeenCalledTimes(3);
14
- });
15
- test('that onBeforeClassFileCreated adds front matter', () => {
16
- const markdownHelper = jest.genMockFromModule('./MarkdownHelper');
17
- markdownHelper.addText = jest.fn();
18
- const processor = new JekyllDocsProcessor_1.default();
19
- processor.onBeforeClassFileCreated(markdownHelper);
20
- expect(markdownHelper.addText).toHaveBeenCalledTimes(3);
21
- });
package/lib/JsHelper.d.ts DELETED
@@ -1,12 +0,0 @@
1
- export default class JsHelper {
2
- contents: string;
3
- addBlankLine(): void;
4
- initializeBlock(): void;
5
- finalizeBlock(): void;
6
- declareType(className: string, docDescription: string): void;
7
- declareProperty(propertyType: string, propertyName: string, docDescription: string): void;
8
- sanitizeApexPropertyToJavascript(propertyType: string): string;
9
- isListProperty(propertyType: string): true | undefined;
10
- extractTypeFromList(propertyType: string): string;
11
- replaceAll(sourceString: string, strReplace: string, strWith: string): string;
12
- }
package/lib/JsHelper.js DELETED
@@ -1,72 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class JsHelper {
4
- constructor() {
5
- this.contents = '';
6
- }
7
- addBlankLine() {
8
- this.contents += '\n';
9
- }
10
- initializeBlock() {
11
- this.contents += '/**';
12
- this.addBlankLine();
13
- }
14
- finalizeBlock() {
15
- this.contents += ' */';
16
- this.addBlankLine();
17
- }
18
- declareType(className, docDescription) {
19
- this.contents += ` * @typedef {Object} ${className} ${docDescription}`;
20
- this.addBlankLine();
21
- }
22
- declareProperty(propertyType, propertyName, docDescription) {
23
- let sanitizedType;
24
- // First we check if we are dealing with a list
25
- if (this.isListProperty(propertyType)) {
26
- // If we are then we first extract the type from the list
27
- sanitizedType = this.extractTypeFromList(propertyType);
28
- // then sanitize it
29
- sanitizedType = this.sanitizeApexPropertyToJavascript(sanitizedType);
30
- // and then we add brackets ([])
31
- sanitizedType = sanitizedType + '[]';
32
- }
33
- else {
34
- sanitizedType = this.sanitizeApexPropertyToJavascript(propertyType);
35
- }
36
- this.contents += ` * @property {${sanitizedType}} ${propertyName} ${docDescription}`;
37
- this.addBlankLine();
38
- }
39
- sanitizeApexPropertyToJavascript(propertyType) {
40
- const lowerPropertyType = propertyType.toLowerCase();
41
- if (lowerPropertyType === 'decimal' || lowerPropertyType === 'integer' || lowerPropertyType === 'double') {
42
- return 'number';
43
- }
44
- if (lowerPropertyType === 'boolean' || lowerPropertyType === 'string') {
45
- // If it is a built-in type then we return the lower-cased version.
46
- return lowerPropertyType;
47
- }
48
- // Otherwise we respect casing
49
- return propertyType;
50
- }
51
- isListProperty(propertyType) {
52
- const lowerPropertyType = propertyType.toLowerCase();
53
- if (lowerPropertyType.includes('<') && lowerPropertyType.includes('list')) {
54
- return true;
55
- }
56
- }
57
- extractTypeFromList(propertyType) {
58
- const propertyWithoutList = this.replaceAll(propertyType, 'list', '');
59
- return propertyWithoutList
60
- .replace('list', '')
61
- .replace('<', '')
62
- .replace('>', '');
63
- }
64
- // Case insensitive replace
65
- replaceAll(sourceString, strReplace, strWith) {
66
- // See http://stackoverflow.com/a/3561711/556609
67
- const esc = strReplace.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
68
- const reg = new RegExp(esc, 'ig');
69
- return sourceString.replace(reg, strWith);
70
- }
71
- }
72
- exports.default = JsHelper;
@@ -1,22 +0,0 @@
1
- import DocsProcessor from './DocsProcessor';
2
- import MarkdownHelper from './MarkdownHelper';
3
- import ClassModel from './model/ClassModel';
4
- export default abstract class MarkdownDocsProcessor extends DocsProcessor {
5
- private classes;
6
- abstract getHomeFileName(): string;
7
- onBeforeHomeFileCreated(generator: MarkdownHelper): void;
8
- onBeforeClassFileCreated(generator: MarkdownHelper): void;
9
- onBeforeProcess(classes: ClassModel[], outputDir: string): void;
10
- process(classModel: ClassModel, outputDir: string): void;
11
- generateDocsForClass(generator: MarkdownHelper, classModel: ClassModel, level: number): void;
12
- private group;
13
- private addProperties;
14
- private addConstructors;
15
- private addEnums;
16
- private addMethods;
17
- private addInnerClasses;
18
- private addParameters;
19
- private addReturns;
20
- private addThrowsBlock;
21
- private addExample;
22
- }