expo-sdk-nestjs
v1.0.3
Published
expo-server-sdk in nestjs
Downloads
34
Maintainers
Readme
Instalation
$ yarn add expo-sdk-nestjs
$ npm install --save expo-sdk-nestjs
Getting Started
To use Expo-SDK client we need to register module for example in app.module.ts
import { TwilioModule } from 'nestjs-twilio';
@Module({
imports: [
ExpoSDKModule.forRoot({
accessToken: 'xxxx' // accessToken optional
}),
],
})
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 { Module } from '@nestjs/common';
import { ExpoSDKModule } from 'expo-sdk-nestjs';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
imports: [
ExpoSDKModule.forRootAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => {
return {
accessToken: configService.get('EXPO_PUSH_SECURITY'),
};
},
inject: [ConfigService],
}),
],
providers: [],
})
export class AppModule {}
Config Options for Module
| Option | Type | | --- | ----------- | | httpAgent | Agent | | maxConcurrentRequests | number | | accessToken | Expo Access Token - string |
Example usage in service.
import { ExpoSDKService } from 'expo-sdk-nestjs';
import { ExpoPushTicket, ExpoPushMessage } from 'expo-server-sdk';
@Injectable()
export class AppService {
public constructor(private readonly expoService: ExpoSDKService) {}
async sendNotifications(
chunks: ExpoPushMessage[][]
): Promise<ExpoPushTicket[] | undefined> {
try {
const tickets: ExpoPushTicket[] = [];
for (let i = 0; i < chunks.length; i++) {
const chunk = chunks[i];
const ticketChunk =
await this.expoService.client.sendPushNotificationsAsync(chunk);
tickets.push(...ticketChunk);
}
return tickets;
} catch (error) {
this.logger.error(error);
}
}
}
For full Client API see EXPO DOCS reference here expo-server-sdk-node repo here
Testing
Example of testing can be found here.