@rxap/schematics-open-api 15.0.0 → 16.0.0-dev.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.
- package/CHANGELOG.md +30 -0
- package/README.md +1 -1
- package/migration.json +1 -1
- package/package.json +5 -5
- package/src/lib/coerce-open-api-project.js +2 -2
- package/src/lib/coerce-open-api-project.js.map +1 -1
- package/src/lib/generate-components.js +1 -1
- package/src/lib/generate-components.js.map +1 -1
- package/src/lib/generate-parameters.js +1 -1
- package/src/lib/generate-parameters.js.map +1 -1
- package/src/lib/generate-request-body.js +1 -1
- package/src/lib/generate-request-body.js.map +1 -1
- package/src/lib/generate-response.js +1 -1
- package/src/lib/generate-response.js.map +1 -1
- package/src/lib/types.d.ts +3 -3
- package/src/lib/types.js +27 -3
- package/src/lib/types.js.map +1 -1
- package/src/lib/utilities/has-operation-paramters.d.ts +1 -1
- package/src/lib/utilities/has-operation-request-body.d.ts +1 -1
- package/src/lib/utilities/is-without-parameters.d.ts +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
|
+
# [16.0.0-dev.0](https://gitlab.com/rxap/packages/compare/@rxap/schematics-open-api@15.0.1...@rxap/schematics-open-api@16.0.0-dev.0) (2023-05-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### chore
|
|
10
|
+
|
|
11
|
+
* upgrade to 16.x.x ([81cd2ca](https://gitlab.com/rxap/packages/commit/81cd2cab02c29c81e50ebe1b5c699953dce528ee))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### BREAKING CHANGES
|
|
15
|
+
|
|
16
|
+
* upgrade to 16.x.x
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [15.0.1](https://gitlab.com/rxap/packages/compare/@rxap/schematics-open-api@15.0.0...@rxap/schematics-open-api@15.0.1) (2023-05-17)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* cleanup serialized open api operation object ([f5322e0](https://gitlab.com/rxap/packages/commit/f5322e050f5077d4b4a3fe5fb6f41634bd17f8d7))
|
|
28
|
+
* **schematics:** pre generate interface imports ([1b1cf87](https://gitlab.com/rxap/packages/commit/1b1cf8788e052dfd32c95be47e116aae7cae5caf))
|
|
29
|
+
* **schematics:** update open api schematics package ([cc01087](https://gitlab.com/rxap/packages/commit/cc010878bf2eee788a0f61e3b2dbfa1a08b45bd8))
|
|
30
|
+
* support open api projects with sub directories ([73c88f9](https://gitlab.com/rxap/packages/commit/73c88f9473770df4063b487d646f68243d011b1c))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
6
36
|
# [15.0.0](https://gitlab.com/rxap/packages/compare/@rxap/schematics-open-api@14.1.1...@rxap/schematics-open-api@15.0.0) (2022-12-14)
|
|
7
37
|
|
|
8
38
|
|
package/README.md
CHANGED
|
@@ -15,6 +15,6 @@
|
|
|
15
15
|
# Installation
|
|
16
16
|
|
|
17
17
|
```
|
|
18
|
-
yarn add @rxap/schematics-open-api @rxap/json-schema-to-typescript@^14.0.3 @rxap/schematics-utilities@^
|
|
18
|
+
yarn add @rxap/schematics-open-api @rxap/json-schema-to-typescript@^14.0.3 @rxap/schematics-utilities@^15.0.1
|
|
19
19
|
```
|
|
20
20
|
|
package/migration.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rxap/schematics-open-api",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "16.0.0-dev.0",
|
|
4
4
|
"dependencies": {
|
|
5
|
+
"semver": "^7.3.5",
|
|
5
6
|
"tslib": "^2.3.1"
|
|
6
7
|
},
|
|
7
8
|
"schematics": "./schematics/collection.json",
|
|
@@ -37,13 +38,12 @@
|
|
|
37
38
|
"email": "incoming+rxap-packages-14898188-issue-@incoming.gitlab.com"
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {
|
|
40
|
-
"@angular-devkit/schematics": "^
|
|
41
|
+
"@angular-devkit/schematics": "^16.0.2",
|
|
41
42
|
"@apidevtools/json-schema-ref-parser": "^9.1.0",
|
|
42
43
|
"@rxap/json-schema-to-typescript": "^14.0.3",
|
|
43
|
-
"@rxap/schematics-utilities": "^
|
|
44
|
+
"@rxap/schematics-utilities": "^16.0.0-dev.0",
|
|
44
45
|
"openapi-types": "^10.0.0",
|
|
45
|
-
"ts-morph": "^13.0.3"
|
|
46
|
-
"semver": "7.3.5"
|
|
46
|
+
"ts-morph": "^13.0.3"
|
|
47
47
|
},
|
|
48
48
|
"types": "./src/index.d.ts"
|
|
49
49
|
}
|
|
@@ -6,7 +6,7 @@ const schematics_utilities_1 = require("@rxap/schematics-utilities");
|
|
|
6
6
|
function CoerceOpenApiProject(project, prefix, directory) {
|
|
7
7
|
return (host) => {
|
|
8
8
|
const angularJson = (0, schematics_utilities_1.GetAngularJson)(host);
|
|
9
|
-
const projectName = `${directory ? directory + '-' : ''}${project}`;
|
|
9
|
+
const projectName = `${directory ? directory.split('/').join('-') + '-' : ''}${project}`;
|
|
10
10
|
if (!angularJson.projects.hasOwnProperty(projectName)) {
|
|
11
11
|
const defaultProject = angularJson.projects[angularJson.defaultProject];
|
|
12
12
|
const defaultProjectPrefix = prefix !== null && prefix !== void 0 ? prefix : defaultProject.prefix;
|
|
@@ -24,7 +24,7 @@ function CoerceOpenApiProject(project, prefix, directory) {
|
|
|
24
24
|
if (Object.keys(paths).length) {
|
|
25
25
|
for (const key of Object.keys(paths)) {
|
|
26
26
|
if (directory) {
|
|
27
|
-
if (key.match(new RegExp(`\/${directory}-${project}$`))) {
|
|
27
|
+
if (key.match(new RegExp(`\/${directory.split('/').join('-')}-${project}$`))) {
|
|
28
28
|
delete paths[key];
|
|
29
29
|
paths[key + '/*'] = [`libs/${directory}/${project}/src/lib/*`];
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerce-open-api-project.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/coerce-open-api-project.ts"],"names":[],"mappings":";;;AAAA,2DAAwF;AACxF,qEAA4D;AAE5D,SAAgB,oBAAoB,CAAC,OAAe,EAAE,MAAc,EAAE,SAAkB;IACtF,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,WAAW,GAAG,IAAA,qCAAc,EAAC,IAAI,CAAQ,CAAC;QAEhD,MAAM,WAAW,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"coerce-open-api-project.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/coerce-open-api-project.ts"],"names":[],"mappings":";;;AAAA,2DAAwF;AACxF,qEAA4D;AAE5D,SAAgB,oBAAoB,CAAC,OAAe,EAAE,MAAc,EAAE,SAAkB;IACtF,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,WAAW,GAAG,IAAA,qCAAc,EAAC,IAAI,CAAQ,CAAC;QAEhD,MAAM,WAAW,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;QAEzF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;YACrD,MAAM,cAAc,GAAS,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAC9E,MAAM,oBAAoB,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,cAAc,CAAC,MAAM,CAAC;YAC7D,OAAO,IAAA,kBAAK,EAAC;gBACX,IAAA,8BAAiB,EAAC,eAAe,EAAE,SAAS,EAAE;oBAC5C,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,IAAI,oBAAoB,IAAI,WAAW,EAAE;oBACrD,MAAM;oBACN,SAAS;iBACV,CAAC;gBACF,CAAC,IAAI,EAAE,EAAE;;oBACP,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAC7B,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,0CAAE,QAAQ,EAAE,mCAAI,IAAI,CACrD,CAAC;oBAEF,MAAM,KAAK,GAAG,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe,0CAAE,KAAK,mCAAI,EAAE,CAAC;oBAEzD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;wBAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;4BACpC,IAAI,SAAS,EAAE;gCACb,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE;oCAC5E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;oCAClB,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,SAAS,IAAI,OAAO,YAAY,CAAC,CAAC;iCAChE;6BACF;iCAAM;gCACL,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE;oCAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;oCAClB,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,OAAO,YAAY,CAAC,CAAC;iCACnD;6BACF;yBACF;wBAED,IAAI,CAAC,SAAS,CACZ,qBAAqB,EACrB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,CAC3C,CAAC;qBACH;gBACH,CAAC;aACF,CAAC,CAAC;SACJ;QAED,OAAO,IAAA,iBAAI,GAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAjDD,oDAiDC"}
|
|
@@ -6,7 +6,7 @@ const json_schema_to_typescript_1 = require("@rxap/json-schema-to-typescript");
|
|
|
6
6
|
const config_1 = require("./config");
|
|
7
7
|
function executeInterfaceBuild(components, project, schema, name) {
|
|
8
8
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
9
|
-
const generator = new json_schema_to_typescript_1.TypescriptInterfaceGenerator(Object.assign(Object.assign({}, schema), { components }), { basePath: config_1.COMPONENTS_BASE_PATH }, project);
|
|
9
|
+
const generator = new json_schema_to_typescript_1.TypescriptInterfaceGenerator(Object.assign(Object.assign({}, schema), { components }), { basePath: config_1.COMPONENTS_BASE_PATH, addImports: true }, project);
|
|
10
10
|
console.debug(`Generate component interface for: ${name}`);
|
|
11
11
|
try {
|
|
12
12
|
yield generator.build(name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-components.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-components.ts"],"names":[],"mappings":";;;;AACA,+EAA+E;AAI/E,qCAAgD;AAEhD,SAAe,qBAAqB,CAClC,UAAsC,EACtC,OAAgB,EAChB,MAAkB,EAClB,IAAY;;QAGZ,MAAM,SAAS,GAAG,IAAI,wDAA4B,iCAC3C,MAAM,KAAE,UAAU,KACvB,EAAE,QAAQ,EAAE,6BAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-components.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-components.ts"],"names":[],"mappings":";;;;AACA,+EAA+E;AAI/E,qCAAgD;AAEhD,SAAe,qBAAqB,CAClC,UAAsC,EACtC,OAAgB,EAChB,MAAkB,EAClB,IAAY;;QAGZ,MAAM,SAAS,GAAG,IAAI,wDAA4B,iCAC3C,MAAM,KAAE,UAAU,KACvB,EAAE,QAAQ,EAAE,6BAAoB,EAAE,UAAU,EAAE,IAAI,EAAE,EACpD,OAAO,CACR,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;QAE3D,IAAI;YAEF,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAE7B;QAAC,OAAO,KAAU,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,8CAA8C,IAAI,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;SACpF;IACH,CAAC;CAAA;AAED,SAAgB,kBAAkB,CAChC,UAAsC,EACtC,OAAgB;IAGhB,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,IAAI,UAAU,CAAC,OAAO,EAAE;QACtB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC/D,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;SAC5E;KACF;IAED,OAAO,WAAW,CAAC;AAErB,CAAC;AAfD,gDAeC"}
|
|
@@ -54,7 +54,7 @@ function GenerateParameters(operation, project, components) {
|
|
|
54
54
|
properties: properties,
|
|
55
55
|
required
|
|
56
56
|
};
|
|
57
|
-
const generator = new json_schema_to_typescript_1.TypescriptInterfaceGenerator(Object.assign(Object.assign({}, parametersSchema), { components }), { suffix: config_1.PARAMETER_FILE_SUFFIX, basePath: config_1.PARAMETER_BASE_PATH }, project);
|
|
57
|
+
const generator = new json_schema_to_typescript_1.TypescriptInterfaceGenerator(Object.assign(Object.assign({}, parametersSchema), { components }), { suffix: config_1.PARAMETER_FILE_SUFFIX, basePath: config_1.PARAMETER_BASE_PATH, addImports: true }, project);
|
|
58
58
|
console.debug(`Generate parameter interface for: ${operationId}`);
|
|
59
59
|
try {
|
|
60
60
|
yield generator.build(operationId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-parameters.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-parameters.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generate-parameters.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-parameters.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ function GenerateRequestBody(operation, project, components) {
|
|
|
11
11
|
const requestBodySchema = (0, get_reqeust_body_1.GetRequestBody)(operation);
|
|
12
12
|
if (requestBodySchema && !(0, any_schema_object_1.IsAnySchemaObject)(requestBodySchema) && operation.operationId) {
|
|
13
13
|
const operationId = operation.operationId;
|
|
14
|
-
const generator = new json_schema_to_typescript_1.TypescriptInterfaceGenerator(Object.assign(Object.assign({}, requestBodySchema), { components }), { suffix: config_1.REQUEST_BODY_FILE_SUFFIX, basePath: config_1.REQUEST_BODY_BASE_PATH }, project);
|
|
14
|
+
const generator = new json_schema_to_typescript_1.TypescriptInterfaceGenerator(Object.assign(Object.assign({}, requestBodySchema), { components }), { suffix: config_1.REQUEST_BODY_FILE_SUFFIX, basePath: config_1.REQUEST_BODY_BASE_PATH, addImports: true }, project);
|
|
15
15
|
console.debug(`Generate request body interface for: ${operationId}`);
|
|
16
16
|
try {
|
|
17
17
|
yield generator.build(operationId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-request-body.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-request-body.ts"],"names":[],"mappings":";;;;AAAA,+EAA+E;AAG/E,qCAA4E;AAC5E,qEAAkE;AAClE,mEAA8D;AAE9D,SAAsB,mBAAmB,CACvC,SAAoC,EACpC,OAAgB,EAChB,UAAsC;;QAGtC,MAAM,iBAAiB,GAAG,IAAA,iCAAc,EAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,iBAAiB,IAAI,CAAC,IAAA,qCAAiB,EAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE;YACvF,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YAE1C,MAAM,SAAS,GAAG,IAAI,wDAA4B,iCAC3C,iBAAiB,KAAE,UAAU,KAClC,EAAE,MAAM,EAAE,iCAAwB,EAAE,QAAQ,EAAE,+BAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-request-body.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-request-body.ts"],"names":[],"mappings":";;;;AAAA,+EAA+E;AAG/E,qCAA4E;AAC5E,qEAAkE;AAClE,mEAA8D;AAE9D,SAAsB,mBAAmB,CACvC,SAAoC,EACpC,OAAgB,EAChB,UAAsC;;QAGtC,MAAM,iBAAiB,GAAG,IAAA,iCAAc,EAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,iBAAiB,IAAI,CAAC,IAAA,qCAAiB,EAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE;YACvF,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YAE1C,MAAM,SAAS,GAAG,IAAI,wDAA4B,iCAC3C,iBAAiB,KAAE,UAAU,KAClC,EAAE,MAAM,EAAE,iCAAwB,EAAE,QAAQ,EAAE,+BAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,EACxF,OAAO,CACR,CAAC;YAEF,OAAO,CAAC,KAAK,CAAC,wCAAwC,WAAW,EAAE,CAAC,CAAC;YAErE,IAAI;gBAEF,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAEpC;YAAC,OAAO,KAAU,EAAE;gBACnB,OAAO,CAAC,KAAK,CAAC,kDAAkD,WAAW,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;aAC/F;SAEF;IAEH,CAAC;CAAA;AA7BD,kDA6BC"}
|
|
@@ -11,7 +11,7 @@ function GenerateResponse(operation, project, components) {
|
|
|
11
11
|
const response = (0, get_response_1.GetResponse)(operation);
|
|
12
12
|
if (response && !(0, any_schema_object_1.IsAnySchemaObject)(response) && operation.operationId) {
|
|
13
13
|
const operationId = operation.operationId;
|
|
14
|
-
const generator = new json_schema_to_typescript_1.TypescriptInterfaceGenerator(Object.assign(Object.assign({}, response), { components }), { suffix: config_1.RESPONSE_FILE_SUFFIX, basePath: config_1.RESPONSE_BASE_PATH }, project);
|
|
14
|
+
const generator = new json_schema_to_typescript_1.TypescriptInterfaceGenerator(Object.assign(Object.assign({}, response), { components }), { suffix: config_1.RESPONSE_FILE_SUFFIX, basePath: config_1.RESPONSE_BASE_PATH, addImports: true }, project);
|
|
15
15
|
console.debug(`Generate response interface for: ${operationId}`);
|
|
16
16
|
try {
|
|
17
17
|
yield generator.build(operationId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-response.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-response.ts"],"names":[],"mappings":";;;;AAAA,+EAA+E;AAG/E,qCAAoE;AACpE,qEAAkE;AAClE,2DAAuD;AAEvD,SAAsB,gBAAgB,CACpC,SAAoC,EACpC,OAAgB,EAChB,UAAsC;;QAGtC,MAAM,QAAQ,GAAG,IAAA,0BAAW,EAAC,SAAS,CAAC,CAAC;QAExC,IAAI,QAAQ,IAAI,CAAC,IAAA,qCAAiB,EAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE;YACrE,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YAE1C,MAAM,SAAS,GAAG,IAAI,wDAA4B,iCAC3C,QAAQ,KAAE,UAAU,KACzB,EAAE,MAAM,EAAE,6BAAoB,EAAE,QAAQ,EAAE,2BAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-response.js","sourceRoot":"","sources":["../../../../../libs/open-api/src/lib/generate-response.ts"],"names":[],"mappings":";;;;AAAA,+EAA+E;AAG/E,qCAAoE;AACpE,qEAAkE;AAClE,2DAAuD;AAEvD,SAAsB,gBAAgB,CACpC,SAAoC,EACpC,OAAgB,EAChB,UAAsC;;QAGtC,MAAM,QAAQ,GAAG,IAAA,0BAAW,EAAC,SAAS,CAAC,CAAC;QAExC,IAAI,QAAQ,IAAI,CAAC,IAAA,qCAAiB,EAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE;YACrE,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YAE1C,MAAM,SAAS,GAAG,IAAI,wDAA4B,iCAC3C,QAAQ,KAAE,UAAU,KACzB,EAAE,MAAM,EAAE,6BAAoB,EAAE,QAAQ,EAAE,2BAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,EAChF,OAAO,CACR,CAAC;YAEF,OAAO,CAAC,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;YAEjE,IAAI;gBAEF,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAEpC;YAAC,OAAO,KAAU,EAAE;gBACnB,OAAO,CAAC,KAAK,CAAC,8CAA8C,WAAW,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;aAC3F;SAEF;IAEH,CAAC;CAAA;AA7BD,4CA6BC"}
|
package/src/lib/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OpenAPIV3 } from 'openapi-types';
|
|
2
2
|
import { Project } from 'ts-morph';
|
|
3
|
-
export
|
|
3
|
+
export type OperationObject = Omit<OpenAPIV3.OperationObject, 'operationId'> & {
|
|
4
4
|
operationId: string;
|
|
5
5
|
};
|
|
6
6
|
export interface GenerateParameter<Options extends OpenApiSchemaBase = OpenApiSchemaBase> extends OperationObject {
|
|
@@ -17,7 +17,7 @@ export interface OperationObjectWithMetadata extends OpenAPIV3.OperationObject {
|
|
|
17
17
|
export declare function GenerateParameterToOperationObjectWithMetadata(parameter: GenerateParameter): OperationObjectWithMetadata;
|
|
18
18
|
export declare function HasOperationId(operation: OpenAPIV3.OperationObject): operation is OperationObject;
|
|
19
19
|
export declare function AssertWithOperationId(operation: OpenAPIV3.OperationObject): asserts operation is OperationObject;
|
|
20
|
-
export
|
|
20
|
+
export type GeneratorFunction<Options extends OpenApiSchemaBase = OpenApiSchemaBase> = (parameters: GenerateParameter<Options>) => Promise<void>;
|
|
21
21
|
export interface OpenApiSchemaBase {
|
|
22
22
|
debug?: boolean;
|
|
23
23
|
}
|
|
@@ -27,4 +27,4 @@ export interface OpenApiSchemaFromPath extends OpenApiSchemaBase {
|
|
|
27
27
|
export interface OpenApiSchemaFromUrl extends OpenApiSchemaBase {
|
|
28
28
|
url: string;
|
|
29
29
|
}
|
|
30
|
-
export
|
|
30
|
+
export type OpenApiSchema = OpenApiSchemaFromPath | OpenApiSchemaFromUrl;
|
package/src/lib/types.js
CHANGED
|
@@ -2,12 +2,36 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AssertWithOperationId = exports.HasOperationId = exports.GenerateParameterToOperationObjectWithMetadata = void 0;
|
|
4
4
|
function GenerateParameterToOperationObjectWithMetadata(parameter) {
|
|
5
|
-
const
|
|
5
|
+
const whitelist = ['method', 'path', 'operationId', 'parameters', 'responses', 'requestBody'];
|
|
6
6
|
const copy = {};
|
|
7
|
-
for (const key of Object.keys(parameter).filter(k =>
|
|
7
|
+
for (const key of Object.keys(parameter).filter(k => whitelist.includes(k))) {
|
|
8
8
|
copy[key] = parameter[key];
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
if (parameter.responses) {
|
|
11
|
+
copy.responses = {};
|
|
12
|
+
for (const status of Object.keys(parameter.responses).filter(status => Number(status) >= 200 && Number(status) < 300)) {
|
|
13
|
+
copy.responses[status] = parameter.responses[status];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function removeHumanProperties(obj) {
|
|
17
|
+
if (obj && typeof obj === 'object') {
|
|
18
|
+
if (Array.isArray(obj)) {
|
|
19
|
+
return obj.map(item => removeHumanProperties(item));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
|
25
|
+
const clean = {};
|
|
26
|
+
const blacklist = ['description', 'example', 'summary'];
|
|
27
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
28
|
+
if (!blacklist.includes(key)) {
|
|
29
|
+
clean[key] = removeHumanProperties(value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return clean;
|
|
33
|
+
}
|
|
34
|
+
return removeHumanProperties(copy);
|
|
11
35
|
}
|
|
12
36
|
exports.GenerateParameterToOperationObjectWithMetadata = GenerateParameterToOperationObjectWithMetadata;
|
|
13
37
|
function HasOperationId(operation) {
|
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":";;;AAkBA,SAAgB,8CAA8C,CAAC,SAA4B;IACzF,MAAM,SAAS,GAAG,CAAC,
|
|
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,QAAQ,EAAC,MAAM,EAAC,aAAa,EAAC,YAAY,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAQ,EAAE,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QAC3E,IAAI,CAAC,GAAG,CAAC,GAAI,SAAiB,CAAC,GAAG,CAAC,CAAC;KACrC;IACD,IAAI,SAAS,CAAC,SAAS,EAAE;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE;YACrH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACtD;KACF;IACD,SAAS,qBAAqB,CAAC,GAAQ;QACrC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACtB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;aACrD;SACF;aAAM;YACL,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,CAAC,aAAa,EAAC,SAAS,EAAC,SAAS,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;aAC3C;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AA9BD,wGA8BC;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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { OpenAPIV3 } from 'openapi-types';
|
|
2
|
-
export
|
|
2
|
+
export type OperationObjectWithParameters = Omit<OpenAPIV3.OperationObject, 'parameters'> & Required<Pick<OpenAPIV3.OperationObject, 'parameters'>>;
|
|
3
3
|
export declare function HasOperationParameters(operation: OpenAPIV3.OperationObject): operation is OperationObjectWithParameters;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { OpenAPIV3 } from 'openapi-types';
|
|
2
|
-
export
|
|
2
|
+
export type OperationObjectWithRequestBody = Omit<OpenAPIV3.OperationObject, 'requestBody'> & Required<Pick<OpenAPIV3.OperationObject, 'requestBody'>>;
|
|
3
3
|
export declare function HasOperationRequestBody(operation: OpenAPIV3.OperationObject): operation is OperationObjectWithRequestBody;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { OpenAPIV3 } from 'openapi-types';
|
|
2
|
-
export
|
|
2
|
+
export type OperationObjectWithoutParameters = Omit<OpenAPIV3.OperationObject, 'parameters'>;
|
|
3
3
|
export declare function IsWithoutParameters(operation: OpenAPIV3.OperationObject): operation is OperationObjectWithoutParameters;
|