context-loader

Load scripts and run them in a context. For both browsers and node, sync and async.

npm install context-loader
7 downloads in the last month

Context Loader

Load JavaScript, compile the script without running it, run it as many times as you want in as many contexts as you want. Do it in Node or in the browser, with either asynchronous or synchronous loading.

Usage

First. Load context-loader

The main difference between usage in browsers and Node is in initially loading.

// Node
var loadScript = require('context-loader').loadScript;

// Browser
<script src="context-loader.js"></script>

Second. load scripts with context-loader

Script loading can be done in two ways.

//asynchronous
loadScript('path/filename.js', function callback(error, compiledScript){});

//synchronous
var compiledScript = loadScript('path/filename.js');

If loaded synchronously any errors will be passed back as the result

Third. Run compiled scripts in contexts

Once you have the compiled script you can then run it in contexts. State isn't shared inside the script itself so it can be used multiple times in the same or different contexts. In Node, a context is either the global object or a Context object created using the vm module. In the browser a context is either the global object or some other window object like an iframe contentWindow.

// run using the current global context
compiledScript.runInContext();

// node
var initializedContext = compiledScript.runInContext(vm.createContext());

// browser
var initializedContext = compiledScript.runInContext(document.body.appendChild(document.createElement("iframe")).contentWindow);

Return value is the context.

npm loves you