@breadstone-tools/openapi-app 0.0.153 → 0.0.155
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/Run.d.ts +1 -1
- package/Run.d.ts.map +1 -1
- package/Run.js +60 -14
- package/Run.js.map +1 -1
- package/package.json +4 -4
package/Run.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type TemplateKind } from '@breadstone-tools/openapi-templates';
|
|
|
3
3
|
export interface IRunConfig {
|
|
4
4
|
cwd: string;
|
|
5
5
|
output: string;
|
|
6
|
-
endpoints?:
|
|
6
|
+
endpoints?: Record<string, string> | string;
|
|
7
7
|
parser?: ITypeScriptOptions;
|
|
8
8
|
debug?: boolean;
|
|
9
9
|
dryRun?: boolean;
|
package/Run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Run.d.ts","sourceRoot":"","sources":["../src/Run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Run.d.ts","sourceRoot":"","sources":["../src/Run.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4E,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACnJ,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,qCAAqC,CAAC;AAI1F,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5C,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,YAAY,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CA0FjE"}
|
package/Run.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// #region Imports
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.run = run;
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
5
6
|
const utilities_1 = require("@breadstone-infrastructure/utilities");
|
|
6
7
|
const openapi_core_1 = require("@breadstone-tools/openapi-core");
|
|
7
8
|
const openapi_templates_1 = require("@breadstone-tools/openapi-templates");
|
|
@@ -20,11 +21,9 @@ async function run(config) {
|
|
|
20
21
|
fetchTimeout: config.parser?.fetchTimeout,
|
|
21
22
|
emoji: true
|
|
22
23
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (!config.endpoints) {
|
|
27
|
-
throw new Error('No endpoints provided.');
|
|
24
|
+
const endpoints = normalizeEndpoints(config.endpoints);
|
|
25
|
+
if (!config.quiet) {
|
|
26
|
+
logger.log(`Processing ${endpoints.length} endpoint(s)...`);
|
|
28
27
|
}
|
|
29
28
|
const target = utilities_1.Path.combine(config.cwd, config.output);
|
|
30
29
|
if (config.clearRun) {
|
|
@@ -41,10 +40,7 @@ async function run(config) {
|
|
|
41
40
|
logger.log(`Deleted file '${indexTarget}'.`);
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
|
-
|
|
45
|
-
...openapi_core_1.defaultTypeScriptOptions,
|
|
46
|
-
...config.parser
|
|
47
|
-
});
|
|
43
|
+
// Setup templates once
|
|
48
44
|
templateEngine.compose((0, openapi_templates_1.resolveTemplates)().mapping);
|
|
49
45
|
// array to map
|
|
50
46
|
const tplMap = new Map();
|
|
@@ -52,13 +48,63 @@ async function run(config) {
|
|
|
52
48
|
tplMap.set(x.kind, utilities_1.Path.combine(config.cwd, x.template));
|
|
53
49
|
});
|
|
54
50
|
templateEngine.compose(tplMap);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
// Process each endpoint sequentially and collect endpoint names
|
|
52
|
+
const processedEndpointNames = [];
|
|
53
|
+
for (let i = 0; i < endpoints.length; i++) {
|
|
54
|
+
const [endpointName, endpointUrl] = extractEndpointEntry(endpoints[i], i);
|
|
55
|
+
if (!config.quiet) {
|
|
56
|
+
logger.log(`Processing endpoint ${i + 1}/${endpoints.length}: ${endpointName} (${endpointUrl})`);
|
|
57
|
+
}
|
|
58
|
+
// eslint-disable-next-line no-await-in-loop
|
|
59
|
+
const api = await openApiParser.parse(endpointUrl, {
|
|
60
|
+
...openapi_core_1.defaultTypeScriptOptions,
|
|
61
|
+
...config.parser
|
|
62
|
+
});
|
|
63
|
+
// For multiple endpoints, create separate subdirectories based on the provided name
|
|
64
|
+
let currentTarget = target;
|
|
65
|
+
if (endpoints.length > 1) {
|
|
66
|
+
currentTarget = utilities_1.Path.combine(target, endpointName);
|
|
67
|
+
processedEndpointNames.push(endpointName);
|
|
68
|
+
}
|
|
69
|
+
// eslint-disable-next-line no-await-in-loop
|
|
70
|
+
await templateBuilder.build(api, {
|
|
71
|
+
preferredComplexType: 'interface',
|
|
72
|
+
preferredSimpleType: 'type',
|
|
73
|
+
target: currentTarget
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
// Create aggregated index file if multiple endpoints were processed
|
|
77
|
+
if (endpoints.length > 1) {
|
|
78
|
+
createAggregatedIndexFile(target, processedEndpointNames, logger);
|
|
79
|
+
}
|
|
60
80
|
return {
|
|
61
81
|
target: target
|
|
62
82
|
};
|
|
63
83
|
}
|
|
84
|
+
function normalizeEndpoints(endpoints) {
|
|
85
|
+
if (!endpoints) {
|
|
86
|
+
throw new Error('No endpoints provided.');
|
|
87
|
+
}
|
|
88
|
+
if (typeof endpoints === 'string') {
|
|
89
|
+
return [{ default: endpoints }];
|
|
90
|
+
}
|
|
91
|
+
// Convert Record to Array of Records with single entries
|
|
92
|
+
return Object.entries(endpoints).map(([name, url]) => ({ [name]: url }));
|
|
93
|
+
}
|
|
94
|
+
function extractEndpointEntry(endpointRecord, index) {
|
|
95
|
+
const entries = Object.entries(endpointRecord);
|
|
96
|
+
if (entries.length === 0) {
|
|
97
|
+
throw new Error(`Endpoint at index ${index} is empty.`);
|
|
98
|
+
}
|
|
99
|
+
if (entries.length > 1) {
|
|
100
|
+
throw new Error(`Endpoint at index ${index} has multiple entries. Each record should contain exactly one name-url pair.`);
|
|
101
|
+
}
|
|
102
|
+
return entries[0];
|
|
103
|
+
}
|
|
104
|
+
function createAggregatedIndexFile(target, endpointNames, logger) {
|
|
105
|
+
const indexPath = utilities_1.Path.combine(target, 'index.ts');
|
|
106
|
+
const exports = endpointNames.map((name) => `export * as ${name} from './${name}';`).join('\n');
|
|
107
|
+
(0, node_fs_1.writeFileSync)(indexPath, exports, 'utf-8');
|
|
108
|
+
logger.log(`Created aggregated index file at '${indexPath}'.`);
|
|
109
|
+
}
|
|
64
110
|
//# sourceMappingURL=Run.js.map
|
package/Run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Run.js","sourceRoot":"","sources":["../src/Run.ts"],"names":[],"mappings":";AAAA,kBAAkB;;
|
|
1
|
+
{"version":3,"file":"Run.js","sourceRoot":"","sources":["../src/Run.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@breadstone-tools/openapi-app",
|
|
3
3
|
"description": "Open API Model generator cli",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.155",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
|
|
7
7
|
"repository": {
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"cli": "./bin/cli"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@breadstone-infrastructure/utilities": "^0.0.
|
|
20
|
-
"@breadstone-tools/openapi-core": "^0.0.
|
|
21
|
-
"@breadstone-tools/openapi-templates": "^0.0.
|
|
19
|
+
"@breadstone-infrastructure/utilities": "^0.0.155",
|
|
20
|
+
"@breadstone-tools/openapi-core": "^0.0.155",
|
|
21
|
+
"@breadstone-tools/openapi-templates": "^0.0.155",
|
|
22
22
|
"fs-extra": "^11.3.2"
|
|
23
23
|
}
|
|
24
24
|
}
|