magnetar/fe_calckey/frontend/scripts/magnetar-types.js

34 lines
1.1 KiB
JavaScript

const fs = require("node:fs");
const execa = require("execa");
const chalk = require("chalk");
const { join } = require("node:path");
(async () => {
console.log(chalk.italic`Generating Magnetar types, this may take a while...`)
const { failed } = await execa.command("cargo test --release --package magnetar_sdk", {
cwd: "../../magnetar_sdk",
stdout: "inherit"
});
if (failed) {
console.error(chalk.red`Type generation failed.`);
return;
}
console.log(chalk.green`Successfully generated Magnetar types`);
const srcPath = "../../magnetar_sdk/bindings";
const destPath = "magnetar-common/src/types";
console.log(chalk.italic`Deleting old`, `"${destPath}"`);
fs.rmSync(destPath, { recursive: true, force: true });
console.log(chalk.italic`Copying generated Magnetar types...`);
console.log(chalk.italic`From`, `"${srcPath}"`, chalk.italic`to`, `"${destPath}"`);
fs.cpSync(`${srcPath}/`, `${destPath}/`, { recursive: true });
console.log(chalk.italic`Deleting`, `"${srcPath}"`);
fs.rmSync(srcPath, { recursive: true, force: true });
})();