Package Exports
- nestjs-twilio
- nestjs-twilio/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nestjs-twilio) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
nestjs-twilio
Injectable Twilio client for Nestjs.
Implementing the TwilioModule from this package you gain access to Twilio client through dependency injection with minimal setup.
Instalation
$ npm install --save twilio nestjs-twilio$ yarn add twilio nestjs-twilioGetting Started
To 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
🚨 @InjectTwilio() decorator has been deprecated in v3
Testing
Example of testing can be found here.