Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

hmpo-stubber

Package Overview
Dependencies
Maintainers
0
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hmpo-stubber

Create dynamic stub API services using a simple JSON configuration

  • 3.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
20
increased by185.71%
Maintainers
0
Weekly downloads
 
Created
Source

hmpo-stubber

Create dynamic stub API services using a simple JSON configuration

Usage

const stubber = require('hmpo-stubber');

app.use('/stubs', stubber.middleware('./services.json', 'My Stub Server'));

stubber.middleware(services, [name], [basePath]); services: Array, // array of Service config objects (can be a filename, each service can be a filename) name: String(Stub), // name of stub server for debug logging basePath: String(./), // relative location when looking up filenames

Command line interface

hmpo-stubber [options] [services.json...]

  -c, --config path::String  Use configuration from this file
  -p, --port Number          Specify port to listen on - default: 3030
  -m, --mount String         Base path to mount mocks on - default: /
  -s, --scenario String      Specify the default scenario - default: default
  -h, --help                 display help

Command line config file

{
    port: Number(3030), // port number
    mount: String('/'), // base URL to mount the standalone server
    scenario: String(), // default scenario
    stubs: Array,       // array of service filenames or service lists, 
}

Configuration

Service config object

{
    name: String,        // service name for debug logging
    method: String(GET), // method to mount in the stub server
    url: String,         // url to mount in the stub server
    scenarios: Object,   // object of named Scenario config objects
        (can be a filename, each scenario can be a filename)
    defaultScenario:
        String(default), // specify the default scenario
    sessionID: {         // locations to look for the session ID
      header: String,
      param: String,
      body: String,
      query: String
    },
    scenarioID: {        // locations to look for the scenario ID
      header: String,
      param: String,
      body: String,
      query: String
    }
}

Scenario config object

{
    responses: Array,     // array of Response config objects to step through on each call
        (can be a filename, each response can be a filename, each response can be a function)
    loop: Boolean(false), // loop around the response list instead of staying on the last response
}

Response config object

{
    body: Object,          // body to send as JSON
        (can be a filename or a function)
    status: Number(200),   // status code to respond with
    delay: Number(0),      // delay before sending the response
        (in milliseconds)
    repeat: Number(1),     // number of times to repeat this response
    close: Boolean(false), // close the connection before sending a response
}

Exposed additions to the stub req object:

req: {
  stub{
    stubtub: Stub,
    service: Service,
    scenario: Scenario,
    response: Response,
    session: {
      services: {
        [service.name]: {
          scenario: Scenario,
          scenarioID: String,
          scenarioParam: String
        }
      }
    }
  }
}

Keywords

FAQs

Package last updated on 11 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc