Require modules in a sandbox environment. Modules are unable to require blacklisted modules and/or files outside of its root. Islo does not require any dependencies.
Using npm:
$ npm I --save islo
const Islo = require('islo')
const box = new Islo('./module', {
blacklist: ['fs', 'mysql']
})
box.on('error', function (error) {
console.log(error.toString())
})
box.run()
pathToModule
(String)options
(Object)key
(String) Path to the root folder of the given module. By default is the file directory of the module used.blacklist
(Array) If the module tries to require one of the blacklisted modules will an error be thrown.middleware
(Object) See the documentation about middleware for more information.
- Returns
Box
Create a new sandbox environment for the given module. By default is the module allowed to require any module but not any path outside of its root.
eventName
(String)callback
(Function)
Register a new handler for the given event. The callback function is called when the event is fired.
key | arguments | description |
---|---|---|
isSafe | module, info | This function is called when validating if a module is safe. Two arguments are passed the path/name of the module and some basic info. This function should return true if a module is safe and false if otherwise. If nothing is returned will the function be ignored. |
require | none | This function is called when requiring a module. This function can return a custom variable/module. If a module should be wrapped inside of a sandbox could the 'wrap' method inside the scope be used. If nothing is returned is the function ignored. |
event | description |
---|---|
error | A fatal error has occurred when trying to execute the module. This can be caused because the module tried to require a blacklisted or unsafe module. |