@fabrix/spool-repl

Spool - REPL for Fabrix

Stats

StarsIssuesVersionUpdatedCreatedSize
@fabrix/spool-repl
201.5.03 years ago3 years agoMinified + gzip package size for @fabrix/spool-repl in KB

Readme

spool-repl

Gitter NPM version Build Status Test Coverage Dependency Status Follow @FabrixApp on Twitter

REPL Spool. Adds an interactive shell to your Fabrix app to help with development and debugging. Saves command history between sessions.

Install

$ npm install @fabrix/spool-repl --save

Usage

The repl spool is loaded in your spool config per usual.

// config/main.ts
import { REPL } from 'spool-repl'
export const main = {
  // ...
  spools: [
    // ...
    REPL
  ]
}
// config/repl.ts
export const repl = {
  /**
   * REPL is disabled automatically if no text terminal is available. Set
   * to "true" to override this behavior.
   */
  allowNoTTY: false
}

Shell Commands

With the REPL Spool you can test your REST API directly from the interactive shell.

GET

get("/api/v1/default/info")

HEAD

head("/api/v1/default/info")

OPTIONS

options("/api/v1/default/info")

POST

post("/api/v1/default/info", {some : 'data'})

If you want to simulate some HTML form you can do :

post("/api/v1/default/info", 'some=data', 'application/x-www-form-urlencoded')

PUT

put("/api/v1/default/info", {some : 'data'})

If you want to simulate some HTML form you can do :

put("/api/v1/default/info", 'some=data', 'application/x-www-form-urlencoded')

PATCH

patch("/api/v1/default/info", {some : 'data'})

DELETE

delete("/api/v1/default/info")

By default headers are {'Accept': 'application/json'} but they can be modified by adding an extra param of each method like this :

get("/api/v1/default/info", {'Accept': 'text/xml'})
head("/api/v1/default/info", {'Accept': 'text/xml'})
options("/api/v1/default/info", 'some=data', 'application/x-www-form-urlencoded', {'Accept': 'text/xml'})
post("/api/v1/default/info", 'some=data', 'application/x-www-form-urlencoded', {'Accept': 'text/xml'})
put("/api/v1/default/info", 'some=data', 'application/x-www-form-urlencoded', {'Accept': 'text/xml'})
patch("/api/v1/default/info", 'some=data', 'application/x-www-form-urlencoded', {'Accept': 'text/xml'})
delete("/api/v1/default/info", 'some=data', 'application/x-www-form-urlencoded', {'Accept': 'text/xml'})

Contributing

We love contributions! Please check out our Contributor's Guide for more information on how our projects are organized and how to get started.

License

MIT

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.