nestjs-slack
Lightweight library to use Slack in NestJS applications.
Quick Start Guide
·
Request Feature
·
Report Bug
![Release](https://github.com/bjerkio/nestjs-slack/workflows/Release/badge.svg)
![Maintainability](https://api.codeclimate.com/v1/badges/95329385d5f02494fd7a/maintainability)
NestjS Slack helps you sending Slack messages in your NestJS application.
Combined with slack-block-builder
you can easily create maintainable, testable
and reusable Slack code declaratively and ready for production.
:zap: Features
- Used in many production workloads.
- Building blocks with slack-block-builder.
- Supports sending messages directly to Slack Web API.
- Supports Slack webhooks.
- Supports Google Logging.
:space_invader: Usage
▶ yarn add nestjs-slack
import { Module } from '@nestjs/common';
import { SlackModule } from 'nestjs-slack';
@Module({
imports: [
SlackModule.forRoot({
type: 'api',
apiOptions: {
token: '<insert-token-here',
},
}),
],
})
export class AppModule {}
To use webhook
type, you'll typically use these settings:
SlackModule.forRoot({
type: 'webhook',
webhookOptions: {
url: '<the webhook url>',
},
}),
Example
You can easily inject SlackService
to be used in your services, controllers,
etc.
import { Injectable } from '@nestjs/common';
import { SlackService } from 'nestjs-slack';
@Injectable()
export class AuthService {
constructor(private service: SlackService) {}
helloWorldMethod() {
this.service.sendText('Hello world was sent!');
return 'hello world';
}
}
Use with Google Logging
▶ yarn add @google-cloud/logging
import { SlackModule } from 'nestjs-slack';
@Module({
imports: [SlackModule.forRoot({ type: 'google' })],
})
export class AppModule {}
When type
is set to google
the @google-cloud/logging
package will be used
to send logs to stdout according to structured logs.
You can deploy gcl-slack to consume logs from this library.
Contribute & Disclaimer
We love to get help 🙏 Read more about how to get started in
CONTRIBUTING 🌳