TwilioModule
Defined in: lib/module/twilio.module.ts:153
NestJS module for injecting Twilio SDK clients.
forRoot() configures the default client and the options every named client
inherits. registerClient() adds further clients (typically subaccounts)
which inherit those options and override what they need.
The module registers globally, as TypeOrmCoreModule, Mongoose’s core module
and BullModule.forRoot() all do. Importing it once in the root module makes
TwilioService and every client available application-wide.
Examples
Section titled “Examples”Synchronous registration
@Module({ imports: [ TwilioModule.forRoot({ accountSid: process.env.TWILIO_ACCOUNT_SID, authToken: process.env.TWILIO_AUTH_TOKEN, }), ],})export class AppModule {}Asynchronous registration
TwilioModule.forRootAsync({ imports: [ConfigModule], useFactory: (config: ConfigService) => ({ accountSid: config.getOrThrow('TWILIO_ACCOUNT_SID'), authToken: config.getOrThrow('TWILIO_AUTH_TOKEN'), }), inject: [ConfigService],})Shared transport settings, per-subaccount credentials
TwilioModule.forRoot({ accountSid, authToken, region: 'ie1', edge: 'dublin' }),// Inherits region and edge; overrides the credentials.TwilioModule.registerClient({ name: 'billing', accountSid: '…', authToken: '…' }),Extends
Section titled “Extends”Indexable
Section titled “Indexable”[key: string]: anyConstructors
Section titled “Constructors”Constructor
Section titled “Constructor”new TwilioModule(): TwilioModule;Defined in: node_modules/.pnpm/@nestjs+common@12.0.4_reflect-metadata@0.2.2_rxjs@7.8.2_supports-color@7.2.0/node_modules/@nestjs/common/module-utils/interfaces/configurable-module-cls.interface.d.ts:12
Returns
Section titled “Returns”TwilioModule
Inherited from
Section titled “Inherited from”ConfigurableModuleClass.constructorMethods
Section titled “Methods”forRoot()
Section titled “forRoot()”static forRoot(options): DynamicModule;Defined in: lib/module/twilio.module.ts:159
Configure the default client and the options named clients inherit.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options |
TwilioModuleOptions & Partial<{ }> |
Credentials plus any Twilio SDK client option, flat. |
Returns
Section titled “Returns”DynamicModule
Overrides
Section titled “Overrides”ConfigurableModuleClass.forRootforRootAsync()
Section titled “forRootAsync()”static forRootAsync(options): DynamicModule;Defined in: lib/module/twilio.module.ts:169
Configure the default client asynchronously.
Accepts useFactory, useClass or useExisting, along with imports
and inject.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options |
ConfigurableModuleAsyncOptions<TwilioModuleOptions, "create"> & Partial<{ }> |
Returns
Section titled “Returns”DynamicModule
Overrides
Section titled “Overrides”ConfigurableModuleClass.forRootAsyncregisterClient()
Section titled “registerClient()”static registerClient(options): DynamicModule;Defined in: lib/module/twilio.module.ts:192
Register an additional named client, typically a subaccount.
Options omitted here are inherited from forRoot(); a defined value
overrides. A key set to undefined inherits rather than clearing, so
reading configuration from possibly-unset environment variables is safe.
Works without forRoot(), in which case the registration must carry full
credentials.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options |
TwilioClientRegistration |
Returns
Section titled “Returns”DynamicModule
Example
Section titled “Example”TwilioModule.registerClient({ name: 'billing', accountSid: process.env.TWILIO_BILLING_ACCOUNT_SID, authToken: process.env.TWILIO_BILLING_AUTH_TOKEN,})registerClientAsync()
Section titled “registerClientAsync()”static registerClientAsync(options): DynamicModule;Defined in: lib/module/twilio.module.ts:225
Register an additional named client, resolving its options through DI.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options |
TwilioClientAsyncRegistration |
Returns
Section titled “Returns”DynamicModule
Example
Section titled “Example”TwilioModule.registerClientAsync({ name: 'billing', imports: [ConfigModule], useFactory: (config: ConfigService) => ({ accountSid: config.getOrThrow('TWILIO_BILLING_ACCOUNT_SID'), authToken: config.getOrThrow('TWILIO_BILLING_AUTH_TOKEN'), }), inject: [ConfigService],})