mirror of
https://github.com/hanzoai/babel.git
synced 2026-09-24 16:56:45 +00:00
54 lines
1.3 KiB
JavaScript
Executable File
54 lines
1.3 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
import fs from "fs";
|
|
import { fileURLToPath } from "url";
|
|
import path from "path";
|
|
|
|
const root = rel =>
|
|
path.join(path.dirname(fileURLToPath(import.meta.url)), "../", rel);
|
|
|
|
// prettier-ignore
|
|
let moduleType;
|
|
if (process.argv.length >= 3) {
|
|
moduleType = process.argv[2];
|
|
} else if (fs.existsSync(root(".module-type"))) {
|
|
moduleType = fs.readFileSync(root(".module-type"), "utf-8").trim();
|
|
} else {
|
|
moduleType = "commonjs";
|
|
}
|
|
|
|
if (moduleType === "clean") {
|
|
try {
|
|
fs.unlinkSync(root(".module-type"));
|
|
} catch {}
|
|
} else if (moduleType === "module" || moduleType === "commonjs") {
|
|
fs.writeFileSync(root(".module-type"), moduleType);
|
|
} else {
|
|
throw new Error(`Unknown module type: ${moduleType}`);
|
|
}
|
|
|
|
["eslint", "codemods", "packages"]
|
|
.flatMap(dir => fs.readdirSync(root(dir)).map(file => root(`${dir}/${file}`)))
|
|
.filter(
|
|
dir =>
|
|
fs.statSync(dir).isDirectory() && fs.existsSync(`${dir}/package.json`)
|
|
)
|
|
.forEach(dir => {
|
|
if (dir.endsWith("babel-register")) {
|
|
// This is a CJS package
|
|
return;
|
|
}
|
|
|
|
if (moduleType === "clean") {
|
|
try {
|
|
fs.unlinkSync(`${dir}/lib/package.json`);
|
|
} catch {}
|
|
} else {
|
|
fs.mkdirSync(`${dir}/lib`, { recursive: true });
|
|
fs.writeFileSync(
|
|
`${dir}/lib/package.json`,
|
|
`{ "type": "${moduleType}" }`
|
|
);
|
|
}
|
|
});
|