mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-04-22 21:58:01 +00:00
43 lines
1.7 KiB
JavaScript
43 lines
1.7 KiB
JavaScript
mergeInto(LibraryManager.library, {
|
|
soljson_compile: function(inputPtr, inputLen) {
|
|
const inputJson = UTF8ToString(inputPtr, inputLen);
|
|
const output = Module.soljson.cwrap('solidity_compile', 'string', ['string'])(inputJson);
|
|
return stringToNewUTF8(output);
|
|
},
|
|
soljson_version: function() {
|
|
const version = Module.soljson.cwrap("solidity_version", "string", [])();
|
|
return stringToNewUTF8(version);
|
|
},
|
|
resolc_compile: function(inputPtr, inputLen) {
|
|
const inputJson = UTF8ToString(inputPtr, inputLen);
|
|
|
|
// Check if running in a web worker or node.js
|
|
if (typeof importScripts === 'function') {
|
|
// Running in a web worker
|
|
importScripts('./resolc.js');
|
|
var revive = createRevive()
|
|
} else if (typeof require === 'function') {
|
|
// Running in Node.js
|
|
const path = require('path');
|
|
createRevive = require(path.resolve(__dirname, './resolc.js'));
|
|
var revive = createRevive();
|
|
} else {
|
|
throw new Error('Unknown environment: Unable to load resolc.js');
|
|
}
|
|
revive.writeToStdin(inputJson);
|
|
|
|
// Call main on the new instance
|
|
const result = revive.callMain(['--recursive-process']);
|
|
|
|
if (result) {
|
|
const stderrString = revive.readFromStderr();
|
|
const error = JSON.stringify({ type: 'error', message: stderrString || "Unknown error" });
|
|
return stringToNewUTF8(error);
|
|
} else {
|
|
const stdoutString = revive.readFromStdout();
|
|
const json = JSON.stringify({ type: 'success', data: stdoutString });
|
|
return stringToNewUTF8(json);
|
|
}
|
|
},
|
|
});
|