RTK APIs: Support multiple source files (#100029)

This commit is contained in:
Alex Khomenko 2025-02-04 10:32:29 +02:00 committed by GitHub
parent 0fa2d182d6
commit 443cb092b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -129,33 +129,50 @@ function simplifySchemaName(schemaName: string) {
}
}
const sourceDir = path.resolve(__dirname, '../pkg/tests/apis/openapi_snapshots');
const outputDir = path.resolve(__dirname, '../data/openapi');
// Create the output directory if it doesn't exist
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir, { recursive: true });
}
const files = fs.readdirSync(sourceDir).filter((file: string) => file.endsWith('.json'));
for (const file of files) {
const inputPath = path.join(sourceDir, file);
const outputPath = path.join(outputDir, file);
console.log(`Processing file "${file}"...`);
const fileContent = fs.readFileSync(inputPath, 'utf-8');
let inputSpec;
try {
inputSpec = JSON.parse(fileContent);
} catch (err) {
console.error(`Invalid JSON file "${file}". Skipping this file.`);
continue;
/**
* Process all files in a source directory and write results to output directory
*/
function processDirectory(sourceDir: string, outputDir: string) {
// Skip if source directory doesn't exist
if (!fs.existsSync(sourceDir)) {
return;
}
const outputSpec = processOpenAPISpec(inputSpec);
fs.writeFileSync(outputPath, JSON.stringify(outputSpec, null, 2), 'utf-8');
console.log(`Processing completed for file "${file}".`);
// Create the output directory if it doesn't exist
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir, { recursive: true });
}
const files = fs.readdirSync(sourceDir).filter((file: string) => file.endsWith('.json'));
for (const file of files) {
const inputPath = path.join(sourceDir, file);
const outputPath = path.join(outputDir, file);
console.log(`Processing file "${file}"...`);
const fileContent = fs.readFileSync(inputPath, 'utf-8');
let inputSpec;
try {
inputSpec = JSON.parse(fileContent);
} catch (err) {
console.error(`Invalid JSON file "${file}". Skipping this file.`);
continue;
}
const outputSpec = processOpenAPISpec(inputSpec);
fs.writeFileSync(outputPath, JSON.stringify(outputSpec, null, 2), 'utf-8');
console.log(`Processing completed for file "${file}".`);
}
}
const sourceDirs = [
path.resolve(__dirname, '../pkg/tests/apis/openapi_snapshots'),
path.resolve(__dirname, '../pkg/extensions/apiserver/tests/openapi_snapshots'),
];
const outputDir = path.resolve(__dirname, '../data/openapi');
for (const sourceDir of sourceDirs) {
processDirectory(sourceDir, outputDir);
}