blocktank-util-slack-client
Client to interact with the blocktank-util-slack service.
Usage
Install
npm i @synonymdev/blocktank-util-slack-client
Send message
import { SlackClient } from '@synonymdev/blocktank-util-slack-client';
const client = new SlackClient('myConfiguredChannelName')
await client.info('myTitle', 'myMessage')
If the channel name is empty, the message will be logged to the console instead of sent to slack.
Rate limiting
Messages can be ratelimited to not overwhelm the channel. The rate limit is based on a key. If the key was already seen within the limitFor
duration, the message will be ignored.
interface RateLimitOptions {
key: string,
limitFor: Duration
}
interface Duration {
years?: number;
months?: number;
weeks?: number;
days?: number;
hours?: number;
minutes?: number;
seconds?: number;
}
Let's make an example:
await client.error('Couldnt read file', 'errorMessage', {
key: 'blocktank-ls-btc:fileReadKey',
limitFor: {
hours: 1
}
})
This will send a message with the level error
and the title Couldnt read file
.
The message will be sent only if the last message with the key blocktank-ls-btc:fileReadKey
was sent more than 1 hour ago.
If the last message was sent less than 1 hour ago, the message will be ignored.
Emojis used
SlackMessageLevel | Emoji |
---|
debug | |
success | ✅ |
info | ℹ️ |
notice | 📢 |
warning | ⚠️ |
error | ❌ |
critical | ‼️ |
alert | 🚨 |
emergency | 🆘 |
Test messages
Execute npx blocktank-util-slack-cli
in the terminal to send test messages. Make sure you install this package first.
Versioning
- Increase version in
package.json
. - Add changes to
CHANGELOG.md
. - Commit changes.
- Tag new version:
git tag v0.1.0
. - Push tag
git push origin v0.1.0
. - Publish to npm:
npm publish
.