@cparra/apexdocs 2.21.0 → 2.23.0-beta.0

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 (55) hide show
  1. package/README.md +52 -16
  2. package/apexdocs.config.ts +3 -1
  3. package/docs/types/Classes/nspc.AnotherInterface.md +15 -0
  4. package/docs/types/Classes/nspc.ChildClass.md +97 -79
  5. package/docs/types/Main/nspc.SampleClass.md +189 -189
  6. package/examples/force-app/main/default/classes/AnotherInterface.cls +11 -0
  7. package/examples/force-app/main/default/classes/ChildClass.cls +12 -0
  8. package/lib/cli/generate.js +7 -1
  9. package/lib/cli/generate.js.map +1 -1
  10. package/lib/model/markdown-file.d.ts +1 -1
  11. package/lib/model/markdown-file.js +2 -2
  12. package/lib/model/markdown-file.js.map +1 -1
  13. package/lib/model/markdown-generation-util/doc-comment-annotation-util.d.ts +1 -0
  14. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js +17 -2
  15. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +1 -1
  16. package/lib/model/markdown-generation-util/field-declaration-util.js +1 -9
  17. package/lib/model/markdown-generation-util/field-declaration-util.js.map +1 -1
  18. package/lib/model/markdown-generation-util/method-declaration-util.js +1 -0
  19. package/lib/model/markdown-generation-util/method-declaration-util.js.map +1 -1
  20. package/lib/model/markdown-generation-util/type-declaration-util.js +1 -0
  21. package/lib/model/markdown-generation-util/type-declaration-util.js.map +1 -1
  22. package/lib/model/markdown-type-file.js +1 -9
  23. package/lib/model/markdown-type-file.js.map +1 -1
  24. package/lib/service/walkers/class-walker.js +6 -6
  25. package/lib/service/walkers/class-walker.js.map +1 -1
  26. package/lib/service/walkers/enum-walker.js.map +1 -1
  27. package/lib/service/walkers/interface-walker.js +1 -1
  28. package/lib/service/walkers/interface-walker.js.map +1 -1
  29. package/lib/service/walkers/walker.d.ts +3 -0
  30. package/lib/service/walkers/walker.js +7 -0
  31. package/lib/service/walkers/walker.js.map +1 -1
  32. package/lib/settings.d.ts +11 -0
  33. package/lib/settings.js +10 -0
  34. package/lib/settings.js.map +1 -1
  35. package/lib/transpiler/markdown/class-file-generatorHelper.js +2 -2
  36. package/lib/transpiler/markdown/class-file-generatorHelper.js.map +1 -1
  37. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +2 -1
  38. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js +26 -3
  39. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/cli/generate.ts +6 -0
  42. package/src/model/markdown-file.ts +2 -2
  43. package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +16 -0
  44. package/src/model/markdown-generation-util/field-declaration-util.ts +3 -9
  45. package/src/model/markdown-generation-util/method-declaration-util.ts +3 -1
  46. package/src/model/markdown-generation-util/type-declaration-util.ts +3 -1
  47. package/src/model/markdown-type-file.ts +4 -10
  48. package/src/service/walkers/class-walker.ts +6 -7
  49. package/src/service/walkers/enum-walker.ts +0 -1
  50. package/src/service/walkers/interface-walker.ts +1 -1
  51. package/src/service/walkers/walker.ts +8 -1
  52. package/src/settings.ts +21 -0
  53. package/src/transpiler/markdown/class-file-generatorHelper.ts +2 -2
  54. package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +26 -3
  55. package/ROADMAP.md +0 -16
@@ -66,15 +66,7 @@ class MarkdownTypeFile extends markdown_file_1.MarkdownFile {
66
66
  }
67
67
  addInnerTypes(title, types, addSeparator = true) {
68
68
  this.addTitle(title, this.headingLevel + 1);
69
- types
70
- .sort((typeA, typeB) => {
71
- if (typeA.name < typeB.name)
72
- return -1;
73
- if (typeA.name > typeB.name)
74
- return 1;
75
- return 0;
76
- })
77
- .forEach((currentType) => {
69
+ types.forEach((currentType) => {
78
70
  const innerFile = new MarkdownTypeFile(currentType, this.headingLevel + 2, undefined, true);
79
71
  this.addText(innerFile._contents);
80
72
  });
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-type-file.js","sourceRoot":"","sources":["../../src/model/markdown-type-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-type-file.js","sourceRoot":"","sources":["../../src/model/markdown-type-file.ts"],"names":[],"mappings":"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"}
@@ -10,22 +10,22 @@ class ClassWalker extends walker_1.Walker {
10
10
  listener.onConstructorDeclaration(this.type.name, classMirror.constructors);
11
11
  }
12
12
  if (classMirror.fields.length) {
13
- listener.onFieldsDeclaration(classMirror.fields);
13
+ listener.onFieldsDeclaration(this.sortType(classMirror.fields));
14
14
  }
15
15
  if (classMirror.properties.length) {
16
- listener.onPropertiesDeclaration(classMirror.properties);
16
+ listener.onPropertiesDeclaration(this.sortType(classMirror.properties));
17
17
  }
18
18
  if (classMirror.methods.length) {
19
- listener.onMethodsDeclaration(classMirror.methods);
19
+ listener.onMethodsDeclaration(this.sortType(classMirror.methods));
20
20
  }
21
21
  if (classMirror.enums.length) {
22
- listener.onInnerEnumsDeclaration(classMirror.enums);
22
+ listener.onInnerEnumsDeclaration(this.sortType(classMirror.enums));
23
23
  }
24
24
  if (classMirror.classes.length) {
25
- listener.onInnerClassesDeclaration(classMirror.classes);
25
+ listener.onInnerClassesDeclaration(this.sortType(classMirror.classes));
26
26
  }
27
27
  if (classMirror.interfaces.length) {
28
- listener.onInnerInterfacesDeclaration(classMirror.interfaces);
28
+ listener.onInnerInterfacesDeclaration(this.sortType(classMirror.interfaces));
29
29
  }
30
30
  }
31
31
  }
@@ -1 +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"}
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;QAC7C,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,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;SACjE;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE;YACjC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;SACzE;QACD,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9B,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;SACnE;QACD,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;YAC5B,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SACpE;QACD,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9B,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;SACxE;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE;YACjC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;CACF;AA1BD,kCA0BC"}
@@ -1 +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"}
1
+ {"version":3,"file":"enum-walker.js","sourceRoot":"","sources":["../../../src/service/walkers/enum-walker.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAElD,MAAa,UAAW,SAAQ,eAAM;IACpC,IAAI,CAAC,QAAwB;QAC3B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACF;AAJD,gCAIC"}
@@ -7,7 +7,7 @@ class InterfaceWalker extends walker_1.Walker {
7
7
  listener.onTypeDeclaration(this.type);
8
8
  const interfaceMirror = this.type;
9
9
  if (interfaceMirror.methods.length) {
10
- listener.onMethodsDeclaration(interfaceMirror.methods);
10
+ listener.onMethodsDeclaration(this.sortType(interfaceMirror.methods));
11
11
  }
12
12
  }
13
13
  }
@@ -1 +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"}
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,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;SACvE;IACH,CAAC;CACF;AARD,0CAQC"}
@@ -13,4 +13,7 @@ export declare abstract class Walker {
13
13
  type: Type;
14
14
  constructor(type: Type);
15
15
  abstract walk(listener: WalkerListener): void;
16
+ protected sortType<T extends {
17
+ name: string;
18
+ }>(types: T[]): T[];
16
19
  }
@@ -1,10 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Walker = void 0;
4
+ const settings_1 = require("../../settings");
4
5
  class Walker {
5
6
  constructor(type) {
6
7
  this.type = type;
7
8
  }
9
+ sortType(types) {
10
+ if (settings_1.Settings.getInstance().sortMembersAlphabetically()) {
11
+ return types.sort((a, b) => a.name.localeCompare(b.name));
12
+ }
13
+ return types;
14
+ }
8
15
  }
9
16
  exports.Walker = Walker;
10
17
  //# sourceMappingURL=walker.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../../src/service/walkers/walker.ts"],"names":[],"mappings":";;;AAUA,6CAA0C;AAoB1C,MAAsB,MAAM;IAC1B,YAAmB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAIvB,QAAQ,CAA6B,KAAU;QACvD,IAAI,mBAAQ,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,EAAE;YACtD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAXD,wBAWC"}
package/lib/settings.d.ts CHANGED
@@ -9,6 +9,13 @@ export type OutputDir = {
9
9
  baseDir: string;
10
10
  fileDir: string;
11
11
  };
12
+ export type TargetType = {
13
+ name: string;
14
+ typeName: 'class' | 'interface' | 'enum';
15
+ accessModifier: string;
16
+ description?: string;
17
+ group?: string;
18
+ };
12
19
  export interface SettingsConfig {
13
20
  sourceDirectory: string;
14
21
  recursive: boolean;
@@ -24,8 +31,10 @@ export interface SettingsConfig {
24
31
  openApiFileName: string;
25
32
  includeMetadata: boolean;
26
33
  rootDir?: string;
34
+ sortMembersAlphabetically?: boolean;
27
35
  onAfterProcess?: (files: TargetFile[]) => void;
28
36
  onBeforeFileWrite?: (file: TargetFile) => TargetFile;
37
+ frontMatterHeader?: (file: TargetType) => string[];
29
38
  }
30
39
  export declare class Settings {
31
40
  config: SettingsConfig;
@@ -47,7 +56,9 @@ export declare class Settings {
47
56
  getNamespacePrefix(): string;
48
57
  openApiFileName(): string;
49
58
  includeMetadata(): boolean;
59
+ sortMembersAlphabetically(): boolean;
50
60
  getRootDir(): string | undefined;
51
61
  onAfterProcess(files: TargetFile[]): void;
52
62
  onBeforeFileWrite(file: TargetFile): TargetFile;
63
+ frontMatterHeader(file: TargetType): string[];
53
64
  }
package/lib/settings.js CHANGED
@@ -60,6 +60,10 @@ class Settings {
60
60
  includeMetadata() {
61
61
  return this.config.includeMetadata;
62
62
  }
63
+ sortMembersAlphabetically() {
64
+ var _a;
65
+ return (_a = this.config.sortMembersAlphabetically) !== null && _a !== void 0 ? _a : false;
66
+ }
63
67
  getRootDir() {
64
68
  return this.config.rootDir;
65
69
  }
@@ -74,6 +78,12 @@ class Settings {
74
78
  }
75
79
  return file;
76
80
  }
81
+ frontMatterHeader(file) {
82
+ if (this.config.frontMatterHeader) {
83
+ return this.config.frontMatterHeader(file);
84
+ }
85
+ return [];
86
+ }
77
87
  }
78
88
  exports.Settings = Settings;
79
89
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AAkCA,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,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,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAEM,mBAAmB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAEM,eAAe;;QACpB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,mCAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACvD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,OAAO,EAAE,CAAC;SACX;QACD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAEM,cAAc,CAAC,KAAmB;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,iBAAiB,CAAC,IAAgB;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA3FD,4BA2FC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AA4CA,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,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,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAEM,mBAAmB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAEM,eAAe;;QACpB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,mCAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACvD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,OAAO,EAAE,CAAC;SACX;QACD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,yBAAyB;;QAC9B,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,yBAAyB,mCAAI,KAAK,CAAC;IACxD,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAEM,cAAc,CAAC,KAAmB;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,iBAAiB,CAAC,IAAgB;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,iBAAiB,CAAC,IAAgB;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC5C;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAtGD,4BAsGC"}
@@ -37,12 +37,12 @@ class ClassFileGeneratorHelper {
37
37
  return './';
38
38
  }
39
39
  else {
40
- // If the types have different groups then we have to go up a directory
40
+ // If the types have different groups, then we have to go up a directory
41
41
  return `../${this.getSanitizedGroup(classModel)}/`;
42
42
  }
43
43
  }
44
44
  else {
45
- // If nothing is being processed then we assume we are at the root and links should include the groups
45
+ // If nothing is being processed, then we assume we are at the root and links should include the groups
46
46
  return `./${this.getSanitizedGroup(classModel)}/`;
47
47
  }
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"class-file-generatorHelper.js","sourceRoot":"","sources":["../../../src/transpiler/markdown/class-file-generatorHelper.ts"],"names":[],"mappings":";;AACA,mEAA+D;AAC/D,6CAA0C;AAC1C,+CAAwC;AACxC,wCAAmD;AAEnD,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,MAAM,iBAAiB,GAAG,MAAA,mBAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,mCAAI,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QACjF,MAAM,aAAa,GAAG,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC,kBAAkB,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QACzF,OAAO,IAAI,aAAa,KAAK,aAAa,GAAG,aAAa,MAAM,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAgB;QAClD,MAAM,IAAI,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,EAAE;YACT,sFAAsF;YACtF,OAAO,IAAI,QAAQ,KAAK,QAAQ,GAAG,CAAC;SACrC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,UAAgB;QAC9C,iEAAiE;QACjE,MAAM,SAAS,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC;QACzD,IAAI,+BAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,KAAK,eAAe,EAAE;YACjF,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC;SAClD;QAED,uDAAuD;QACvD,MAAM,kBAAkB,GAAG,eAAK,CAAC,WAAW,EAAE,CAAC,qBAAqB,EAAE,CAAC;QACvE,IAAI,kBAAkB,EAAE;YACtB,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;gBAC7E,yEAAyE;gBACzE,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,uEAAuE;gBACvE,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC;aACpD;SACF;aAAM;YACL,sGAAsG;YACtG,OAAO,KAAK,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC;SACnD;IACH,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,UAAgB;;QAC3C,MAAM,eAAe,GAAG,MAAA,UAAU,CAAC,UAAU,0CAAE,WAAW,CAAC,IAAI,CAC7D,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAC1D,CAAC;QACF,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,mBAAQ,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAAC;IAC/E,CAAC;CACF;AAnDD,2CAmDC"}
1
+ {"version":3,"file":"class-file-generatorHelper.js","sourceRoot":"","sources":["../../../src/transpiler/markdown/class-file-generatorHelper.ts"],"names":[],"mappings":";;AACA,mEAA+D;AAC/D,6CAA0C;AAC1C,+CAAwC;AACxC,wCAAmD;AAEnD,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,MAAM,iBAAiB,GAAG,MAAA,mBAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,mCAAI,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QACjF,MAAM,aAAa,GAAG,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC,kBAAkB,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QACzF,OAAO,IAAI,aAAa,KAAK,aAAa,GAAG,aAAa,MAAM,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAgB;QAClD,MAAM,IAAI,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,EAAE;YACT,sFAAsF;YACtF,OAAO,IAAI,QAAQ,KAAK,QAAQ,GAAG,CAAC;SACrC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,UAAgB;QAC9C,iEAAiE;QACjE,MAAM,SAAS,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC;QACzD,IAAI,+BAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,KAAK,eAAe,EAAE;YACjF,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC;SAClD;QAED,uDAAuD;QACvD,MAAM,kBAAkB,GAAG,eAAK,CAAC,WAAW,EAAE,CAAC,qBAAqB,EAAE,CAAC;QACvE,IAAI,kBAAkB,EAAE;YACtB,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;gBAC7E,yEAAyE;gBACzE,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,wEAAwE;gBACxE,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC;aACpD;SACF;aAAM;YACL,uGAAuG;YACvG,OAAO,KAAK,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC;SACnD;IACH,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,UAAgB;;QAC3C,MAAM,eAAe,GAAG,MAAA,UAAU,CAAC,UAAU,0CAAE,WAAW,CAAC,IAAI,CAC7D,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAC1D,CAAC;QACF,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,mBAAQ,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAAC;IAC/E,CAAC;CACF;AAnDD,2CAmDC"}
@@ -5,6 +5,7 @@ export declare class JekyllDocsProcessor extends MarkdownTranspilerBase {
5
5
  homeFileName(): string;
6
6
  onBeforeProcess: (types: Type[]) => void;
7
7
  onProcess(type: Type): void;
8
- get frontMatterHeader(): string;
8
+ get frontMatterForHomeFile(): string;
9
+ getFrontMatterHeader(type: Type): string;
9
10
  getLinkingStrategy(): LinkingStrategy;
10
11
  }
@@ -4,22 +4,45 @@ exports.JekyllDocsProcessor = void 0;
4
4
  const markdown_transpiler_base_1 = require("../markdown-transpiler-base");
5
5
  const markdown_home_file_1 = require("../../../model/markdown-home-file");
6
6
  const markdown_type_file_1 = require("../../../model/markdown-type-file");
7
+ const settings_1 = require("../../../settings");
7
8
  class JekyllDocsProcessor extends markdown_transpiler_base_1.MarkdownTranspilerBase {
8
9
  constructor() {
9
10
  super(...arguments);
10
11
  this.onBeforeProcess = (types) => {
11
- this._fileContainer.pushFile(new markdown_home_file_1.MarkdownHomeFile(this.homeFileName(), types, this.frontMatterHeader));
12
+ this._fileContainer.pushFile(new markdown_home_file_1.MarkdownHomeFile(this.homeFileName(), types, this.frontMatterForHomeFile));
12
13
  };
13
14
  }
14
15
  homeFileName() {
15
16
  return 'index';
16
17
  }
17
18
  onProcess(type) {
18
- this._fileContainer.pushFile(new markdown_type_file_1.MarkdownTypeFile(type, 1, this.frontMatterHeader));
19
+ this._fileContainer.pushFile(new markdown_type_file_1.MarkdownTypeFile(type, 1, this.getFrontMatterHeader(type)));
19
20
  }
20
- get frontMatterHeader() {
21
+ get frontMatterForHomeFile() {
21
22
  return '---\nlayout: default\n---';
22
23
  }
24
+ getFrontMatterHeader(type) {
25
+ var _a;
26
+ const headerLines = ['---'];
27
+ // "layout: default" is a required front matter header for Jekyll
28
+ headerLines.push('layout: default');
29
+ // Add any additional front matter headers that might have been configured in the settings
30
+ const targetType = {
31
+ name: type.name,
32
+ typeName: type.type_name,
33
+ accessModifier: type.access_modifier,
34
+ group: type.group,
35
+ description: (_a = type.docComment) === null || _a === void 0 ? void 0 : _a.description,
36
+ };
37
+ const configuredHeaders = settings_1.Settings.getInstance().frontMatterHeader(targetType);
38
+ if (configuredHeaders) {
39
+ configuredHeaders.forEach((header) => {
40
+ headerLines.push(header);
41
+ });
42
+ }
43
+ headerLines.push('---');
44
+ return headerLines.join('\n');
45
+ }
23
46
  getLinkingStrategy() {
24
47
  return 'path-relative';
25
48
  }
@@ -1 +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;AAGrE,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;IAaJ,CAAC;IAnBC,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;IAED,kBAAkB;QAChB,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AApBD,kDAoBC"}
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,gDAA6C;AAE7C,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,sBAAsB,CAAC,CAAC,CAAC;QAC9G,CAAC,CAAC;IAmCJ,CAAC;IAzCC,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,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,oBAAoB,CAAC,IAAU;;QAC7B,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,iEAAiE;QACjE,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACpC,0FAA0F;QAC1F,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,WAAW;SAC1C,CAAC;QACF,MAAM,iBAAiB,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC/E,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACJ;QACD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB;QAChB,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AA1CD,kDA0CC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cparra/apexdocs",
3
- "version": "2.21.0",
3
+ "version": "2.23.0-beta.0",
4
4
  "description": "Library with CLI capabilities to generate documentation for Salesforce Apex classes.",
5
5
  "keywords": [
6
6
  "apex",
@@ -85,6 +85,10 @@ result.then((config) => {
85
85
  describe: 'If using "openapi" as the target generator, this allows you to specify the name of the output file.',
86
86
  default: 'openapi',
87
87
  },
88
+ sortMembersAlphabetically: {
89
+ type: 'boolean',
90
+ describe: 'Whether to sort members alphabetically.',
91
+ },
88
92
  includeMetadata: {
89
93
  type: 'boolean',
90
94
  describe: "Whether to include the file's meta.xml information: Whether it is active and and the API version",
@@ -114,10 +118,12 @@ result.then((config) => {
114
118
  title: argv.title,
115
119
  namespace: argv.namespace,
116
120
  openApiFileName: argv.openApiFileName,
121
+ sortMembersAlphabetically: argv.sortMembersAlphabetically,
117
122
  includeMetadata: argv.includeMetadata,
118
123
  rootDir: argv.documentationRootDir,
119
124
  onAfterProcess: config?.config?.onAfterProcess,
120
125
  onBeforeFileWrite: config?.config?.onBeforeFileWrite,
126
+ frontMatterHeader: config?.config?.frontMatterHeader,
121
127
  });
122
128
 
123
129
  try {
@@ -26,8 +26,8 @@ export class MarkdownFile extends OutputFile {
26
26
  this.addText(`\{@link ${text}\}`, encodeHtml);
27
27
  }
28
28
 
29
- startCodeBlock() {
30
- this.addText('```apex');
29
+ startCodeBlock(language = 'apex') {
30
+ this.addText(`\`\`\`${language}`);
31
31
  }
32
32
 
33
33
  endCodeBlock() {
@@ -6,9 +6,25 @@ interface DocCommentAware {
6
6
  docComment?: DocComment;
7
7
  }
8
8
 
9
+ export function addMermaid(markdownFile: MarkdownFile, docCommentAware: DocCommentAware) {
10
+ const mermaid = docCommentAware.docComment?.annotations.find((annotation) => annotation.name === 'mermaid');
11
+ if (!mermaid) {
12
+ return;
13
+ }
14
+
15
+ markdownFile.addBlankLine();
16
+ markdownFile.startCodeBlock('mermaid');
17
+ mermaid.bodyLines.forEach((line) => {
18
+ markdownFile.addText(line, false);
19
+ });
20
+ markdownFile.endCodeBlock();
21
+ markdownFile.addBlankLine();
22
+ }
23
+
9
24
  export function addCustomDocCommentAnnotations(markdownFile: MarkdownFile, docCommentAware: DocCommentAware) {
10
25
  docCommentAware.docComment?.annotations
11
26
  .filter((currentAnnotation: DocCommentAnnotation) => currentAnnotation.name !== 'description')
27
+ .filter((currentAnnotation: DocCommentAnnotation) => currentAnnotation.name !== 'mermaid')
12
28
  .forEach((currentAnnotation: DocCommentAnnotation) => {
13
29
  markdownFile.addBlankLine();
14
30
  markdownFile.addText(buildDocAnnotationText(currentAnnotation));
@@ -8,15 +8,9 @@ export function declareField(
8
8
  grouped = false,
9
9
  ) {
10
10
  markdownFile.addBlankLine();
11
- fields
12
- .sort((propA, propB) => {
13
- if (propA.name < propB.name) return -1;
14
- if (propA.name > propB.name) return 1;
15
- return 0;
16
- })
17
- .forEach((propertyModel) => {
18
- addFieldSection(markdownFile, propertyModel, startingHeadingLevel, grouped);
19
- });
11
+ fields.forEach((propertyModel) => {
12
+ addFieldSection(markdownFile, propertyModel, startingHeadingLevel, grouped);
13
+ });
20
14
 
21
15
  markdownFile.addHorizontalRule();
22
16
  }
@@ -1,7 +1,7 @@
1
1
  import { ConstructorMirror, DocComment } from '@cparra/apex-reflection';
2
2
  import { MarkdownFile } from '../markdown-file';
3
3
  import { ParameterMirror } from '@cparra/apex-reflection';
4
- import { addCustomDocCommentAnnotations } from './doc-comment-annotation-util';
4
+ import { addCustomDocCommentAnnotations, addMermaid } from './doc-comment-annotation-util';
5
5
  import { MethodMirrorWithInheritance } from '../inheritance';
6
6
 
7
7
  export function declareMethod(
@@ -55,6 +55,8 @@ export function declareMethod(
55
55
 
56
56
  addCustomDocCommentAnnotations(markdownFile, currentMethod);
57
57
 
58
+ addMermaid(markdownFile, currentMethod);
59
+
58
60
  if (currentMethod.docComment?.exampleAnnotation) {
59
61
  addExample(markdownFile, currentMethod, startingHeadingLevel);
60
62
  }
@@ -1,5 +1,5 @@
1
1
  import { MarkdownFile } from '../markdown-file';
2
- import { addCustomDocCommentAnnotations } from './doc-comment-annotation-util';
2
+ import { addCustomDocCommentAnnotations, addMermaid } from './doc-comment-annotation-util';
3
3
  import { Annotation, ClassMirror, InterfaceMirror, Type } from '@cparra/apex-reflection';
4
4
  import { TypesRepository } from '../types-repository';
5
5
 
@@ -26,6 +26,8 @@ export function declareType(markdownFile: MarkdownFile, typeMirror: Type): void
26
26
  }
27
27
 
28
28
  addCustomDocCommentAnnotations(markdownFile, typeMirror);
29
+
30
+ addMermaid(markdownFile, typeMirror);
29
31
  }
30
32
 
31
33
  function addInheritanceSectionForClass(typeMirror: Type, markdownFile: MarkdownFile) {
@@ -91,16 +91,10 @@ export class MarkdownTypeFile extends MarkdownFile implements WalkerListener {
91
91
 
92
92
  private addInnerTypes(title: string, types: Type[], addSeparator = true) {
93
93
  this.addTitle(title, this.headingLevel + 1);
94
- types
95
- .sort((typeA, typeB) => {
96
- if (typeA.name < typeB.name) return -1;
97
- if (typeA.name > typeB.name) return 1;
98
- return 0;
99
- })
100
- .forEach((currentType) => {
101
- const innerFile = new MarkdownTypeFile(currentType, this.headingLevel + 2, undefined, true);
102
- this.addText(innerFile._contents);
103
- });
94
+ types.forEach((currentType) => {
95
+ const innerFile = new MarkdownTypeFile(currentType, this.headingLevel + 2, undefined, true);
96
+ this.addText(innerFile._contents);
97
+ });
104
98
  if (addSeparator) {
105
99
  this.addHorizontalRule();
106
100
  }
@@ -5,27 +5,26 @@ export class ClassWalker extends Walker {
5
5
  walk(listener: WalkerListener): void {
6
6
  listener.onTypeDeclaration(this.type);
7
7
  const classMirror = this.type as ClassMirror;
8
-
9
8
  if (classMirror.constructors.length) {
10
9
  listener.onConstructorDeclaration(this.type.name, classMirror.constructors);
11
10
  }
12
11
  if (classMirror.fields.length) {
13
- listener.onFieldsDeclaration(classMirror.fields);
12
+ listener.onFieldsDeclaration(this.sortType(classMirror.fields));
14
13
  }
15
14
  if (classMirror.properties.length) {
16
- listener.onPropertiesDeclaration(classMirror.properties);
15
+ listener.onPropertiesDeclaration(this.sortType(classMirror.properties));
17
16
  }
18
17
  if (classMirror.methods.length) {
19
- listener.onMethodsDeclaration(classMirror.methods);
18
+ listener.onMethodsDeclaration(this.sortType(classMirror.methods));
20
19
  }
21
20
  if (classMirror.enums.length) {
22
- listener.onInnerEnumsDeclaration(classMirror.enums);
21
+ listener.onInnerEnumsDeclaration(this.sortType(classMirror.enums));
23
22
  }
24
23
  if (classMirror.classes.length) {
25
- listener.onInnerClassesDeclaration(classMirror.classes);
24
+ listener.onInnerClassesDeclaration(this.sortType(classMirror.classes));
26
25
  }
27
26
  if (classMirror.interfaces.length) {
28
- listener.onInnerInterfacesDeclaration(classMirror.interfaces);
27
+ listener.onInnerInterfacesDeclaration(this.sortType(classMirror.interfaces));
29
28
  }
30
29
  }
31
30
  }
@@ -1,5 +1,4 @@
1
1
  import { Walker, WalkerListener } from './walker';
2
- import { EnumMirror } from '@cparra/apex-reflection';
3
2
 
4
3
  export class EnumWalker extends Walker {
5
4
  walk(listener: WalkerListener): void {
@@ -6,7 +6,7 @@ export class InterfaceWalker extends Walker {
6
6
  listener.onTypeDeclaration(this.type);
7
7
  const interfaceMirror = this.type as InterfaceMirror;
8
8
  if (interfaceMirror.methods.length) {
9
- listener.onMethodsDeclaration(interfaceMirror.methods);
9
+ listener.onMethodsDeclaration(this.sortType(interfaceMirror.methods));
10
10
  }
11
11
  }
12
12
  }
@@ -8,7 +8,7 @@ import {
8
8
  PropertyMirror,
9
9
  Type,
10
10
  } from '@cparra/apex-reflection';
11
- import { Annotation } from '@cparra/apex-reflection/index';
11
+ import { Settings } from '../../settings';
12
12
 
13
13
  export interface WalkerListener {
14
14
  onTypeDeclaration(typeMirror: Type): void;
@@ -32,4 +32,11 @@ export abstract class Walker {
32
32
  constructor(public type: Type) {}
33
33
 
34
34
  abstract walk(listener: WalkerListener): void;
35
+
36
+ protected sortType<T extends { name: string }>(types: T[]): T[] {
37
+ if (Settings.getInstance().sortMembersAlphabetically()) {
38
+ return types.sort((a, b) => a.name.localeCompare(b.name));
39
+ }
40
+ return types;
41
+ }
35
42
  }
package/src/settings.ts CHANGED
@@ -13,6 +13,14 @@ export type OutputDir = {
13
13
  fileDir: string;
14
14
  };
15
15
 
16
+ export type TargetType = {
17
+ name: string;
18
+ typeName: 'class' | 'interface' | 'enum';
19
+ accessModifier: string;
20
+ description?: string;
21
+ group?: string;
22
+ };
23
+
16
24
  export interface SettingsConfig {
17
25
  sourceDirectory: string;
18
26
  recursive: boolean;
@@ -28,8 +36,10 @@ export interface SettingsConfig {
28
36
  openApiFileName: string;
29
37
  includeMetadata: boolean;
30
38
  rootDir?: string;
39
+ sortMembersAlphabetically?: boolean;
31
40
  onAfterProcess?: (files: TargetFile[]) => void;
32
41
  onBeforeFileWrite?: (file: TargetFile) => TargetFile;
42
+ frontMatterHeader?: (file: TargetType) => string[];
33
43
  }
34
44
 
35
45
  export class Settings {
@@ -107,6 +117,10 @@ export class Settings {
107
117
  return this.config.includeMetadata;
108
118
  }
109
119
 
120
+ public sortMembersAlphabetically(): boolean {
121
+ return this.config.sortMembersAlphabetically ?? false;
122
+ }
123
+
110
124
  public getRootDir(): string | undefined {
111
125
  return this.config.rootDir;
112
126
  }
@@ -123,4 +137,11 @@ export class Settings {
123
137
  }
124
138
  return file;
125
139
  }
140
+
141
+ public frontMatterHeader(file: TargetType): string[] {
142
+ if (this.config.frontMatterHeader) {
143
+ return this.config.frontMatterHeader(file);
144
+ }
145
+ return [];
146
+ }
126
147
  }
@@ -40,11 +40,11 @@ export default class ClassFileGeneratorHelper {
40
40
  // If the types the same groups then we simply link directly to that file
41
41
  return './';
42
42
  } else {
43
- // If the types have different groups then we have to go up a directory
43
+ // If the types have different groups, then we have to go up a directory
44
44
  return `../${this.getSanitizedGroup(classModel)}/`;
45
45
  }
46
46
  } else {
47
- // If nothing is being processed then we assume we are at the root and links should include the groups
47
+ // If nothing is being processed, then we assume we are at the root and links should include the groups
48
48
  return `./${this.getSanitizedGroup(classModel)}/`;
49
49
  }
50
50
  }