Contributing

How to contribute

Summary of tools

Following tools are getting used:

Initial setup

Instructions on setting up development environment:

Project structure

├── Cakefile                       - build/watch tasks & scripts
├── LICENSE.txt
├── README.md
├── RELEASE_NOTES.md
├── bower.json
├── coffeelint.json
├── doc/                           - Legacy documentation
├── docs/                          - Documentation (root of GitHub pages)
│   └── codo/                      - Generated documentation
├── docs-src/                      - Guides (kodo build process uses it)
├── example/                       - Legacy example 
├── index.d.ts                     - Typescript type definitions
├── index.js                       - Entry point for nodejs
├── lib/                           - Compiled JS files
│   ├── stomp.js                   - Main library code
│   └── stomp.min.js
├── package.json
├── src/                           - CoffeeSctipt files
│   └── stomp.coffee               - Main library code
├── tests/                         - All tests
│   ├── config/
│   │   ├── browser-config.js      - Browser specific configuration
│   │   └── node-config.js         - NodeJS specific configuration
│   ├── index.html                 - Entry point for browser tests
│   └── unit/                      - All test files
└── yarn.lock                      - Current package versions

Setup a Stomp broker

Building and testing

To build JavaScript from the CoffeeScript source code:

$ cake build

To run tests using nodejs:

$ cake test

To continuously run tests on file changes:

$ cake watch

Browser Tests

Caution: As both browser and nodejs use same set of test cases and hence same queue names. So, running both together may cause unexpected failures.

Submit pull requests

STOMP API

STOMP over WebSocket provides a straightforward mapping from a STOMP frame to a JavaScript object. If you need to understand Stomp protocol, please see http://stomp.github.io/stomp-specification-1.2.html

Frame Object
PropertyTypeNotes
commandStringname of the frame ("CONNECT", "SEND", etc.)
headersJavaScript object
bodyString

The command and headers properties will always be defined but the headers can be empty if the frame has no headers. The body can be null if the frame does not have a body.

    Quickly fuzzy find classes, mixins, methods, file:

    Control the navigation frame:

    You can focus and blur the search input: