context-loader
v0.1.1
Published
Load scripts and run them in a context. For both browsers and node, sync and async.
Downloads
7
Readme
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.