islo
TypeScript icon, indicating that this package has built-in type declarations

0.4.0 • Public • Published

N|Solid

Islo 🚧

Require modules in a sandbox environment. Modules are unable to require blacklisted modules and / or files outside of it's root. Islo does not require any dependencies.

Installation

Using npm:

$ npm i --save islo

Example

const Islo = require('islo')
const box = new Islo('./module', {
  blacklist: ['fs', 'mysql']
})

box.on('error', function (error) {
  console.log(error.toString())
})

box.run()

const box = new Islo(pathToModule, options)

  • 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 blacklisted modules will a 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 it's root.

box.on(eventName, callback)

  • eventName (String)
  • callback (Function)

Register a new handler for the given event. The callback function is called when the event is fired.


Middleware

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.

Events

event description
error A fatal error has occured when trying to execute the module. This can be caused because the module tried to require a blacklisted or unsafe module.

Package Sidebar

Install

npm i islo

Weekly Downloads

1

Version

0.4.0

License

MIT

Last publish

Collaborators

  • ajeo