0.3.4 • Published 12 years ago

spinner v0.3.4

Weekly downloads
123
License
-
Repository
-
Last release
12 years ago

Spinner

Spin up node scripts bound to dynamic ports (forked from nploy)

$ npm install spinner

createRouter(opts)

Options:

  • range - Port range 7000..7099
  • time - Time to idle 15
  • debug - Output logs
  • routes - Hash of routing pairs (source -> target) {}
  • output - Determines how child process output is handled:
    • false - Will not capture child process output
    • "console" - Will pipe child process stdin/stderr to console.info/console.error
    • "process" - Will pipe child process stdin/stderr to process.stdin/process.stderr

Example:

var spinner = require('spinner');
var router = spinner.createRouter({ port: 5000, dir: '../test' });

router.setRoutes({
  'foo': 'a/index.js'
, 'goo': 'b/index.js'
});

router.getRoute('foo', function(err, route, child) {
  if (err) throw new Error(err);
  console.log('Use %s:%d to access "foo"', route.host, route.port);
  router.kill('foo', function(err) {
    console.log('"foo" is now dead');
    router.close();
  });
});

The router object has the following API.

Properties

  • range - Returns the port range configured in the router
  • idletime - Time in seconds to wait without a call to getRoute before the process is killed
  • options - Options object

setRoute(source, target), setRoutes(map)

target may be a path to a node.js script or an object with a script property (path to the script) and extra options passed to the forever module when starting the child process.

Update routes table with source -> script pair(s).

getRoute(source, callback)

Returns a route to a source. Callback is function(err, port, child) where port is the same port passed to the app in process.env.PORT.

clearRoute(source), clearRoutes(map)

Deletes route(s). If map is if not provided, all routes will be deleted

kill(source, callback)

Kills the process associated with source. callback is function(err).

close()

Shuts down the router. Namely, removes the idle timer.

getchild(source), getpid(source)

Returns the forever child of a source or it's PID.

Testing

Run tests:

npm test

Licence

MIT/X11

Author (nploy): George Stagas (@stagas)

Author (spinner): Elad Ben-Israel (@eladb)

ydd-build@chrissong/react-setup@der-cli-dev/init@pkq-cli/init@everything-registry/sub-chunk-2806@dada-fe-cli/init@dragon-slayer-dev/init@dragon-slayer/init@spark-bit/initguessgame-hamzagulfarmjsfe-scaffold-toolshyperlands-quizhshc-fe-cli@lrn-cli/packagekdtloctopus-fe-cliqs-publishnfysetupsystemroad-nonroad-solverreact-lib-clirievent-frontendsara-clits-dice-cleanertive-cliunic-clitapp-cliupload-with-ssh@wechat-mp/commands@zcgod-cli/init@zeng-cli/init@zcbest-cli/init@zf-cli/init@yss-cli/init@yq-cli-dev/init@xtnpm/xt-cliameer-currency-converter@alicd/sugarbio-lab-gene-expression-data-setarchercliatom-toolboxatm-aus@aurora-cli/utils@arcane-cli/init@npn-cli/init@diaosi/init@dolphin-iot/cli-initconnect-girror@david-cli-dev/init@der-cli/init@design-cli-dev/utils@fobiz-cli/utils@fwork-cli/init@glen-tool/cli@gmgo-cli/command@gmgo-cli/core@gmgo-cli/determine-device-type@gmgo-cli/execute@gmgo-cli/get-npm-info@gmgo-cli/init@gmgo-cli/log@gmgo-cli/packages@byte-sculpt/init@fbw-cli-dev/init@filway-cli/init@hhorg/hh-cli@h-cli-test/init@h-cli/init@guijiu-cli/initcctp-cli@colorssk-cli/init@cm-test-cli/utilscalculator-2hamzagul@buya-cli/init@nityer/init@niawenge-cli/init@nuts-2022/init@ldt-cli/init@kuku-cli/init@listenecho/node-cli-demon@own-cli-dev-ljq/init@rookie-cli-dev-test/init@mengui-cli/init@meron-cli/init@meritg-cli/init@moocba-cli/init@moke-cli/init@moderate-cli/init@motern-cli/init@mint-cli/init@minix-iot/cli-command@minix-iot/cli-create@minix-iot/cli-hydrate@minix-iot/cli-init@saimnomann_24/atm@jpon-cli/init@kev-cli/init@kiwi-fruit-cli/init@kmjs-client-cli/init
0.3.4

12 years ago

0.3.3

12 years ago

0.3.2

12 years ago

0.3.1

12 years ago

0.3.0

12 years ago

0.2.4

12 years ago

0.2.3

12 years ago

0.2.2

12 years ago

0.2.1

12 years ago

0.2.0

12 years ago

0.1.0

12 years ago

0.1.5

12 years ago

0.1.4

12 years ago

0.1.3

12 years ago