@reliverse/rse
Version:
@reliverse/rse is your all-in-one companion for bootstrapping and improving any kind of projects (especially web apps built with frameworks like Next.js) — whether you're kicking off something new or upgrading an existing app. It is also a little AI-power
22 lines (21 loc) • 734 B
JavaScript
import { relinka } from "@reliverse/relinka";
import { execaCommand } from "execa";
export async function runCodemods(names, options) {
for (const name of names) {
relinka("info", `
Applying codemod: ${name}`);
const cmdArgs = [name];
if (options.dry) cmdArgs.push("--dry");
if (options.format) cmdArgs.push("--format");
if (options.include) cmdArgs.push("-i", options.include);
if (options.exclude) cmdArgs.push("-e", options.exclude);
try {
await execaCommand(`codemod ${cmdArgs}`, { stdio: "inherit" });
relinka("info", `Successfully ran codemod: ${name}
`);
} catch (error) {
relinka("error", `Failed to run codemod: ${name}`, String(error));
process.exit(1);
}
}
}