JSPM

generator-spark-bot

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q30453F
  • License MIT

Scaffold a Cisco spark bot with simplicity and usability in mind

Package Exports

  • generator-spark-bot

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (generator-spark-bot) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

generator-spark-bot Travis XO code style

generator-spark-bot is a yeoman generator that scaffolds out a node Cisco Spark bot following an event-driven fashion, and is extremely easy to get started with.

trigger context => callback()

Designed with simplicity and usability in mind:

  • Fast to get started, just drop a .js file within /commands and your bot will register a listener on start
  • Easier unit testing with access to commands' private methods
  • Includes Flint for a more robust framework

Usage

Ensure yeoman is is installed:

npm install -g yo or yarn global add yo

After yeoman is installed:

yo spark-bot

App Structure

.
├── commands                  # Event handlers are within the commands
│   └── example.js            # An example command for reference
├── app.js                    # Bot entry point
├── config.js                 # Configurations
├── test.js                   # AVA Test
├── readme.md
├── license
└── package.json

Commands

A command sub-generator [yo spark-bot:command] is soon to come

Commands will instruct the bot on when and how to respond to particular contextual triggers.

To add a command, simply add a .js file within the commands directory. When the bot is initializing, commands will automatically register with Flint at runtime.

These command must implement an interface that contains a trigger property and a callback method. Refer to example.js within the commands directory.

trigger | <RegEx>, <string>

The contextual trigger that will cause the bot to execute the callback upon matches.

callback | <function>

The function to be executed (event handler).

Scripts

  • npm run test - Run linter and unit test
  • npm start - Start the bot
  • npm run debug - Activate debugging to log

Unit Testing

Unit testing is straightforward, simple, and already configured with the AVA test runner. Commands are accessible through the fileName as a property of the commands object. Thus, any command callbacks can be tested as such: commands.fileName.callback.

In addition, the rewire module is pre-configured to test private methods and is easily accessible without the need of exporting any private methods. This is done with the __get__() method. IE: commands.example.__get__('buildExampleMessage').

Tech Dependencies

Test Runner

  • AVA - 🚀 Futuristic JavaScript test runner

Linter

  • XO - JavaScript happiness style linter

Framework

  • Express - Fast, unopinionated, minimalist web framework for node.
  • Flint - Cisco Spark Bot SDK for Node JS

License

MIT © Brandon Him