@rxap/schematics-open-api 13.0.0-next.1 → 13.0.0-next.4
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/CHANGELOG.md +30 -0
- package/package.json +5 -4
- package/src/lib/generate-operation.js +1 -1
- package/src/lib/generate-operation.js.map +1 -1
- package/src/lib/generate-parameters.js +27 -2
- package/src/lib/generate-parameters.js.map +1 -1
- package/src/lib/types.d.ts +5 -0
- package/src/lib/types.js +10 -1
- package/src/lib/types.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,36 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [13.0.0-next.4](https://gitlab.com/rxap/packages/compare/@rxap/schematics-open-api@13.0.0-next.3...@rxap/schematics-open-api@13.0.0-next.4) (2022-05-23)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update typescript generator package ([3bd311c](https://gitlab.com/rxap/packages/commit/3bd311ca5697bdbed598cdf8c9ec44f297fd2215))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [13.0.0-next.3](https://gitlab.com/rxap/packages/compare/@rxap/schematics-open-api@13.0.0-next.2...@rxap/schematics-open-api@13.0.0-next.3) (2022-05-09)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* convert ref into object for parameters ([81f8f9e](https://gitlab.com/rxap/packages/commit/81f8f9e02b8feffe24ca43ee0684740bd59e0f88))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# [13.0.0-next.2](https://gitlab.com/rxap/packages/compare/@rxap/schematics-open-api@13.0.0-next.1...@rxap/schematics-open-api@13.0.0-next.2) (2022-05-09)
|
|
29
|
+
|
|
30
|
+
**Note:** Version bump only for package @rxap/schematics-open-api
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
6
36
|
# [13.0.0-next.1](https://gitlab.com/rxap/packages/compare/@rxap/schematics-open-api@13.0.0-next.0...@rxap/schematics-open-api@13.0.0-next.1) (2022-03-23)
|
|
7
37
|
|
|
8
38
|
|
package/package.json
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rxap/schematics-open-api",
|
|
3
|
-
"version": "13.0.0-next.
|
|
3
|
+
"version": "13.0.0-next.4",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@rxap/json-schema-to-typescript": "^12.0.9",
|
|
6
|
-
"openapi-types": "^10.0.0",
|
|
7
5
|
"tslib": "^2.3.1",
|
|
8
6
|
"semver": "^7.3.5"
|
|
9
7
|
},
|
|
@@ -11,7 +9,8 @@
|
|
|
11
9
|
"ng-update": {
|
|
12
10
|
"migrations": "./migration.json",
|
|
13
11
|
"packageGroup": [
|
|
14
|
-
"@rxap/schematics-open-api"
|
|
12
|
+
"@rxap/schematics-open-api",
|
|
13
|
+
"@rxap/schematics-utilities"
|
|
15
14
|
]
|
|
16
15
|
},
|
|
17
16
|
"publishConfig": {
|
|
@@ -38,7 +37,9 @@
|
|
|
38
37
|
"email": "incoming+rxap-packages-14898188-issue-@incoming.gitlab.com"
|
|
39
38
|
},
|
|
40
39
|
"peerDependencies": {
|
|
40
|
+
"@rxap/json-schema-to-typescript": "^13.0.0-next.1",
|
|
41
41
|
"@rxap/schematics-utilities": "^13.0.0-next.1",
|
|
42
|
+
"openapi-types": "^10.0.0",
|
|
42
43
|
"ts-morph": "^13.0.3"
|
|
43
44
|
},
|
|
44
45
|
"typings": "./src/index.d.ts"
|
|
@@ -38,7 +38,7 @@ function GenerateOperation(openapi, project, options, generatorFunctionList) {
|
|
|
38
38
|
yield generatorFunction(parameters);
|
|
39
39
|
}
|
|
40
40
|
catch (e) {
|
|
41
|
-
console.error(`Failed to generate [${generatorFunction}] for operation: ${operation.operationId}`);
|
|
41
|
+
console.error(`Failed to generate [${generatorFunction === null || generatorFunction === void 0 ? void 0 : generatorFunction.name}] for operation: ${operation.operationId}`);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-operation.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-operation.ts"],"names":[],"mappings":";;;;AACA,+DAA0D;AAC1D,mEAA+D;AAC/D,yEAAoE;AAEpE,mCAKiB;AACjB,+DAA2D;AAC3D,mEAA8D;AAC9D,2DAAuD;AACvD,+DAA2D;AAE3D,SAAsB,iBAAiB,CACrC,OAA2B,EAC3B,OAAgB,EAChB,OAAgB,EAChB,qBAAmD;;;QAEnD,MAAM,UAAU,GAA+B,MAAA,MAAC,OAAe,CAAC,UAAU,mCAAK,OAAe,CAAC,WAAW,mCAAI,EAAE,CAAC;QAEjH,MAAM,wCAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE9C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAE3D,IAAI,OAAO,EAAE;gBAEX,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,6BAAY,CAAC,EAAE;oBAE9D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBAElC,IAAI,uCAAiB,CAAC,SAAS,CAAC,EAAE;wBAEhC,IAAI,kCAAe,CAAC,CAAE,QAAQ,CAAE,CAAC,CAAC,SAAS,CAAC,EAAE;4BAE5C,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC;yBAE5D;6BAAM;4BAEL,IAAI,sBAAc,CAAC,SAAS,CAAC,EAAE;gCAE7B,MAAM,wCAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;gCACzD,MAAM,2CAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;gCAC1D,MAAM,oCAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;gCAEvD,KAAK,MAAM,iBAAiB,IAAI,qBAAqB,EAAE;oCAErD,IAAI;wCACF,MAAM,UAAU,mCACX,SAAS,KACZ,UAAU;4CACV,MAAM;4CACN,IAAI;4CACJ,OAAO;4CACP,OAAO,GACR,CAAA;wCACD,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;qCACrC;oCAAC,OAAO,CAAC,EAAE;wCACV,OAAO,CAAC,KAAK,CAAC,uBAAuB,iBAAiB,oBAAoB,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-operation.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-operation.ts"],"names":[],"mappings":";;;;AACA,+DAA0D;AAC1D,mEAA+D;AAC/D,yEAAoE;AAEpE,mCAKiB;AACjB,+DAA2D;AAC3D,mEAA8D;AAC9D,2DAAuD;AACvD,+DAA2D;AAE3D,SAAsB,iBAAiB,CACrC,OAA2B,EAC3B,OAAgB,EAChB,OAAgB,EAChB,qBAAmD;;;QAEnD,MAAM,UAAU,GAA+B,MAAA,MAAC,OAAe,CAAC,UAAU,mCAAK,OAAe,CAAC,WAAW,mCAAI,EAAE,CAAC;QAEjH,MAAM,wCAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE9C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAE3D,IAAI,OAAO,EAAE;gBAEX,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,6BAAY,CAAC,EAAE;oBAE9D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBAElC,IAAI,uCAAiB,CAAC,SAAS,CAAC,EAAE;wBAEhC,IAAI,kCAAe,CAAC,CAAE,QAAQ,CAAE,CAAC,CAAC,SAAS,CAAC,EAAE;4BAE5C,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC;yBAE5D;6BAAM;4BAEL,IAAI,sBAAc,CAAC,SAAS,CAAC,EAAE;gCAE7B,MAAM,wCAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;gCACzD,MAAM,2CAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;gCAC1D,MAAM,oCAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;gCAEvD,KAAK,MAAM,iBAAiB,IAAI,qBAAqB,EAAE;oCAErD,IAAI;wCACF,MAAM,UAAU,mCACX,SAAS,KACZ,UAAU;4CACV,MAAM;4CACN,IAAI;4CACJ,OAAO;4CACP,OAAO,GACR,CAAA;wCACD,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;qCACrC;oCAAC,OAAO,CAAC,EAAE;wCACV,OAAO,CAAC,KAAK,CAAC,uBAAuB,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,oBAAoB,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;qCAC1G;iCAEF;6BAEF;iCAAM;gCACL,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;6BAC3D;yBAEF;qBAEF;iBAEF;aAEF;SAEF;;CACF;AA/DD,8CA+DC"}
|
|
@@ -12,10 +12,35 @@ function GenerateParameters(operation, project, components) {
|
|
|
12
12
|
const operationId = operation.operationId;
|
|
13
13
|
const properties = {};
|
|
14
14
|
const required = [];
|
|
15
|
-
|
|
15
|
+
const parameters = operation.parameters.filter(param => !is_reference_object_1.IsReferenceObject(param) && param.in !== 'header');
|
|
16
|
+
for (const parameter of operation.parameters.filter(param => is_reference_object_1.IsReferenceObject(param))) {
|
|
17
|
+
if (is_reference_object_1.IsReferenceObject(parameter)) {
|
|
18
|
+
const ref = parameter.$ref;
|
|
19
|
+
const segments = ref.split('/');
|
|
20
|
+
const hashTag = segments.shift();
|
|
21
|
+
const componentsSegment = segments.shift();
|
|
22
|
+
const group = segments.shift();
|
|
23
|
+
const name = segments.shift();
|
|
24
|
+
if (hashTag !== '#') {
|
|
25
|
+
throw new Error('Could not parse ref: ' + ref);
|
|
26
|
+
}
|
|
27
|
+
if (componentsSegment !== 'components') {
|
|
28
|
+
throw new Error('Could not parse ref: ' + ref);
|
|
29
|
+
}
|
|
30
|
+
if (!group || !components[group]) {
|
|
31
|
+
throw new Error(`Group '${group}' does not exist in the components object with ref: ${ref}`);
|
|
32
|
+
}
|
|
33
|
+
const component = components[group];
|
|
34
|
+
if (!name || !component[name]) {
|
|
35
|
+
throw new Error(`Could not find '${name}' in group '${group} with ref: ${ref}`);
|
|
36
|
+
}
|
|
37
|
+
parameters.push(component[name]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (parameters.some(parameter => is_reference_object_1.IsReferenceObject(parameter))) {
|
|
16
41
|
throw new Error('Reference object are not supported in the parameter definition!');
|
|
17
42
|
}
|
|
18
|
-
for (const parameter of
|
|
43
|
+
for (const parameter of parameters) {
|
|
19
44
|
if (is_reference_object_1.IsReferenceObject(parameter)) {
|
|
20
45
|
throw new Error('FATAL: Reference object are not supported in the parameter definition!');
|
|
21
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-parameters.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-parameters.ts"],"names":[],"mappings":";;;;AAAA,yEAAoE;AACpE,qCAAsE;AAEtE,+EAA+E;AAI/E,SAAsB,kBAAkB,CACtC,SAAoC,EACpC,OAAgB,EAChB,UAAsC;;;QAGtC,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE;YAEhF,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YAE1C,MAAM,UAAU,GAAyF,EAAE,CAAC;YAC5G,MAAM,QAAQ,GAA2F,EAAE,CAAC;YAE5G,
|
|
1
|
+
{"version":3,"file":"generate-parameters.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-parameters.ts"],"names":[],"mappings":"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"}
|
package/src/lib/types.d.ts
CHANGED
|
@@ -10,6 +10,11 @@ export interface GenerateParameter<Options extends OpenApiSchemaBase = OpenApiSc
|
|
|
10
10
|
components: OpenAPIV3.ComponentsObject;
|
|
11
11
|
options: Options;
|
|
12
12
|
}
|
|
13
|
+
export interface OperationObjectWithMetadata extends OpenAPIV3.OperationObject {
|
|
14
|
+
path: string;
|
|
15
|
+
method: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function GenerateParameterToOperationObjectWithMetadata(parameter: GenerateParameter): OperationObjectWithMetadata;
|
|
13
18
|
export declare function HasOperationId(operation: OpenAPIV3.OperationObject): operation is OperationObject;
|
|
14
19
|
export declare function AssertWithOperationId(operation: OpenAPIV3.OperationObject): asserts operation is OperationObject;
|
|
15
20
|
export declare type GeneratorFunction<Options extends OpenApiSchemaBase = OpenApiSchemaBase> = (parameters: GenerateParameter<Options>) => Promise<void>;
|
package/src/lib/types.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AssertWithOperationId = exports.HasOperationId = void 0;
|
|
3
|
+
exports.AssertWithOperationId = exports.HasOperationId = exports.GenerateParameterToOperationObjectWithMetadata = void 0;
|
|
4
|
+
function GenerateParameterToOperationObjectWithMetadata(parameter) {
|
|
5
|
+
const blacklist = ['project', 'options', 'components'];
|
|
6
|
+
const copy = {};
|
|
7
|
+
for (const key of Object.keys(parameter).filter(k => !blacklist.includes(k))) {
|
|
8
|
+
copy[key] = parameter[key];
|
|
9
|
+
}
|
|
10
|
+
return copy;
|
|
11
|
+
}
|
|
12
|
+
exports.GenerateParameterToOperationObjectWithMetadata = GenerateParameterToOperationObjectWithMetadata;
|
|
4
13
|
function HasOperationId(operation) {
|
|
5
14
|
return !!operation.operationId;
|
|
6
15
|
}
|
package/src/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/types.ts"],"names":[],"mappings":";;;AAkBA,SAAgB,8CAA8C,CAAC,SAA4B;IACzF,MAAM,SAAS,GAAG,CAAC,SAAS,EAAC,SAAS,EAAC,YAAY,CAAC,CAAC;IACrD,MAAM,IAAI,GAAQ,EAAE,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5E,IAAI,CAAC,GAAG,CAAC,GAAI,SAAiB,CAAC,GAAG,CAAC,CAAC;KACrC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAPD,wGAOC;AAED,SAAgB,cAAc,CAAC,SAAoC;IACjE,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAA;AAChC,CAAC;AAFD,wCAEC;AAED,SAAgB,qBAAqB,CAAC,SAAoC;IACxE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;KAC7D;AACH,CAAC;AAJD,sDAIC"}
|