mirror of
https://github.com/ferdikoomen/openapi-typescript-codegen.git
synced 2025-12-08 20:16:21 +00:00
66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
const OpenAPI = require('../');
|
|
const fetch = require('node-fetch');
|
|
|
|
const generate = async (input, output) => {
|
|
await OpenAPI.generate({
|
|
input,
|
|
output,
|
|
httpClient: OpenAPI.HttpClient.FETCH,
|
|
useOptions: true,
|
|
useUnionTypes: false,
|
|
exportCore: true,
|
|
exportSchemas: true,
|
|
exportModels: true,
|
|
exportServices: true,
|
|
// clientName: 'Demo',
|
|
// indent: OpenAPI.Indent.SPACE_2,
|
|
// postfix: 'Service',
|
|
// request: './test/custom/request.ts',
|
|
});
|
|
};
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
const generateRealWorldSpecs = async () => {
|
|
const response = await fetch('https://api.apis.guru/v2/list.json');
|
|
|
|
const list = await response.json();
|
|
delete list['api.video'];
|
|
delete list['apideck.com:vault'];
|
|
delete list['amazonaws.com:mediaconvert'];
|
|
delete list['bungie.net'];
|
|
delete list['docusign.net'];
|
|
delete list['googleapis.com:adsense'];
|
|
delete list['googleapis.com:servicebroker'];
|
|
delete list['kubernetes.io'];
|
|
delete list['microsoft.com:graph'];
|
|
delete list['presalytics.io:ooxml'];
|
|
delete list['stripe.com'];
|
|
|
|
const specs = Object.entries(list).map(([name, api]) => {
|
|
const latestVersion = api.versions[api.preferred];
|
|
return {
|
|
name: name
|
|
.replace(/^[^a-zA-Z]+/g, '')
|
|
.replace(/[^\w\-]+/g, '-')
|
|
.trim()
|
|
.toLowerCase(),
|
|
url: latestVersion.swaggerYamlUrl || latestVersion.swaggerUrl,
|
|
};
|
|
});
|
|
|
|
for (let i = 0; i < specs.length; i++) {
|
|
const spec = specs[i];
|
|
await generate(spec.url, `./test/generated/${spec.name}/`);
|
|
}
|
|
};
|
|
|
|
const main = async () => {
|
|
await generate('./test/spec/v2.json', './test/generated/v2/');
|
|
await generate('./test/spec/v3.json', './test/generated/v3/');
|
|
// await generateRealWorldSpecs();
|
|
};
|
|
|
|
main();
|