This is library meant to be used in conjunction with
isolated-vm
. It adds rudimentary console support for
the common case of outputting to a local console. I would guess it's probably pretty easy to crash
the process by passing whacky objects to these functions so use this at your own risk.
-
isolate
- An isolate created withinisolated-vm
-
context
- A context -
return
{ formatWithOptions, inspect }
This returns an object with two named Reference
instances to the built-in nodejs functions
util.formatWithOptions
and util.inspect
. These
references belong to the isolate and maintain internal handles to the context. You can use these
functions in any context created within this isolate-- you do not need to call this once per
context.
-
context
- A context -
util
- The return value ofawait create(...)
This function configures a context's console
to output directly to the process's stdout and
stderr.
const ivm = require('isolated-vm');
const ivmInspect = require('ivm-inspect');
(async() => {
const isolate = new ivm.Isolate;
const context = await isolate.createContext();
const util = await ivmInspect.create(isolate, context);
await ivmInspect.forwardConsole(context, util);
await context.eval('console.log("Here is an object: %O", { foo: "bar" })');
})().catch(console.error);
Wow!