An open API service indexing awesome lists of open source software.

https://github.com/lkaric/nestjs-twilio

Injectable Twilio client for Nestjs.
https://github.com/lkaric/nestjs-twilio

hacktoberfest nestjs nodejs twilio twilio-api typescript

Last synced: 3 months ago
JSON representation

Injectable Twilio client for Nestjs.

Awesome Lists containing this project

README

          



nestjs-twilio




Injectable Twilio client for Nestjs.

[![npm version](https://img.shields.io/npm/v/nestjs-twilio)](https://www.npmjs.com/package/nestjs-twilio)
[![miniziped size](https://badgen.net/bundlephobia/minzip/nestjs-twilio)](https://bundlephobia.com/result?p=nestjs-twilio)
[![tree shaking](https://badgen.net/bundlephobia/tree-shaking/react-colorful)](https://github.com/lkaric/nestjs-twilio)
[![MIT licensed](https://img.shields.io/github/license/rejvban/nestjs-twilio)](https://raw.githubusercontent.com/lkaric/nestjs-twilio/master/LICENSE)

Implementing the `TwilioModule` from this package you gain access to Twilio client through dependency injection with minimal setup.

## Instalation

```bash
$ npm install --save nestjs-twilio
```

```bash
$ yarn add nestjs-twilio
```

## Getting Started

To use Twilio client we need to register module for example in app.module.ts

```typescript
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:

```typescript
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.

```typescript
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](https://www.twilio.com/docs/libraries/node)

## Testing

Example of testing can be found [here](https://github.com/lkaric/nestjs-twilio/blob/master/lib/__tests__/twilio.module.test.ts).