GithubLinkedIn

Repl Jack

jsnode

2015-02-21

Repl Jack is a utility for connecting to a remote node application utilizing one or more node js REPLs.

Essentially you run a Jack server, giving it a context for your REPLs. Then any client connecting to the jack will be given its own node js REPL. This allows you to run a node js application on a remote server, run this Jack alongside it, and have multiple REPLs jack into the running applications.

This can be very helpful for debugging or executing commands in a running server in real time.

installation

You can use npm to install : npm install repl-jack

Running a jack

Command Line

A command line script, jack-make is included that can host the jack and create a context. Here's an example:

1
2# make a jack, and run FooModule and insert it into the REPL context
3jack-make -c FooModule
4

To see its usage use --help

1
2$ jack-make --help                                                                                                                                                            13
4Usage: run-jack-make [options]
5
6Options:
7   -s, --start     starting port, this is the port that clients will need to use to connect  [9001]
8   -e, --end       ending port, the server will utilize the range of ports from start to end for handshaking and REPLs  [9006]
9   -c, --context   comma seperated list of modules to require and add to the context  []
10

Node API

Here's the node jS API

1
2var FooModule = require('FooModule');
3var Jack = require('repl-jack');
4
5var jack = new Jack({
6  context : { FooModule : FooModule},
7  ports : [9001,9002,9003]
8});
9

Connecting to a jack

A command line script, jack-connect, is included that can connect to the REPL jack. Example:

1
2#connect to a jack at 172.16.254.1 running on port 9001
3jack-connect -h 172.16.254.1 -p 9001
4

To its usage use --help

1$ run-jack-connect --help
2
3Usage: jack-connect [options]
4
5Options:
6   -h, --host
7   -p, --port   the port of the jack to connect to (should be the start port)  [9001]
8

Development

This is written in es6. There are a few build tasks that utilize gulp that allow you to test and run the applications in node. gulp run-jack-connect and gulp run-jack-make should get you started when making changes.