Injectable Twilio client for Nestjs.
Implementing the TwilioModule
from this package you gain access to Twilio client through dependency injection with minimal setup.
$ npm install --save twilio nestjs-twilio
$ yarn add twilio nestjs-twilio
The simplest way to use nestjs-twilio
is to use TwilioModule.forRoot
import { TwilioModule } from 'nestjs-twilio';
@Module({
imports: [
TwilioModule.forRoot({
accountSid: process.env.TWILIO_ACCOUNT_SID,
authToken: process.env.TWILIO_AUTH_TOKEN,
}),
],
})
export class AppModule {}
Utilizing asynchronous providers
import { TwilioModule } from 'nestjs-twilio';
@Module({
imports: [
TwilioModule.forRootAsync({
imports: [ConfigModule],
useFactory: async (cfg: ConfigService) => ({
accountSid: cfg.get('TWILIO_ACCOUNT_SID'),
authToken: cfg.get('TWILIO_AUTH_TOKEN'),
}),
inject: [ConfigService],
}),
],
})
export class AppModule {}
You can then inject the Twilio client into any of your injectables by using a custom decorator
import { InjectTwilio, TwilioClient } from 'nestjs-twilio';
@Injectable()
export class AppService {
public constructor(@InjectTwilio() private readonly client: TwilioClient) {}
async sendSMS() {
try {
return await this.client.messages.create({
body: 'SMS Body, sent to the phone!',
from: process.env.TWILIO_PHONE_NUMBER,
to: TARGET_PHONE_NUMBER,
});
} catch (e) {
return e;
}
}
}