Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 

NPM version Downloads

Virtual module for node.js - vmod

  • Runs in different script context than your current script;
  • Executes a string of code in require-like environment;
  • Allows you to override globals of the sandbox environment;
  • Returns module.exports output;
  • Throws errors that can be caught in your current context;

Known limitations:

  • console.log, console.warn, console.error, etc. output not visible;
  • Modifications to prototypes of some globals not visible in the vmod context;

Installation

$ npm install vmod --save

Simple

const vmod = require('vmod');

console.log(
  vmod('module.exports = 123;')
); // 123

Export function

const vmod = require('vmod');

console.log(
  vmod(
    'module.exports = () => "yay!";'
  )()
); // "yay!"

Require External file

/*
./_test-file.js:
module.exports = "test file data";
*/

const vmod = require('vmod');

console.log(
  vmod(
    'module.exports = require("./_test-file.js")'
  )()
); // "test file data"

Override sandbox variable

const vmod = require('vmod');

vmod(
  'module.exports = require("./_test-file.js")',
  { require: null }
); // TypeError: require is not a function