mirror of
https://github.com/Snigdha-OS/documentation.git
synced 2025-09-07 19:25:13 +02:00
61 lines
1.7 KiB
Markdown
61 lines
1.7 KiB
Markdown
# Eval - require() for module content!
|
|
|
|
## Overview
|
|
|
|
This module is a simple way to evaluate a module content in the same way as require() but without loading it from a file. Effectively, it mimicks the javascript evil `eval` function but leverages Node's VM module instead.
|
|
|
|
|
|
## Benefits
|
|
|
|
Why would you be using the `eval` module over the native`require`? Most of the time `require` is fine but in some situations, I have found myself wishing for the following:
|
|
|
|
* Ability to supply a context to a module
|
|
* Ability to load the module file(s) from non node standard places
|
|
|
|
Or simply to leverage JavaScript's `eval` but with sandboxing.
|
|
|
|
|
|
## Download
|
|
|
|
It is published on node package manager (npm). To install, do:
|
|
|
|
npm install eval
|
|
|
|
|
|
## Usage
|
|
|
|
```` javascript
|
|
var _eval = require('eval')
|
|
var res = _eval(content /*, filename, scope, includeGlobals */)
|
|
````
|
|
|
|
The following options are available:
|
|
|
|
* `content` (__String__): the content to be evaluated
|
|
* `filename` (__String__): optional dummy name to be given (used in stacktraces)
|
|
* `scope` (__Object__): scope properties are provided as variables to the content
|
|
* `includeGlobals` (__Boolean__): allow/disallow global variables (and require) to be supplied to the content (default=false)
|
|
|
|
|
|
## Examples
|
|
|
|
```` javascript
|
|
var _eval = require('eval')
|
|
var res = _eval('var x = 123; exports.x = x')
|
|
// => res === { x: 123 }
|
|
|
|
res = _eval('module.exports = function () { return 123 }')
|
|
// => res() === 123
|
|
|
|
res = _eval('module.exports = require("events")', true)
|
|
// => res === require('events')
|
|
|
|
res = _eval('exports.x = process', true)
|
|
// => res.x === process
|
|
````
|
|
|
|
|
|
## License
|
|
|
|
[Here](https://github.com/pierrec/node-eval/tree/master/LICENSE)
|