Skip to content

Instantly share code, notes, and snippets.

@theilgaz
Created September 16, 2023 09:29
Show Gist options
  • Save theilgaz/284ab84bfc0d6b23182f25e520fc436b to your computer and use it in GitHub Desktop.
Save theilgaz/284ab84bfc0d6b23182f25e520fc436b to your computer and use it in GitHub Desktop.
Remove OpenAPI Generator unnecessary files from target folder
const fs = require('fs');
const path = require('path');
const generatedDirectory = 'lib/api';
function removeNonTsFilesAndEmptyFolders(directory) {
fs.readdirSync(directory).forEach((item) => {
const itemPath = path.join(directory, item);
if (fs.statSync(itemPath).isDirectory()) {
removeNonTsFilesAndEmptyFolders(itemPath);
if (fs.readdirSync(itemPath).length === 0) {
fs.rmdirSync(itemPath);
console.log(`Removed empty folder: ${itemPath}`);
}
} else if (path.extname(item) !== '.ts') {
fs.unlinkSync(itemPath);
console.log(`Deleted: ${itemPath}`);
}
});
}
function removeOpenApiGeneratorFolder(directory) {
const openApiGeneratorFolder = path.join(directory, '.openapi-generator');
if (fs.existsSync(openApiGeneratorFolder)) {
fs.rmdirSync(openApiGeneratorFolder, { recursive: true });
console.log(`Removed .openapi-generator folder: ${openApiGeneratorFolder}`);
}
}
removeNonTsFilesAndEmptyFolders(generatedDirectory);
removeOpenApiGeneratorFolder(generatedDirectory);
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"cleanup": "node lib/cleanup.js",
"go": "openapi-generator-cli generate -i https://api.url.com/swagger/v1/swagger.json -g typescript-axios -o lib/api && npm run cleanup"
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment