Files
revive/js/examples/node/revive.js
T
2025-02-11 11:55:24 +01:00

33 lines
813 B
JavaScript

const soljson = require("solc/soljson");
const createRevive = require("./resolc.js");
async function compile(standardJsonInput) {
if (!standardJsonInput) {
throw new Error("Input JSON for the Solidity compiler is required.");
}
// Initialize the compiler
const compiler = createRevive();
compiler.soljson = soljson;
// Provide input to the compiler
compiler.writeToStdin(JSON.stringify(standardJsonInput));
// Run the compiler
compiler.callMain(["--standard-json"]);
// Collect output
const stdout = compiler.readFromStdout();
const stderr = compiler.readFromStderr();
// Check for errors and throw if stderr exists
if (stderr) {
throw new Error(`Compilation failed: ${stderr}`);
}
// Return the output if no errors
return stdout;
}
module.exports = { compile };