solgraph
solgraph copied to clipboard
Solgraph throws `TypeError: _commander.default.version is not a function`
Running node v16.20.2, just installed solgraph and am facing an error with following trace:
var program = _commander["default"].version(_package["default"].version).arguments('<file>').usage(extendedHelp).parse(process.argv);
^
TypeError: _commander.default.version is not a function
at Object.<anonymous> (/home/ljmanini/.nvm/versions/node/v16.20.2/lib/node_modules/solgraph/dist/bin.js:9:37)
at Module._compile (node:internal/modules/cjs/loader:1198:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
at Module.load (node:internal/modules/cjs/loader:1076:32)
at Function.Module._load (node:internal/modules/cjs/loader:911:12)
at Module.require (node:internal/modules/cjs/loader:1100:19)
at require (node:internal/modules/cjs/helpers:119:18)
at Object.<anonymous> (/home/ljmanini/.nvm/versions/node/v16.20.2/lib/node_modules/solgraph/solgraph.js:2:1)
at Module._compile (node:internal/modules/cjs/loader:1198:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
Sorry, this library is no longer maintained. You could try running on an older version of node.
Same issue. I modified the commander module in bin.js to support newer node versions. Replace <path/to/node_version>/solgraph/dist/bin.js with:
"use strict";
var { Command } = require("commander");
var _package = _interopRequireDefault(require("../package.json"));
var _index = _interopRequireDefault(require("./index.js"));
var _fs = require("fs");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : { default: e };
}
var extendedHelp = `
${_package["default"].description}
Example:
$ cat MyContract.sol | solgraph > MyContract.dot
$ solgraph MyContract.sol > MyContract.dot
`;
//new instance of Command API
var program = new Command();
program
.version(_package["default"].version)
.arguments("[file]")
.usage(extendedHelp)
.parse(process.argv);
var inputPromise;
if (program.args[0]) {
inputPromise = new Promise(function (resolve, reject) {
(0, _fs.readFile)(program.args[0], "utf-8", function (err, data) {
if (err) {
return reject(err);
}
resolve(data);
});
});
} else {
inputPromise = new Promise((resolve, reject) => {
const stdin = process.stdin;
let data = "";
stdin.setEncoding("utf-8");
stdin.on("data", (chunk) => {
data += chunk;
});
stdin.on("end", () => {
if (data.trim() === "") {
return reject(new Error("No input provided via stdin or file."));
}
resolve(data);
});
stdin.on("error", (err) => {
reject(err);
});
});
}
inputPromise
.then(function (source) {
console.log((0, _index["default"])(source));
})
.catch(function (err) {
console.error(err.message);
process.exit(1);
});