ivm-inspect
v4.0.0
Published
[![npm version](https://badgen.now.sh/npm/v/ivm-inspect)](https://www.npmjs.com/package/ivm-inspect) [![mit license](https://badgen.now.sh/npm/license/ivm-inspect)](https://github.com/laverdet/ivm-inspect/blob/master/LICENSE) [![npm downloads](https://bad
Downloads
69
Readme
ivm-inspect -- Local console support within isolated-vm
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.
API DOCUMENTATION
async create(isolate, context)
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.
async forwardConsole(context, util)
context
- A contextutil
- The return value ofawait create(...)
This function configures a context's console
to output directly to the process's stdout and
stderr.
EXAMPLES
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!