Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brh55/generator-spark-bot
:zap: Yeoman generator that scaffold out a Cisco spark bot with usability and simplicity in mind
https://github.com/brh55/generator-spark-bot
cisco cisco-spark flint nodejs scaffold spark yeoman
Last synced: about 1 month ago
JSON representation
:zap: Yeoman generator that scaffold out a Cisco spark bot with usability and simplicity in mind
- Host: GitHub
- URL: https://github.com/brh55/generator-spark-bot
- Owner: brh55
- License: mit
- Created: 2017-01-27T07:02:19.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-21T21:19:55.000Z (over 7 years ago)
- Last Synced: 2024-10-07T18:38:29.228Z (about 1 month ago)
- Topics: cisco, cisco-spark, flint, nodejs, scaffold, spark, yeoman
- Language: JavaScript
- Homepage:
- Size: 67.4 KB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: contributing.json
- License: LICENSE
Awesome Lists containing this project
- awesome-webex - generator-spark-bot - A yeoman generator that scaffolds out a bot with usability and simplicity in mind (by brh55). (Code samples / Bot samples)
README
# generator-spark-bot [![Travis](https://img.shields.io/travis/brh55/generator-spark-bot.svg?style=flat-square)](https://travis-ci.org/brh55/generator-spark-bot) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg?style=flat-square)](https://github.com/sindresorhus/xo)
> `generator-spark-bot` is a [yeoman](http://yeoman.io/) 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:
```bash
$ mkdir project-name
$ cd project-name
$ 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
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 | [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type)
The contextual trigger that will cause the bot to execute the callback upon matches.
#### callback | [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions)
The function to be executed (event handler).
## Command Sub-generator
`yo spark-bot:command`For convenience, the `:command` sub-generator will generate a new command within the `/commands` directory.
## 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](https://github.com/avajs/ava) - 🚀 Futuristic JavaScript test runner#### Linter
- [XO](https://github.com/sindresorhus/xo) - JavaScript happiness style linter#### Framework
- [Express](https://github.com/expressjs/express) - Fast, unopinionated, minimalist web framework for node.
- [Flint](https://github.com/flint-bot/flint) - Cisco Spark Bot SDK for Node JS## License
MIT © [Brandon Him](https://github.com/brh55/generator-spark-bot)