Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
formatValue: function(value, indent = 0, nativized = false) {
let inspectOptions = {
colors: true,
depth: null,
maxArrayLength: null,
breakLength: 30
};
let valueToInspect = nativized
? value
: new Codec.Format.Utils.Inspect.ResultInspector(value);
return util
.inspect(valueToInspect, inspectOptions)
.split(/\r?\n/g)
.map((line, i) => {
// don't indent first line
const padding = i > 0 ? Array(indent).join(" ") : "";
return padding + line;
})
.join(OS.EOL);
},
//if we're just dealing with a single variable, handle that case
//separately (so that we can do things in a better way for that
//case)
let variable = raw.trim();
if (variable in variables) {
let formatted = DebugUtils.formatValue(variables[variable], indent);
this.config.logger.log(formatted);
this.config.logger.log();
return;
}
//HACK
//if we're not in the single-variable case, we'll need to do some
//things to Javascriptify our variables so that the JS syntax for
//using them is closer to the Solidity syntax
variables = Codec.Format.Utils.Inspect.nativizeVariables(variables);
let context = Object.assign(
{ $: this.select },
variables
);
//HACK -- we can't use "this" as a variable name, so we're going to
//find an available replacement name, and then modify the context
//and expression appropriately
let pseudoThis = "_this";
while (pseudoThis in context) {
pseudoThis = "_" + pseudoThis;
}
//in addition to pseudoThis, which replaces this, we also have
//pseudoPseudoThis, which replaces pseudoThis in order to ensure