Swagger MCP
by readingdancer
Verified
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
// Get the directory name of the current module
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// Function to recursively find all .ts files in a directory
function findTsFiles(dir, fileList = []) {
const files = fs.readdirSync(dir);
files.forEach(file => {
const filePath = path.join(dir, file);
const stat = fs.statSync(filePath);
if (stat.isDirectory()) {
findTsFiles(filePath, fileList);
} else if (file.endsWith('.ts')) {
fileList.push(filePath);
}
});
return fileList;
}
// Function to fix imports in a file
function fixImportsInFile(filePath) {
let content = fs.readFileSync(filePath, 'utf8');
// Replace .ts extensions in import statements with .js
const fixedContent = content.replace(/(from\s+['"].*?)\.ts(['"])/g, '$1.js$2')
.replace(/(from\s+['"].*?)(['"])/g, (match, p1, p2) => {
// Skip external modules and absolute paths
if (!p1.includes('./') && !p1.includes('../')) {
return match;
}
// Skip if already has an extension
if (p1.endsWith('.js') || p1.endsWith('.mjs') || p1.endsWith('.cjs')) {
return match;
}
return `${p1}.js${p2}`;
});
if (content !== fixedContent) {
fs.writeFileSync(filePath, fixedContent, 'utf8');
console.log(`Fixed imports in ${filePath}`);
}
}
// Main function
function main() {
const srcDir = path.join(__dirname, 'src');
const tsFiles = findTsFiles(srcDir);
console.log(`Found ${tsFiles.length} TypeScript files`);
tsFiles.forEach(file => {
fixImportsInFile(file);
});
console.log('Done fixing imports');
}
main();