Skip to content

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.

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: '…' }),
[key: string]: any
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

TwilioModule

ConfigurableModuleClass.constructor
static forRoot(options): DynamicModule;

Defined in: lib/module/twilio.module.ts:159

Configure the default client and the options named clients inherit.

Parameter Type Description
options TwilioModuleOptions & Partial<{ }> Credentials plus any Twilio SDK client option, flat.

DynamicModule

ConfigurableModuleClass.forRoot

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.

Parameter Type
options ConfigurableModuleAsyncOptions<TwilioModuleOptions, "create"> & Partial<{ }>

DynamicModule

ConfigurableModuleClass.forRootAsync

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.

Parameter Type
options TwilioClientRegistration

DynamicModule

TwilioModule.registerClient({
name: 'billing',
accountSid: process.env.TWILIO_BILLING_ACCOUNT_SID,
authToken: process.env.TWILIO_BILLING_AUTH_TOKEN,
})

static registerClientAsync(options): DynamicModule;

Defined in: lib/module/twilio.module.ts:225

Register an additional named client, resolving its options through DI.

Parameter Type
options TwilioClientAsyncRegistration

DynamicModule

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],
})