JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1515
  • Score
    100M100P100Q108876F
  • License MIT

seamlessly create long-running child processes

Package Exports

  • slave
  • slave/master
  • slave/slave

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (slave) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

slave

NPM version Build status Test coverage Dependency Status License Downloads Gittip

Slave is a tiny utility to allow you to create long-running slave processes for your node process and use these functions as promises. Create modules that run in separate processes without anyone even knowing!

Walkthrough

Wrap your function in a slave. The function must either:

  • Be a co-based generator function
  • A function that returns a promise
  • A synchronous function

Now, create a separate my-module/slave.js file:

var slave = require('slave/slave');
var fn = require('./index.js'); // my main module
slave(fn); // it's wrapped!

Now you can create a my-module/master.js file, which runs slave.js:

var master = require('slave/master');
module.exports = master(require.resolve('./slave.js'))

Now users have two ways to use this module. Directly:

var fn = require('my-module');

fn(1, 2).then(function (val) {

});

Using child processes:

var fn = require('my-module/master');

fn(1, 2).then(function (val) {

});

API

var fn = slave.master(slavepath, [options])

Create a function from a slavepath, which exports a slave.slave() function.

Options are:

  • forks=0 - number of child processes to initiate immediately

fn will always return a promise, even if the wrapped function is synchronous.

fn.fork()

Create a new child process.

slave.slave(fn)

Hooks a function into process to allow the parent process to listen.