@rxap/workspace-open-api 19.0.14-dev.0 → 19.1.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 +10 -0
- package/package.json +6 -6
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/lib/const.d.ts +2 -0
- package/src/lib/const.js +3 -1
- package/src/lib/const.js.map +1 -1
- package/src/lib/generate-http-resource.d.ts +2 -0
- package/src/lib/generate-http-resource.js +117 -0
- package/src/lib/generate-http-resource.js.map +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
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
|
+
# [19.1.0-dev.0](https://gitlab.com/rxap/packages/compare/@rxap/workspace-open-api@19.0.14-dev.1...@rxap/workspace-open-api@19.1.0-dev.0) (2025-03-26)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **open-api:** add HTTP resource generation utility ([ff87c86](https://gitlab.com/rxap/packages/commit/ff87c86371ee5cedbf3ef763d7f7c9546df3962e))
|
|
11
|
+
|
|
12
|
+
## [19.0.14-dev.1](https://gitlab.com/rxap/packages/compare/@rxap/workspace-open-api@19.0.14-dev.0...@rxap/workspace-open-api@19.0.14-dev.1) (2025-03-12)
|
|
13
|
+
|
|
14
|
+
**Note:** Version bump only for package @rxap/workspace-open-api
|
|
15
|
+
|
|
6
16
|
## [19.0.14-dev.0](https://gitlab.com/rxap/packages/compare/@rxap/workspace-open-api@19.0.13...@rxap/workspace-open-api@19.0.14-dev.0) (2025-03-12)
|
|
7
17
|
|
|
8
18
|
**Note:** Version bump only for package @rxap/workspace-open-api
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "19.0
|
|
2
|
+
"version": "19.1.0-dev.0",
|
|
3
3
|
"name": "@rxap/workspace-open-api",
|
|
4
4
|
"description": "This package provides utilities and generators for working with OpenAPI specifications in a workspace. It includes functionality for generating TypeScript interfaces, data sources, directives, remote methods, and operation commands based on an OpenAPI schema. The package also offers tools for loading OpenAPI configurations and resolving references within the schema.\n",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@nx/devkit": "20.
|
|
8
|
-
"@rxap/json-schema-to-typescript": "^16.1.
|
|
9
|
-
"@rxap/utilities": "^16.4.
|
|
10
|
-
"@rxap/workspace-utilities": "^19.8.0-dev.
|
|
7
|
+
"@nx/devkit": "20.5.0",
|
|
8
|
+
"@rxap/json-schema-to-typescript": "^16.1.2-dev.0",
|
|
9
|
+
"@rxap/utilities": "^16.4.4-dev.0",
|
|
10
|
+
"@rxap/workspace-utilities": "^19.8.0-dev.1",
|
|
11
11
|
"openapi-types": "^10.0.0",
|
|
12
12
|
"ts-morph": "^18.0.0",
|
|
13
13
|
"tslib": "2.6.2",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"schematics": "./generators.json",
|
|
43
43
|
"type": "commonjs",
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "e186af8849930ff2e97e6276f83607450b8257c7",
|
|
45
45
|
"types": "./src/index.d.ts",
|
|
46
46
|
"main": "./src/index.js"
|
|
47
47
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export * from './lib/create-directive';
|
|
|
23
23
|
export * from './lib/generate-components';
|
|
24
24
|
export * from './lib/generate-data-source';
|
|
25
25
|
export * from './lib/generate-directives';
|
|
26
|
+
export * from './lib/generate-http-resource';
|
|
26
27
|
export * from './lib/generate-index-exports';
|
|
27
28
|
export * from './lib/generate-interfaces';
|
|
28
29
|
export * from './lib/generate-operation-command';
|
package/src/index.js
CHANGED
|
@@ -29,6 +29,7 @@ tslib_1.__exportStar(require("./lib/create-directive"), exports);
|
|
|
29
29
|
tslib_1.__exportStar(require("./lib/generate-components"), exports);
|
|
30
30
|
tslib_1.__exportStar(require("./lib/generate-data-source"), exports);
|
|
31
31
|
tslib_1.__exportStar(require("./lib/generate-directives"), exports);
|
|
32
|
+
tslib_1.__exportStar(require("./lib/generate-http-resource"), exports);
|
|
32
33
|
tslib_1.__exportStar(require("./lib/generate-index-exports"), exports);
|
|
33
34
|
tslib_1.__exportStar(require("./lib/generate-interfaces"), exports);
|
|
34
35
|
tslib_1.__exportStar(require("./lib/generate-operation-command"), exports);
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/workspace/open-api/src/index.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACnB,4EAAkD;AAClD,kGAAwE;AACxE,6EAAmD;AACnD,2EAAiD;AACjD,gFAAsD;AACtD,4EAAkD;AAClD,uEAA6C;AAC7C,8EAAoD;AACpD,kFAAwD;AACxD,qFAA2D;AAC3D,uEAA6C;AAC7C,2EAAiD;AACjD,iFAAuD;AACvD,yEAA+C;AAC/C,uFAA6D;AAC7D,8EAAoD;AACpD,8EAAoD;AACpD,gFAAsD;AACtD,4EAAkD;AAClD,YAAY;AAEZ,UAAU;AACV,uDAA6B;AAC7B,sDAA4B;AAC5B,iEAAuC;AACvC,oEAA0C;AAC1C,qEAA2C;AAC3C,oEAA0C;AAC1C,uEAA6C;AAC7C,oEAA0C;AAC1C,2EAAiD;AACjD,mEAAyC;AACzC,oEAA0C;AAC1C,uEAA6C;AAC7C,sEAA4C;AAC5C,kEAAwC;AACxC,qEAA2C;AAC3C,wDAA8B;AAC9B,4DAAkC;AAClC,sDAA4B;AAC5B,YAAY"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/workspace/open-api/src/index.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACnB,4EAAkD;AAClD,kGAAwE;AACxE,6EAAmD;AACnD,2EAAiD;AACjD,gFAAsD;AACtD,4EAAkD;AAClD,uEAA6C;AAC7C,8EAAoD;AACpD,kFAAwD;AACxD,qFAA2D;AAC3D,uEAA6C;AAC7C,2EAAiD;AACjD,iFAAuD;AACvD,yEAA+C;AAC/C,uFAA6D;AAC7D,8EAAoD;AACpD,8EAAoD;AACpD,gFAAsD;AACtD,4EAAkD;AAClD,YAAY;AAEZ,UAAU;AACV,uDAA6B;AAC7B,sDAA4B;AAC5B,iEAAuC;AACvC,oEAA0C;AAC1C,qEAA2C;AAC3C,oEAA0C;AAC1C,uEAA6C;AAC7C,uEAA6C;AAC7C,oEAA0C;AAC1C,2EAAiD;AACjD,mEAAyC;AACzC,oEAA0C;AAC1C,uEAA6C;AAC7C,sEAA4C;AAC5C,kEAAwC;AACxC,qEAA2C;AAC3C,wDAA8B;AAC9B,4DAAkC;AAClC,sDAA4B;AAC5B,YAAY"}
|
package/src/lib/const.d.ts
CHANGED
|
@@ -6,3 +6,5 @@ export declare const DIRECTIVE_BASE_PATH = "directives";
|
|
|
6
6
|
export declare const DIRECTIVE_FILE_SUFFIX = "directive";
|
|
7
7
|
export declare const COMMAND_BASE_PATH = "commands";
|
|
8
8
|
export declare const COMMAND_FILE_SUFFIX = "command";
|
|
9
|
+
export declare const HTTP_RESOURCE_FILE_SUFFIX = "http-resource";
|
|
10
|
+
export declare const HTTP_RESOURCE_BASE_PATH = "http-resources";
|
package/src/lib/const.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.COMMAND_FILE_SUFFIX = exports.COMMAND_BASE_PATH = exports.DIRECTIVE_FILE_SUFFIX = exports.DIRECTIVE_BASE_PATH = exports.REMOTE_METHOD_FILE_SUFFIX = exports.REMOTE_METHOD_BASE_PATH = exports.DATA_SOURCE_FILE_SUFFIX = exports.DATA_SOURCE_BASE_PATH = void 0;
|
|
3
|
+
exports.HTTP_RESOURCE_BASE_PATH = exports.HTTP_RESOURCE_FILE_SUFFIX = exports.COMMAND_FILE_SUFFIX = exports.COMMAND_BASE_PATH = exports.DIRECTIVE_FILE_SUFFIX = exports.DIRECTIVE_BASE_PATH = exports.REMOTE_METHOD_FILE_SUFFIX = exports.REMOTE_METHOD_BASE_PATH = exports.DATA_SOURCE_FILE_SUFFIX = exports.DATA_SOURCE_BASE_PATH = void 0;
|
|
4
4
|
exports.DATA_SOURCE_BASE_PATH = 'data-sources';
|
|
5
5
|
exports.DATA_SOURCE_FILE_SUFFIX = 'data-source';
|
|
6
6
|
exports.REMOTE_METHOD_BASE_PATH = 'remote-methods';
|
|
@@ -9,4 +9,6 @@ exports.DIRECTIVE_BASE_PATH = 'directives';
|
|
|
9
9
|
exports.DIRECTIVE_FILE_SUFFIX = 'directive';
|
|
10
10
|
exports.COMMAND_BASE_PATH = 'commands';
|
|
11
11
|
exports.COMMAND_FILE_SUFFIX = 'command';
|
|
12
|
+
exports.HTTP_RESOURCE_FILE_SUFFIX = 'http-resource';
|
|
13
|
+
exports.HTTP_RESOURCE_BASE_PATH = 'http-resources';
|
|
12
14
|
//# sourceMappingURL=const.js.map
|
package/src/lib/const.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../../packages/workspace/open-api/src/lib/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,cAAc,CAAC;AACvC,QAAA,uBAAuB,GAAG,aAAa,CAAC;AACxC,QAAA,uBAAuB,GAAG,gBAAgB,CAAC;AAC3C,QAAA,yBAAyB,GAAG,eAAe,CAAC;AAC5C,QAAA,mBAAmB,GAAG,YAAY,CAAC;AACnC,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,iBAAiB,GAAG,UAAU,CAAC;AAC/B,QAAA,mBAAmB,GAAG,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../../packages/workspace/open-api/src/lib/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,cAAc,CAAC;AACvC,QAAA,uBAAuB,GAAG,aAAa,CAAC;AACxC,QAAA,uBAAuB,GAAG,gBAAgB,CAAC;AAC3C,QAAA,yBAAyB,GAAG,eAAe,CAAC;AAC5C,QAAA,mBAAmB,GAAG,YAAY,CAAC;AACnC,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,iBAAiB,GAAG,UAAU,CAAC;AAC/B,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,yBAAyB,GAAG,eAAe,CAAC;AAC5C,QAAA,uBAAuB,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GenerateHttpResource = GenerateHttpResource;
|
|
4
|
+
const utilities_1 = require("@rxap/utilities");
|
|
5
|
+
const workspace_open_api_1 = require("@rxap/workspace-open-api");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const ts_morph_1 = require("ts-morph");
|
|
8
|
+
const const_1 = require("./const");
|
|
9
|
+
function GenerateHttpResource(parameter) {
|
|
10
|
+
var _a, _b, _c, _d, _e;
|
|
11
|
+
if (parameter.method.toUpperCase() !== 'GET') {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const operationId = parameter.operationId;
|
|
15
|
+
const name = [operationId, const_1.HTTP_RESOURCE_FILE_SUFFIX].join('.');
|
|
16
|
+
const fileName = (0, path_1.join)(const_1.HTTP_RESOURCE_BASE_PATH, (0, utilities_1.dasherize)(name) + '.ts');
|
|
17
|
+
const sourceFile = parameter.project.createSourceFile(fileName);
|
|
18
|
+
const importStructures = [
|
|
19
|
+
{
|
|
20
|
+
moduleSpecifier: '@vault/ui-shared',
|
|
21
|
+
namedImports: [
|
|
22
|
+
{ name: 'OPEN_API_OPERATION_ID' },
|
|
23
|
+
{ name: 'OPEN_API_SERVER_ID' },
|
|
24
|
+
{ name: 'SignalProperties' },
|
|
25
|
+
{ name: 'toHttpParams' },
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
moduleSpecifier: '@angular/common/http',
|
|
30
|
+
namedImports: [{ name: 'HttpContext' }, { name: 'httpResource' }],
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
const { type: responseType, name: responseName } = (0, workspace_open_api_1.GetResponseType)(parameter);
|
|
34
|
+
const parameterType = (0, workspace_open_api_1.GetParameterType)(parameter);
|
|
35
|
+
const { type: requestBodyType, name: requestBodyName } = (0, workspace_open_api_1.GetRequestBodyType)(parameter);
|
|
36
|
+
if (responseName) {
|
|
37
|
+
importStructures.push({
|
|
38
|
+
moduleSpecifier: (_a = parameter.options.packageName) !== null && _a !== void 0 ? _a : `../responses/${(0, utilities_1.dasherize)(responseName.replace(/Response$/, ''))}.response`,
|
|
39
|
+
namedImports: [{ name: responseName }],
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (!['void', 'any'].includes(parameterType)) {
|
|
43
|
+
importStructures.push({
|
|
44
|
+
moduleSpecifier: (_b = parameter.options.packageName) !== null && _b !== void 0 ? _b : `../parameters/${(0, utilities_1.dasherize)(parameterType.replace(/Parameter$/, ''))}.parameter`,
|
|
45
|
+
namedImports: [{ name: parameterType }],
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (requestBodyName) {
|
|
49
|
+
importStructures.push({
|
|
50
|
+
moduleSpecifier: (_c = parameter.options.packageName) !== null && _c !== void 0 ? _c : `../request-bodies/${(0, utilities_1.dasherize)(requestBodyName.replace(/RequestBody$/, ''))}.request-body`,
|
|
51
|
+
namedImports: [{ name: requestBodyName }],
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
const withoutParameters = parameterType === 'void';
|
|
55
|
+
const withoutRequestBody = requestBodyType === 'void';
|
|
56
|
+
const withoutParametersAndRequestBody = withoutParameters && withoutRequestBody;
|
|
57
|
+
const httpOptions = {};
|
|
58
|
+
if ((_d = parameter.parameters) === null || _d === void 0 ? void 0 : _d.some((p) => !(0, workspace_open_api_1.IsRefSchemaObject)(p) && p.in === 'path')) {
|
|
59
|
+
httpOptions['url'] = (w) => {
|
|
60
|
+
w.write('`');
|
|
61
|
+
w.write(parameter.path.replace(/\{([^}]+)\}/g, (_, name) => `\${parameters.${name}()}`));
|
|
62
|
+
w.write('`');
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
httpOptions['url'] = (w) => w.quote(parameter.path);
|
|
67
|
+
}
|
|
68
|
+
httpOptions['method'] = (w) => w.quote(parameter.method.toUpperCase());
|
|
69
|
+
if (!withoutParameters) {
|
|
70
|
+
httpOptions['params'] = `toHttpParams(parameters, [${parameter.parameters
|
|
71
|
+
.filter((p) => !(0, workspace_open_api_1.IsRefSchemaObject)(p) && p.in === 'query')
|
|
72
|
+
.map((p) => `'${p.name}'`)
|
|
73
|
+
.join(', ')}])`;
|
|
74
|
+
}
|
|
75
|
+
if (!withoutRequestBody) {
|
|
76
|
+
httpOptions['body'] = 'requestBody()';
|
|
77
|
+
}
|
|
78
|
+
httpOptions['context'] = `new HttpContext().set(OPEN_API_OPERATION_ID, '${parameter.operationId}').set(OPEN_API_SERVER_ID, '${parameter.options.serverId}')`;
|
|
79
|
+
httpOptions['withCredentials'] = 'true';
|
|
80
|
+
const parameters = [];
|
|
81
|
+
if (!withoutParametersAndRequestBody) {
|
|
82
|
+
if (!withoutRequestBody) {
|
|
83
|
+
parameters.push({
|
|
84
|
+
name: 'requestBody',
|
|
85
|
+
type: `Signal<${requestBodyType}>`,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
if (!withoutParameters) {
|
|
89
|
+
parameters.push({
|
|
90
|
+
name: 'parameters',
|
|
91
|
+
type: `SignalProperties<${parameterType}>`,
|
|
92
|
+
initializer: ((_e = parameter.parameters) === null || _e === void 0 ? void 0 : _e.some((p) => !(0, workspace_open_api_1.IsRefSchemaObject)(p) && p.required))
|
|
93
|
+
? undefined
|
|
94
|
+
: '{}',
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
sourceFile.addFunction({
|
|
99
|
+
isExported: true,
|
|
100
|
+
name: (0, utilities_1.camelize)([parameter.operationId, 'http-resource'].join('_')),
|
|
101
|
+
parameters,
|
|
102
|
+
statements: [
|
|
103
|
+
`return httpResource<${responseType}>(`,
|
|
104
|
+
(w) => {
|
|
105
|
+
w.write('() => (');
|
|
106
|
+
ts_morph_1.Writers.object(httpOptions)(w);
|
|
107
|
+
w.write(')');
|
|
108
|
+
},
|
|
109
|
+
`);`,
|
|
110
|
+
],
|
|
111
|
+
});
|
|
112
|
+
sourceFile.addImportDeclarations(importStructures);
|
|
113
|
+
sourceFile.organizeImports({
|
|
114
|
+
ensureNewLineAtEndOfFile: true,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=generate-http-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-http-resource.js","sourceRoot":"","sources":["../../../../../../packages/workspace/open-api/src/lib/generate-http-resource.ts"],"names":[],"mappings":"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"}
|