go-meow
Version:
A modular microservice template built with TypeScript, Express, and Prisma (MongoDB). It includes service scaffolding tools, consistent query utilities with data grouping, Zod validation, structured logging, comprehensive seeding system, and Swagger/OpenA
61 lines (49 loc) • 1.7 kB
JavaScript
const fs = require("fs");
const path = require("path");
function renameJsToEsm(dir) {
const files = fs.readdirSync(dir);
for (const file of files) {
const fullPath = path.join(dir, file);
const stat = fs.statSync(fullPath);
if (stat.isDirectory()) {
renameJsToEsm(fullPath);
} else if (file.endsWith(".js")) {
const newPath = fullPath.replace(/\.js$/, ".esm.js");
fs.renameSync(fullPath, newPath);
console.log(`Renamed: ${fullPath} -> ${newPath}`);
}
}
}
// Rename all .js files in dist/lib-esm to .esm.js
const esmDir = path.join(__dirname, "../dist/lib-esm");
if (fs.existsSync(esmDir)) {
renameJsToEsm(esmDir);
// Move files from lib-esm to lib with .esm.js extension
const libDir = path.join(__dirname, "../dist/lib");
if (!fs.existsSync(libDir)) {
fs.mkdirSync(libDir, { recursive: true });
}
function moveEsmFiles(srcDir, destDir) {
const files = fs.readdirSync(srcDir);
for (const file of files) {
const srcPath = path.join(srcDir, file);
const stat = fs.statSync(srcPath);
if (stat.isDirectory()) {
const newDestDir = path.join(destDir, file);
if (!fs.existsSync(newDestDir)) {
fs.mkdirSync(newDestDir, { recursive: true });
}
moveEsmFiles(srcPath, newDestDir);
} else if (file.endsWith(".esm.js")) {
const destPath = path.join(destDir, file);
fs.copyFileSync(srcPath, destPath);
console.log(`Moved: ${srcPath} -> ${destPath}`);
}
}
}
moveEsmFiles(esmDir, libDir);
// Clean up the lib-esm directory
fs.rmSync(esmDir, { recursive: true, force: true });
console.log("Cleaned up temporary lib-esm directory");
}