@cparra/apexdocs 2.12.0 → 2.13.0-alpha.1
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.
- package/docs/restapi.json +14 -0
- package/lib/model/openapi/open-api-types.d.ts +5 -0
- package/lib/model/openapi/open-api.d.ts +2 -1
- package/lib/model/openapi/open-api.js +1 -0
- package/lib/model/openapi/open-api.js.map +1 -1
- package/lib/transpiler/openapi/open-api-docs-processor.js +12 -6
- package/lib/transpiler/openapi/open-api-docs-processor.js.map +1 -1
- package/lib/transpiler/openapi/parsers/MethodParser.d.ts +1 -1
- package/lib/transpiler/openapi/parsers/MethodParser.js +2 -1
- package/lib/transpiler/openapi/parsers/MethodParser.js.map +1 -1
- package/lib/transpiler/openapi/parsers/ReferenceBuilder.d.ts +1 -1
- package/lib/transpiler/openapi/parsers/ReferenceBuilder.js.map +1 -1
- package/package.json +1 -1
- package/src/model/openapi/open-api-types.ts +6 -0
- package/src/model/openapi/open-api.ts +3 -1
- package/src/transpiler/openapi/open-api-docs-processor.ts +12 -5
- package/src/transpiler/openapi/parsers/MethodParser.ts +2 -1
- package/src/transpiler/openapi/parsers/ReferenceBuilder.ts +2 -2
package/docs/restapi.json
CHANGED
|
@@ -402,6 +402,20 @@
|
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
404
|
},
|
|
405
|
+
"tags": [
|
|
406
|
+
{
|
|
407
|
+
"name": "Account",
|
|
408
|
+
"description": "Account related operations"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"name": "Contact",
|
|
412
|
+
"description": "Contact related operations"
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"name": "Order",
|
|
416
|
+
"description": "Order related operations"
|
|
417
|
+
}
|
|
418
|
+
],
|
|
405
419
|
"components": {
|
|
406
420
|
"schemas": {
|
|
407
421
|
"SampleClass": {
|
|
@@ -17,6 +17,7 @@ export type PathItemObject = {
|
|
|
17
17
|
patch?: OperationObject;
|
|
18
18
|
};
|
|
19
19
|
export type OperationObject = {
|
|
20
|
+
tags?: string[];
|
|
20
21
|
description?: string;
|
|
21
22
|
requestBody?: RequestBody;
|
|
22
23
|
parameters?: ParameterObject[];
|
|
@@ -85,3 +86,7 @@ export type ComponentsObject = {
|
|
|
85
86
|
[index: string]: SchemaObject;
|
|
86
87
|
};
|
|
87
88
|
};
|
|
89
|
+
export type TagObject = {
|
|
90
|
+
name: string;
|
|
91
|
+
description?: string;
|
|
92
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentsObject, InfoObject, PathsObject, ServerObject } from './open-api-types';
|
|
1
|
+
import { ComponentsObject, InfoObject, PathsObject, ServerObject, TagObject } from './open-api-types';
|
|
2
2
|
/**
|
|
3
3
|
* Represents the OpenApi 3.1.0 spec
|
|
4
4
|
* https://spec.openapis.org/oas/v3.1.0
|
|
@@ -7,6 +7,7 @@ export declare class OpenApi {
|
|
|
7
7
|
private namespace?;
|
|
8
8
|
openapi: string;
|
|
9
9
|
info: InfoObject;
|
|
10
|
+
tags: TagObject[];
|
|
10
11
|
paths: PathsObject;
|
|
11
12
|
servers: ServerObject[];
|
|
12
13
|
components?: ComponentsObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-api.js","sourceRoot":"","sources":["../../../src/model/openapi/open-api.ts"],"names":[],"mappings":";;;AAEA,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC;;;GAGG;AACH,MAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"open-api.js","sourceRoot":"","sources":["../../../src/model/openapi/open-api.ts"],"names":[],"mappings":";;;AAEA,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC;;;GAGG;AACH,MAAa,OAAO;IAQlB,YAAY,KAAa,EAAE,OAAe,EAAU,SAAkB;QAAlB,cAAS,GAAT,SAAS,CAAS;QAPtE,YAAO,GAAG,gBAAgB,CAAC;QAQzB,IAAI,CAAC,IAAI,GAAG;YACV,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,OAAO;SACjB,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG;YACb;gBACE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE;aACzB;SACF,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,UAAU,CAAC;SACnB;QAED,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;IAC3C,CAAC;CACF;AA/BD,0BA+BC"}
|
|
@@ -25,7 +25,7 @@ class OpenApiDocsProcessor extends processor_type_transpiler_1.default {
|
|
|
25
25
|
return this._fileContainer;
|
|
26
26
|
}
|
|
27
27
|
onProcess(type) {
|
|
28
|
-
var _a;
|
|
28
|
+
var _a, _b;
|
|
29
29
|
logger_1.Logger.logSingle(`Processing ${type.name}`, false, 'green', false);
|
|
30
30
|
const endpointPath = this.getEndpointPath(type);
|
|
31
31
|
if (!endpointPath) {
|
|
@@ -37,17 +37,23 @@ class OpenApiDocsProcessor extends processor_type_transpiler_1.default {
|
|
|
37
37
|
}
|
|
38
38
|
// We can safely cast to a ClassMirror, since only these support the @RestResource annotation
|
|
39
39
|
const typeAsClass = type;
|
|
40
|
+
// Add tags for this Apex class to the OpenApi model
|
|
41
|
+
const tagName = endpointPath.replaceAll('/', '');
|
|
42
|
+
this.openApiModel.tags.push({
|
|
43
|
+
name: tagName,
|
|
44
|
+
description: (_b = type.docComment) === null || _b === void 0 ? void 0 : _b.description,
|
|
45
|
+
});
|
|
40
46
|
const parser = new MethodParser_1.MethodParser(this.openApiModel);
|
|
41
47
|
// GET
|
|
42
|
-
parser.parseMethod(typeAsClass, endpointPath, 'get');
|
|
48
|
+
parser.parseMethod(typeAsClass, endpointPath, 'get', tagName);
|
|
43
49
|
// PATCH
|
|
44
|
-
parser.parseMethod(typeAsClass, endpointPath, 'patch');
|
|
50
|
+
parser.parseMethod(typeAsClass, endpointPath, 'patch', tagName);
|
|
45
51
|
// POST
|
|
46
|
-
parser.parseMethod(typeAsClass, endpointPath, 'post');
|
|
52
|
+
parser.parseMethod(typeAsClass, endpointPath, 'post', tagName);
|
|
47
53
|
// PUT
|
|
48
|
-
parser.parseMethod(typeAsClass, endpointPath, 'put');
|
|
54
|
+
parser.parseMethod(typeAsClass, endpointPath, 'put', tagName);
|
|
49
55
|
// DELETE
|
|
50
|
-
parser.parseMethod(typeAsClass, endpointPath, 'delete');
|
|
56
|
+
parser.parseMethod(typeAsClass, endpointPath, 'delete', tagName);
|
|
51
57
|
}
|
|
52
58
|
getEndpointPath(type) {
|
|
53
59
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-api-docs-processor.js","sourceRoot":"","sources":["../../../src/transpiler/openapi/open-api-docs-processor.ts"],"names":[],"mappings":";;;AAAA,4EAAmE;AACnE,sDAAkD;AAElD,6EAAwE;AACxE,8CAA2C;AAC3C,2DAAuD;AACvD,6CAA0C;AAC1C,yDAAsD;AAEtD,MAAa,oBAAqB,SAAQ,mCAAuB;IAI/D;QACE,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"open-api-docs-processor.js","sourceRoot":"","sources":["../../../src/transpiler/openapi/open-api-docs-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ type HttpOperations = 'get' | 'put' | 'post' | 'delete' | 'patch';
|
|
|
7
7
|
export declare class MethodParser {
|
|
8
8
|
openApiModel: OpenApi;
|
|
9
9
|
constructor(openApiModel: OpenApi);
|
|
10
|
-
parseMethod(classMirror: ClassMirror, httpUrlEndpoint: string, httpMethodKey: HttpOperations): void;
|
|
10
|
+
parseMethod(classMirror: ClassMirror, httpUrlEndpoint: string, httpMethodKey: HttpOperations, tag: string): void;
|
|
11
11
|
private parseHttpAnnotation;
|
|
12
12
|
private addToOpenApiStrategy;
|
|
13
13
|
private addRequestBodyToOpenApi;
|
|
@@ -14,7 +14,7 @@ class MethodParser {
|
|
|
14
14
|
constructor(openApiModel) {
|
|
15
15
|
this.openApiModel = openApiModel;
|
|
16
16
|
}
|
|
17
|
-
parseMethod(classMirror, httpUrlEndpoint, httpMethodKey) {
|
|
17
|
+
parseMethod(classMirror, httpUrlEndpoint, httpMethodKey, tag) {
|
|
18
18
|
var _a;
|
|
19
19
|
const classMirrorWrapper = new ClassMirrorWrapper_1.ClassMirrorWrapper(classMirror);
|
|
20
20
|
// Apex supports HttpGet, HttpPut, HttpPost, HttpDelete, and HttpPatch, so we search for a method
|
|
@@ -28,6 +28,7 @@ class MethodParser {
|
|
|
28
28
|
this.openApiModel.paths[httpUrlEndpoint][httpMethodKey] = {};
|
|
29
29
|
if ((_a = httpMethod.docComment) === null || _a === void 0 ? void 0 : _a.description) {
|
|
30
30
|
this.openApiModel.paths[httpUrlEndpoint][httpMethodKey].description = httpMethod.docComment.description;
|
|
31
|
+
this.openApiModel.paths[httpUrlEndpoint][httpMethodKey].tags = [tag];
|
|
31
32
|
}
|
|
32
33
|
this.parseHttpAnnotation(httpMethod, httpUrlEndpoint, httpMethodKey, 'http-request-body', this.addRequestBodyToOpenApi.bind(this), this.fallbackHttpRequestBodyParser(httpUrlEndpoint, httpMethodKey));
|
|
33
34
|
this.parseHttpAnnotation(httpMethod, httpUrlEndpoint, httpMethodKey, 'http-parameter', this.addParametersToOpenApi.bind(this));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MethodParser.js","sourceRoot":"","sources":["../../../../src/transpiler/openapi/parsers/MethodParser.ts"],"names":[],"mappings":";;;AAEA,gCAAgC;AAChC,6FAA0F;AAC1F,yDAAiE;AACjE,qEAAkE;AAClE,yDAAsD;AAMtD,6DAA0D;AAS1D;;GAEG;AACH,MAAa,YAAY;IACvB,YAAmB,YAAqB;QAArB,iBAAY,GAAZ,YAAY,CAAS;IAAG,CAAC;IAErC,WAAW,CAAC,WAAwB,EAAE,eAAuB,EAAE,aAA6B;;
|
|
1
|
+
{"version":3,"file":"MethodParser.js","sourceRoot":"","sources":["../../../../src/transpiler/openapi/parsers/MethodParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReferenceObject, SchemaObject, SchemaObjectArray, SchemaObjectObject } from '../../../model/openapi/open-api-types';
|
|
2
|
-
import { ReferencedType } from '@cparra/apex-reflection
|
|
2
|
+
import { ReferencedType } from '@cparra/apex-reflection';
|
|
3
3
|
export declare class ReferenceBuilder {
|
|
4
4
|
build(referencedTypeName: string): Reference;
|
|
5
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferenceBuilder.js","sourceRoot":"","sources":["../../../../src/transpiler/openapi/parsers/ReferenceBuilder.ts"],"names":[],"mappings":";;;AAAA,gCAAgC;AAQhC,sEAA8E;AAO9E,MAAa,gBAAgB;IAA7B;QAwMU,sBAAiB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"ReferenceBuilder.js","sourceRoot":"","sources":["../../../../src/transpiler/openapi/parsers/ReferenceBuilder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -26,6 +26,7 @@ export type PathItemObject = {
|
|
|
26
26
|
|
|
27
27
|
// verified
|
|
28
28
|
export type OperationObject = {
|
|
29
|
+
tags?: string[];
|
|
29
30
|
description?: string;
|
|
30
31
|
requestBody?: RequestBody;
|
|
31
32
|
parameters?: ParameterObject[];
|
|
@@ -110,3 +111,8 @@ export type ComponentsObject = {
|
|
|
110
111
|
[index: string]: SchemaObject;
|
|
111
112
|
};
|
|
112
113
|
};
|
|
114
|
+
|
|
115
|
+
export type TagObject = {
|
|
116
|
+
name: string;
|
|
117
|
+
description?: string;
|
|
118
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentsObject, InfoObject, PathsObject, ServerObject } from './open-api-types';
|
|
1
|
+
import { ComponentsObject, InfoObject, PathsObject, ServerObject, TagObject } from './open-api-types';
|
|
2
2
|
|
|
3
3
|
const OPEN_API_VERSION = '3.1.0';
|
|
4
4
|
const SERVER_URL = '/services/apexrest/';
|
|
@@ -10,6 +10,7 @@ const SERVER_URL = '/services/apexrest/';
|
|
|
10
10
|
export class OpenApi {
|
|
11
11
|
openapi = OPEN_API_VERSION;
|
|
12
12
|
info: InfoObject;
|
|
13
|
+
tags: TagObject[];
|
|
13
14
|
paths: PathsObject;
|
|
14
15
|
servers: ServerObject[];
|
|
15
16
|
components?: ComponentsObject;
|
|
@@ -27,6 +28,7 @@ export class OpenApi {
|
|
|
27
28
|
];
|
|
28
29
|
|
|
29
30
|
this.paths = {};
|
|
31
|
+
this.tags = [];
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
private getServerUrl(): string {
|
|
@@ -41,22 +41,29 @@ export class OpenApiDocsProcessor extends ProcessorTypeTranspiler {
|
|
|
41
41
|
// We can safely cast to a ClassMirror, since only these support the @RestResource annotation
|
|
42
42
|
const typeAsClass = type as ClassMirror;
|
|
43
43
|
|
|
44
|
+
// Add tags for this Apex class to the OpenApi model
|
|
45
|
+
const tagName = endpointPath.replaceAll('/', '');
|
|
46
|
+
this.openApiModel.tags.push({
|
|
47
|
+
name: tagName,
|
|
48
|
+
description: type.docComment?.description,
|
|
49
|
+
});
|
|
50
|
+
|
|
44
51
|
const parser = new MethodParser(this.openApiModel);
|
|
45
52
|
|
|
46
53
|
// GET
|
|
47
|
-
parser.parseMethod(typeAsClass, endpointPath, 'get');
|
|
54
|
+
parser.parseMethod(typeAsClass, endpointPath, 'get', tagName);
|
|
48
55
|
|
|
49
56
|
// PATCH
|
|
50
|
-
parser.parseMethod(typeAsClass, endpointPath, 'patch');
|
|
57
|
+
parser.parseMethod(typeAsClass, endpointPath, 'patch', tagName);
|
|
51
58
|
|
|
52
59
|
// POST
|
|
53
|
-
parser.parseMethod(typeAsClass, endpointPath, 'post');
|
|
60
|
+
parser.parseMethod(typeAsClass, endpointPath, 'post', tagName);
|
|
54
61
|
|
|
55
62
|
// PUT
|
|
56
|
-
parser.parseMethod(typeAsClass, endpointPath, 'put');
|
|
63
|
+
parser.parseMethod(typeAsClass, endpointPath, 'put', tagName);
|
|
57
64
|
|
|
58
65
|
// DELETE
|
|
59
|
-
parser.parseMethod(typeAsClass, endpointPath, 'delete');
|
|
66
|
+
parser.parseMethod(typeAsClass, endpointPath, 'delete', tagName);
|
|
60
67
|
}
|
|
61
68
|
|
|
62
69
|
onAfterProcess: ((types: Type[]) => void) | undefined = () => {
|
|
@@ -25,7 +25,7 @@ type HttpOperations = 'get' | 'put' | 'post' | 'delete' | 'patch';
|
|
|
25
25
|
export class MethodParser {
|
|
26
26
|
constructor(public openApiModel: OpenApi) {}
|
|
27
27
|
|
|
28
|
-
public parseMethod(classMirror: ClassMirror, httpUrlEndpoint: string, httpMethodKey: HttpOperations) {
|
|
28
|
+
public parseMethod(classMirror: ClassMirror, httpUrlEndpoint: string, httpMethodKey: HttpOperations, tag: string) {
|
|
29
29
|
const classMirrorWrapper = new ClassMirrorWrapper(classMirror);
|
|
30
30
|
// Apex supports HttpGet, HttpPut, HttpPost, HttpDelete, and HttpPatch, so we search for a method
|
|
31
31
|
// that has one of those annotations.
|
|
@@ -40,6 +40,7 @@ export class MethodParser {
|
|
|
40
40
|
this.openApiModel.paths[httpUrlEndpoint][httpMethodKey] = {};
|
|
41
41
|
if (httpMethod.docComment?.description) {
|
|
42
42
|
this.openApiModel.paths[httpUrlEndpoint][httpMethodKey]!.description = httpMethod.docComment.description;
|
|
43
|
+
this.openApiModel.paths[httpUrlEndpoint][httpMethodKey]!.tags = [tag];
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
this.parseHttpAnnotation<ApexDocHttpRequestBody>(
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from '../../../model/openapi/open-api-types';
|
|
9
9
|
import { TypeBundle, TypesRepository } from '../../../model/types-repository';
|
|
10
10
|
import { ClassMirror, DocCommentAnnotation, FieldMirror, PropertyMirror } from '@cparra/apex-reflection';
|
|
11
|
-
import { ListObjectType, ReferencedType } from '@cparra/apex-reflection
|
|
11
|
+
import { ListObjectType, ReferencedType } from '@cparra/apex-reflection';
|
|
12
12
|
import { ApexDocSchemaObject } from '../../../model/openapi/apex-doc-types';
|
|
13
13
|
|
|
14
14
|
type TypeBundleWithIsCollection = TypeBundle & { isCollection: boolean };
|
|
@@ -213,7 +213,7 @@ export class ReferenceBuilder {
|
|
|
213
213
|
};
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
private isReferenceString = (targetObject:
|
|
216
|
+
private isReferenceString = (targetObject: unknown): targetObject is string => {
|
|
217
217
|
return typeof targetObject === 'string' || targetObject instanceof String;
|
|
218
218
|
};
|
|
219
219
|
}
|