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 nestjs-twilio$ yarn add nestjs-twilioTo use Twilio client we need to register module for example in app.module.ts
import { TwilioModule } from 'nestjs-twilio';
@Module({
imports: [
TwilioModule.forRoot({
accountSid: process.env.TWILIO_ACCOUNT_SID,
authToken: process.env.TWILIO_AUTH_TOKEN,
}),
],
})
export class AppModule {}If you are using the @nestjs/config package from nest, you can use the ConfigModule using the registerAsync() function to inject your environment variables like this in your custom module:
import { TwilioModule } from 'nestjs-twilio';
@Module({
imports: [
TwilioModule.forRootAsync({
imports: [ConfigModule],
useFactory: (cfg: ConfigService) => ({
accountSid: cfg.get('TWILIO_ACCOUNT_SID'),
authToken: cfg.get('TWILIO_AUTH_TOKEN'),
}),
inject: [ConfigService],
}),
],
})
export class AppModule {}Example usage in service.
import { InjectTwilio, TwilioService } from 'nestjs-twilio';
@Injectable()
export class AppService {
public constructor(private readonly twilioService: TwilioService) {}
async sendSMS() {
return this.twilioService.client.messages.create({
body: 'SMS Body, sent to the phone!',
from: TWILIO_PHONE_NUMBER,
to: TARGET_PHONE_NUMBER,
});
}
}For full Client API see Twilio Node SDK reference here
Example of testing can be found here.