@breadstone-tools/openapi-app 0.0.154 → 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 +40 -16
- 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,7 @@ async function run(config) {
|
|
|
20
21
|
fetchTimeout: config.parser?.fetchTimeout,
|
|
21
22
|
emoji: true
|
|
22
23
|
});
|
|
23
|
-
|
|
24
|
-
throw new Error('No endpoints provided.');
|
|
25
|
-
}
|
|
26
|
-
// Normalize endpoints to array
|
|
27
|
-
const endpoints = Array.isArray(config.endpoints) ? config.endpoints : [config.endpoints];
|
|
24
|
+
const endpoints = normalizeEndpoints(config.endpoints);
|
|
28
25
|
if (!config.quiet) {
|
|
29
26
|
logger.log(`Processing ${endpoints.length} endpoint(s)...`);
|
|
30
27
|
}
|
|
@@ -51,26 +48,23 @@ async function run(config) {
|
|
|
51
48
|
tplMap.set(x.kind, utilities_1.Path.combine(config.cwd, x.template));
|
|
52
49
|
});
|
|
53
50
|
templateEngine.compose(tplMap);
|
|
54
|
-
// Process each endpoint sequentially
|
|
51
|
+
// Process each endpoint sequentially and collect endpoint names
|
|
52
|
+
const processedEndpointNames = [];
|
|
55
53
|
for (let i = 0; i < endpoints.length; i++) {
|
|
56
|
-
const
|
|
54
|
+
const [endpointName, endpointUrl] = extractEndpointEntry(endpoints[i], i);
|
|
57
55
|
if (!config.quiet) {
|
|
58
|
-
logger.log(`Processing endpoint ${i + 1}/${endpoints.length}: ${
|
|
56
|
+
logger.log(`Processing endpoint ${i + 1}/${endpoints.length}: ${endpointName} (${endpointUrl})`);
|
|
59
57
|
}
|
|
60
58
|
// eslint-disable-next-line no-await-in-loop
|
|
61
|
-
const api = await openApiParser.parse(
|
|
59
|
+
const api = await openApiParser.parse(endpointUrl, {
|
|
62
60
|
...openapi_core_1.defaultTypeScriptOptions,
|
|
63
61
|
...config.parser
|
|
64
62
|
});
|
|
65
|
-
// For multiple endpoints, create separate subdirectories
|
|
63
|
+
// For multiple endpoints, create separate subdirectories based on the provided name
|
|
66
64
|
let currentTarget = target;
|
|
67
65
|
if (endpoints.length > 1) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
.replace(/[^a-zA-Z0-9]/g, '_')
|
|
71
|
-
.replace(/_+/g, '_')
|
|
72
|
-
.toLowerCase();
|
|
73
|
-
currentTarget = utilities_1.Path.combine(target, `endpoint_${i + 1}_${endpointName}`);
|
|
66
|
+
currentTarget = utilities_1.Path.combine(target, endpointName);
|
|
67
|
+
processedEndpointNames.push(endpointName);
|
|
74
68
|
}
|
|
75
69
|
// eslint-disable-next-line no-await-in-loop
|
|
76
70
|
await templateBuilder.build(api, {
|
|
@@ -79,8 +73,38 @@ async function run(config) {
|
|
|
79
73
|
target: currentTarget
|
|
80
74
|
});
|
|
81
75
|
}
|
|
76
|
+
// Create aggregated index file if multiple endpoints were processed
|
|
77
|
+
if (endpoints.length > 1) {
|
|
78
|
+
createAggregatedIndexFile(target, processedEndpointNames, logger);
|
|
79
|
+
}
|
|
82
80
|
return {
|
|
83
81
|
target: target
|
|
84
82
|
};
|
|
85
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
|
+
}
|
|
86
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
|
}
|