https://github.com/timnew/sandbox-runner
Run javascript in a sandbox context
https://github.com/timnew/sandbox-runner
Last synced: 11 months ago
JSON representation
Run javascript in a sandbox context
- Host: GitHub
- URL: https://github.com/timnew/sandbox-runner
- Owner: timnew
- License: mit
- Created: 2014-07-12T15:11:29.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2014-07-12T16:57:19.000Z (almost 12 years ago)
- Last Synced: 2025-05-02T16:04:40.472Z (about 1 year ago)
- Language: CoffeeScript
- Homepage: https://github.com/timnew/sandbox-runner
- Size: 141 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
sandbox-runner [![NPM version][npm-image]][npm-url] [![Build Status][ci-image]][ci-url] [![Dependency Status][depstat-image]][depstat-url]
================
> Eval a piece of javascript text in a sandbox environment
> Could be useful to test code generation or test javascript without proper module encapsulation.
## Install
Install using [npm][npm-url].
$ npm install sandbox-runner
## Usage
```javascript
var fs = require('fs');
var sandbox = require('sandbox-runner');
var codeSnippet = fs.readFileSync('./templates.js', {encoding:'utf8'});
/* Content of templates.js
this.Templates = this.Templates != null ? this.Templates : {};
this.Templates["hello"] = function (name) {
return 'hello ' + name + '!';
};
this.Templates["foo"] = function () {
return 'foo';
};
*/
var context = sandbox.run(codeSnippet);
context.Templates.hello('world').should.equal('hello world !');
```
## API
### `sanbox.run(script, context = {})`
> run the script snippet, a `context` is provided as `this` pointer.
* **script** The script text to be executed
* **context** The context that used in execution. An empty object will be provide if omitted.
** HINT ** Exception is thrown when error occurs in script. Remember to catch the exception in async code.
### `sandbox.moduleRun(script, filename = '')`
> run the script snippet as a node.js module
* **script** The script text to be executed
* **filenae** The fake file name that of the module in file system.
## License
MIT
[![NPM downloads][npm-downloads]][npm-url]
[npm-url]: https://npmjs.org/package/sandbox-runner
[npm-image]: http://img.shields.io/npm/v/sandbox-runner.svg?style=flat
[npm-downloads]: http://img.shields.io/npm/dm/sandbox-runner.svg?style=flat
[ci-url]: https://drone.io/github.com/timnew/sandbox-runner/latest
[ci-image]: https://drone.io/github.com/timnew/sandbox-runner/status.png
[depstat-url]: https://gemnasium.com/timnew/sandbox-runner
[depstat-image]: http://img.shields.io/gemnasium/timnew/sandbox-runner.svg?style=flat