Skip to main content
Glama
convert-es-to-cjs.cjs2.24 kB
#!/usr/bin/env node const fs = require('fs'); const path = require('path'); const testDir = path.join(__dirname, 'test'); // Function to convert ES modules to CommonJS in .js test files function convertToCommonJS(filePath) { let content = fs.readFileSync(filePath, 'utf8'); let modified = false; // Convert import statements to require const importPattern = /^import\s+({[^}]+}|\*\s+as\s+\w+|\w+)\s+from\s+['"](.*)['"]\s*;?$/gm; if (importPattern.test(content)) { content = content.replace(importPattern, (match, imports, module) => { // Handle destructuring imports if (imports.startsWith('{')) { return `const ${imports} = require('${module}');`; } // Handle namespace imports else if (imports.includes('*')) { const alias = imports.split('as')[1].trim(); return `const ${alias} = require('${module}');`; } // Handle default imports else { return `const ${imports} = require('${module}');`; } }); modified = true; } // Convert export statements to module.exports const exportPattern = /^export\s+(const|let|var|function|class|default)\s+(.*)$/gm; if (exportPattern.test(content)) { content = content.replace(exportPattern, (match, type, rest) => { if (type === 'default') { return `module.exports = ${rest}`; } else { return `${type} ${rest}\nmodule.exports.${rest.split(' ')[0]} = ${rest.split(' ')[0]};`; } }); modified = true; } if (modified) { fs.writeFileSync(filePath, content); console.log(`Converted to CommonJS: ${filePath}`); } } // Recursively find and convert all JavaScript test files function processDirectory(dir) { const files = fs.readdirSync(dir); for (const file of files) { const filePath = path.join(dir, file); const stat = fs.statSync(filePath); if (stat.isDirectory()) { processDirectory(filePath); } else if (file.endsWith('.test.js') && !file.includes('.test.ts')) { convertToCommonJS(filePath); } } } // Start processing console.log('Converting JavaScript test files from ES modules to CommonJS...'); processDirectory(testDir); console.log('Done converting to CommonJS.');

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kesslerio/attio-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server