@cparra/apexdocs 2.8.1 → 2.9.0-alpha.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 (167) hide show
  1. package/LICENSE +21 -21
  2. package/docs/API/SampleClassWithoutModifier.md +11 -11
  3. package/docs/Main/GroupedClass.md +10 -10
  4. package/docs/Misc-Group/AnotherInterface.md +1 -1
  5. package/docs/Misc-Group/ChildClass.md +78 -78
  6. package/docs/Misc-Group/GrandparentClass.md +13 -13
  7. package/docs/Misc-Group/InterfaceWithInheritance.md +33 -33
  8. package/docs/Misc-Group/ParentClass.md +37 -37
  9. package/docs/Misc-Group/SampleClassWithoutModifier.md +11 -11
  10. package/docs/README.md +42 -42
  11. package/docs/Sample-Interfaces/SampleInterface.md +27 -27
  12. package/docs/index.html +22 -22
  13. package/docs/openapi.json +351 -0
  14. package/examples/force-app/main/default/classes/ChildClass.cls +3 -1
  15. package/examples/force-app/main/default/classes/ParentClass.cls +4 -4
  16. package/examples/force-app/main/default/restapi/SampleRestResource.cls +189 -0
  17. package/jest.config.js +5 -5
  18. package/lib/application/Apexdocs.d.ts +1 -0
  19. package/lib/application/Apexdocs.js +33 -9
  20. package/lib/application/Apexdocs.js.map +1 -1
  21. package/lib/cli/generate.js +11 -3
  22. package/lib/cli/generate.js.map +1 -1
  23. package/lib/index.js +6 -2
  24. package/lib/index.js.map +1 -1
  25. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.d.ts +7 -0
  26. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js +14 -0
  27. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js.map +1 -0
  28. package/lib/model/inheritance.d.ts +5 -5
  29. package/lib/model/manifest.d.ts +1 -1
  30. package/lib/model/markdown-file.d.ts +2 -2
  31. package/lib/model/markdown-file.js +2 -2
  32. package/lib/model/markdown-file.js.map +1 -1
  33. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +1 -1
  34. package/lib/model/markdown-generation-util/field-declaration-util.js.map +1 -1
  35. package/lib/model/markdown-generation-util/index.js +6 -2
  36. package/lib/model/markdown-generation-util/index.js.map +1 -1
  37. package/lib/model/markdown-generation-util/method-declaration-util.js +1 -1
  38. package/lib/model/markdown-generation-util/method-declaration-util.js.map +1 -1
  39. package/lib/model/markdown-generation-util/type-declaration-util.js +2 -2
  40. package/lib/model/markdown-generation-util/type-declaration-util.js.map +1 -1
  41. package/lib/model/markdown-home-file.js +1 -1
  42. package/lib/model/markdown-home-file.js.map +1 -1
  43. package/lib/model/markdown-type-file.js +5 -5
  44. package/lib/model/markdown-type-file.js.map +1 -1
  45. package/lib/model/openapi/apex-doc-types.d.ts +18 -0
  46. package/lib/model/openapi/apex-doc-types.js +5 -0
  47. package/lib/model/openapi/apex-doc-types.js.map +1 -0
  48. package/lib/model/openapi/open-api-types.d.ts +87 -0
  49. package/lib/model/openapi/open-api-types.js +3 -0
  50. package/lib/model/openapi/open-api-types.js.map +1 -0
  51. package/lib/model/openapi/open-api.d.ts +15 -0
  52. package/lib/model/openapi/open-api.js +33 -0
  53. package/lib/model/openapi/open-api.js.map +1 -0
  54. package/lib/model/openapi/openapi-type-file.d.ts +7 -0
  55. package/lib/model/openapi/openapi-type-file.js +16 -0
  56. package/lib/model/openapi/openapi-type-file.js.map +1 -0
  57. package/lib/model/{file.d.ts → outputFile.d.ts} +1 -1
  58. package/lib/model/{file.js → outputFile.js} +4 -4
  59. package/lib/model/outputFile.js.map +1 -0
  60. package/lib/model/types-repository.d.ts +6 -3
  61. package/lib/model/types-repository.js +12 -5
  62. package/lib/model/types-repository.js.map +1 -1
  63. package/lib/service/file-writer.d.ts +2 -2
  64. package/lib/service/file-writer.js.map +1 -1
  65. package/lib/service/metadata-processor.js.map +1 -1
  66. package/lib/service/parser.d.ts +1 -1
  67. package/lib/settings.d.ts +4 -5
  68. package/lib/settings.js +5 -23
  69. package/lib/settings.js.map +1 -1
  70. package/lib/test-helpers/AnnotationBuilder.d.ts +12 -0
  71. package/lib/test-helpers/AnnotationBuilder.js +31 -0
  72. package/lib/test-helpers/AnnotationBuilder.js.map +1 -0
  73. package/lib/test-helpers/ClassMirrorBuilder.d.ts +14 -0
  74. package/lib/test-helpers/ClassMirrorBuilder.js +44 -0
  75. package/lib/test-helpers/ClassMirrorBuilder.js.map +1 -0
  76. package/lib/test-helpers/DocCommentAnnotationBuilder.d.ts +6 -0
  77. package/lib/test-helpers/DocCommentAnnotationBuilder.js +21 -0
  78. package/lib/test-helpers/DocCommentAnnotationBuilder.js.map +1 -0
  79. package/lib/test-helpers/DocCommentBuilder.d.ts +12 -0
  80. package/lib/test-helpers/DocCommentBuilder.js +38 -0
  81. package/lib/test-helpers/DocCommentBuilder.js.map +1 -0
  82. package/lib/test-helpers/MethodMirrorBuilder.d.ts +10 -0
  83. package/lib/test-helpers/MethodMirrorBuilder.js +34 -0
  84. package/lib/test-helpers/MethodMirrorBuilder.js.map +1 -0
  85. package/lib/test-helpers/SettingsBuilder.d.ts +8 -0
  86. package/lib/test-helpers/SettingsBuilder.js +24 -0
  87. package/lib/test-helpers/SettingsBuilder.js.map +1 -0
  88. package/lib/transpiler/factory.d.ts +6 -0
  89. package/lib/transpiler/factory.js +32 -0
  90. package/lib/transpiler/factory.js.map +1 -0
  91. package/lib/transpiler/file-container.d.ts +4 -4
  92. package/lib/transpiler/file-container.js.map +1 -1
  93. package/lib/transpiler/generator-choices.d.ts +1 -0
  94. package/lib/transpiler/generator-choices.js +3 -0
  95. package/lib/transpiler/generator-choices.js.map +1 -0
  96. package/lib/transpiler/markdown/class-file-generatorHelper.js +4 -2
  97. package/lib/transpiler/markdown/class-file-generatorHelper.js.map +1 -1
  98. package/lib/transpiler/openapi/open-api-docs-processor.d.ts +12 -0
  99. package/lib/transpiler/openapi/open-api-docs-processor.js +62 -0
  100. package/lib/transpiler/openapi/open-api-docs-processor.js.map +1 -0
  101. package/lib/transpiler/openapi/parsers/Builder.d.ts +16 -0
  102. package/lib/transpiler/openapi/parsers/Builder.js +30 -0
  103. package/lib/transpiler/openapi/parsers/Builder.js.map +1 -0
  104. package/lib/transpiler/openapi/parsers/MethodParser.d.ts +17 -0
  105. package/lib/transpiler/openapi/parsers/MethodParser.js +104 -0
  106. package/lib/transpiler/openapi/parsers/MethodParser.js.map +1 -0
  107. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.d.ts +7 -0
  108. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js +11 -0
  109. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js.map +1 -0
  110. package/lib/transpiler/openapi/parsers/ReferenceBuilder.d.ts +16 -0
  111. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js +65 -0
  112. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js.map +1 -0
  113. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.d.ts +10 -0
  114. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js +20 -0
  115. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js.map +1 -0
  116. package/lib/transpiler/openapi/parsers/ResponsesBuilder.d.ts +7 -0
  117. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js +18 -0
  118. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js.map +1 -0
  119. package/lib/transpiler/processor-type-transpiler.d.ts +2 -2
  120. package/lib/transpiler/processor-type-transpiler.js +3 -0
  121. package/lib/transpiler/processor-type-transpiler.js.map +1 -1
  122. package/lib/transpiler/transpiler.js.map +1 -1
  123. package/lib/util/error-logger.js.map +1 -1
  124. package/package.json +8 -5
  125. package/src/application/Apexdocs.ts +37 -16
  126. package/src/cli/generate.ts +13 -4
  127. package/src/model/apex-type-wrappers/ClassMirrorWrapper.ts +12 -0
  128. package/src/model/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +15 -0
  129. package/src/model/markdown-file.ts +2 -2
  130. package/src/model/markdown-generation-util/type-declaration-util.ts +1 -1
  131. package/src/model/openapi/__tests__/open-api.spec.ts +22 -0
  132. package/src/model/openapi/apex-doc-types.ts +25 -0
  133. package/src/model/openapi/open-api-types.ts +112 -0
  134. package/src/model/openapi/open-api.ts +39 -0
  135. package/src/model/openapi/openapi-type-file.ts +13 -0
  136. package/src/model/{file.ts → outputFile.ts} +1 -1
  137. package/src/model/types-repository.ts +14 -5
  138. package/src/service/__tests__/apex-file-reader.spec.ts +4 -4
  139. package/src/service/__tests__/manifest-factory.spec.ts +2 -1
  140. package/src/service/file-writer.ts +2 -2
  141. package/src/settings.ts +8 -29
  142. package/src/test-helpers/AnnotationBuilder.ts +29 -0
  143. package/src/test-helpers/ClassMirrorBuilder.ts +44 -0
  144. package/src/test-helpers/DocCommentAnnotationBuilder.ts +18 -0
  145. package/src/test-helpers/DocCommentBuilder.ts +36 -0
  146. package/src/test-helpers/MethodMirrorBuilder.ts +34 -0
  147. package/src/test-helpers/SettingsBuilder.ts +21 -0
  148. package/src/transpiler/factory.ts +33 -0
  149. package/src/transpiler/file-container.ts +4 -4
  150. package/src/transpiler/generator-choices.ts +1 -0
  151. package/src/transpiler/markdown/class-file-generatorHelper.ts +4 -2
  152. package/src/transpiler/openapi/__tests__/open-api-docs-processor.spec.ts +41 -0
  153. package/src/transpiler/openapi/open-api-docs-processor.ts +76 -0
  154. package/src/transpiler/openapi/parsers/Builder.ts +40 -0
  155. package/src/transpiler/openapi/parsers/MethodParser.ts +140 -0
  156. package/src/transpiler/openapi/parsers/ParameterObjectBuilder.ts +13 -0
  157. package/src/transpiler/openapi/parsers/ReferenceBuilder.ts +80 -0
  158. package/src/transpiler/openapi/parsers/RequestBodyBuilder.ts +19 -0
  159. package/src/transpiler/openapi/parsers/ResponsesBuilder.ts +17 -0
  160. package/src/transpiler/openapi/parsers/__tests__/MethodParser.spec.ts +44 -0
  161. package/src/transpiler/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +64 -0
  162. package/src/transpiler/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +14 -0
  163. package/src/transpiler/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +60 -0
  164. package/src/transpiler/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +51 -0
  165. package/src/transpiler/processor-type-transpiler.ts +3 -1
  166. package/tsconfig.json +4 -1
  167. package/lib/model/file.js.map +0 -1
@@ -0,0 +1,60 @@
1
+ import { RequestBodyBuilder } from '../RequestBodyBuilder';
2
+ import { Reference } from '../ReferenceBuilder';
3
+ import { ReferenceObject } from '../../../../model/openapi/open-api-types';
4
+ import { ApexDocHttpRequestBody } from '../../../../model/openapi/apex-doc-types';
5
+
6
+ jest.mock('../ReferenceBuilder', () => {
7
+ return {
8
+ ReferenceBuilder: jest.fn().mockImplementation(() => {
9
+ return {
10
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
11
+ build: (): Reference => {
12
+ return {
13
+ referencedClass: 'MySampleClass',
14
+ referenceObject: {
15
+ $ref: '/mySampleClass',
16
+ },
17
+ schema: {
18
+ type: 'string',
19
+ },
20
+ };
21
+ },
22
+ };
23
+ }),
24
+ };
25
+ });
26
+
27
+ it('should build a RequestBody based on the received schema', function () {
28
+ const apexRequestBody: ApexDocHttpRequestBody = {
29
+ description: 'Sample Request Body Description',
30
+ required: true,
31
+ schema: {
32
+ type: 'object',
33
+ properties: {
34
+ Prop1: {
35
+ type: 'string',
36
+ description: 'A Property',
37
+ },
38
+ },
39
+ },
40
+ };
41
+
42
+ const response = new RequestBodyBuilder().build(apexRequestBody);
43
+
44
+ expect(response.reference).toBeUndefined();
45
+ expect(response.body.description).toBe('Sample Request Body Description');
46
+ expect(response.body.required).toBe(true);
47
+ expect(response.body.content).toHaveProperty('application/json');
48
+ expect(response.body.content['application/json'].schema).toBe(apexRequestBody.schema);
49
+ });
50
+
51
+ it('should build a RequestBody with a reference when receiving a reference class name', function () {
52
+ const apexRequestBody: ApexDocHttpRequestBody = {
53
+ schema: 'MyClassName',
54
+ };
55
+
56
+ const response = new RequestBodyBuilder().build(apexRequestBody);
57
+
58
+ expect(response.reference).not.toBeUndefined();
59
+ expect((response.body.content['application/json']?.schema as ReferenceObject).$ref).toBe('/mySampleClass');
60
+ });
@@ -0,0 +1,51 @@
1
+ import { ResponsesBuilder } from '../ResponsesBuilder';
2
+ import { Reference } from '../ReferenceBuilder';
3
+ import { ApexDocHttpResponse } from '../../../../model/openapi/apex-doc-types';
4
+
5
+ jest.mock('../ReferenceBuilder', () => {
6
+ return {
7
+ ReferenceBuilder: jest.fn().mockImplementation(() => {
8
+ return {
9
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
10
+ build: (): Reference => {
11
+ return {
12
+ referencedClass: 'MySampleClass',
13
+ referenceObject: {
14
+ $ref: '/mySampleClass',
15
+ },
16
+ schema: {
17
+ type: 'string',
18
+ },
19
+ };
20
+ },
21
+ };
22
+ }),
23
+ };
24
+ });
25
+
26
+ it('should build a ResponseObject based on the received schema', function () {
27
+ const apexDocResponse: ApexDocHttpResponse = {
28
+ statusCode: 200,
29
+ schema: {
30
+ type: 'string',
31
+ },
32
+ };
33
+
34
+ const response = new ResponsesBuilder().build(apexDocResponse);
35
+
36
+ expect(response.reference).toBeUndefined();
37
+ expect(response.body.description).toContain('200');
38
+ expect(response.body.content).toHaveProperty('application/json');
39
+ expect(response.body.content!['application/json'].schema).toBe(apexDocResponse.schema);
40
+ });
41
+
42
+ it('should build a ResponseObject with a reference', function () {
43
+ const apexDocResponse: ApexDocHttpResponse = {
44
+ statusCode: 200,
45
+ schema: 'SomeClass',
46
+ };
47
+
48
+ const response = new ResponsesBuilder().build(apexDocResponse);
49
+
50
+ expect(response.reference).not.toBeUndefined();
51
+ });
@@ -12,5 +12,7 @@ export default abstract class ProcessorTypeTranspiler {
12
12
 
13
13
  abstract fileBuilder(): FileContainer;
14
14
 
15
- abstract getLinkingStrategy(): LinkingStrategy;
15
+ getLinkingStrategy(): LinkingStrategy {
16
+ return 'root-relative';
17
+ }
16
18
  }
package/tsconfig.json CHANGED
@@ -5,7 +5,10 @@
5
5
  "declaration": true,
6
6
  "outDir": "./lib",
7
7
  "strict": true,
8
- "sourceMap": true
8
+ "sourceMap": true,
9
+ "lib": [
10
+ "ES2021"
11
+ ]
9
12
  },
10
13
  "include": [
11
14
  "src"
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/model/file.ts"],"names":[],"mappings":";;;AAAA,2BAA4B;AAC5B,0CAAuC;AAEvC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;IAClC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;CAChE,CAAC,CAAC;AAEH,MAAsB,IAAI;IAGxB,YAAmB,QAAgB,EAAS,GAAW;QAApC,aAAQ,GAAR,QAAQ,CAAQ;QAAS,QAAG,GAAH,GAAG,CAAQ;QAFvD,cAAS,GAAG,EAAE,CAAC;IAE2C,CAAC;IAI3D,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,UAAU,GAAG,IAAI;QACrC,MAAM,YAAY,GAAG,UAAU,IAAI,mBAAQ,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC;QACvE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;IACzB,CAAC;CACF;AArBD,oBAqBC"}