@algoan/nestjs-google-pubsub-microservice
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.3 • Public • Published

    Nest Logo

    A Nest Google PubSub Microservice.

    NestJS Google Cloud PubSub Micro-service

    A custom NestJS Microservice transport strategy using Google Cloud PubSub.

    Installation

    npm install --save @algoan/pubsub @algoan/nestjs-google-pubsub-microservice

    Usage

    To start a new Google Cloud PubSub server:

    Server setup:

    // main.ts
    import { GooglePubSubOptions } from '@algoan/pubsub';
    import { INestMicroservice } from '@nestjs/common';
    import { NestFactory } from '@nestjs/core';
    import { GCPubSubServer } from '@algoan/nestjs-google-pubsub-microservice';
    import { AppModule } from './app.module';
    
    async function bootstrap() {
      const options: GooglePubSubOptions = {
        projectId: 'test',
        subscriptionsPrefix: 'test-app',
      }
    
      const app: INestMicroservice = await NestFactory.createMicroservice(AppModule, {
        strategy: new GCPubSubServer(options)
      })
    
      await app.listen();
    
      console.log('Server running!')
    }
    bootstrap()

    Controller:

    import { EmittedMessage } from '@algoan/pubsub';
    import { Controller } from '@nestjs/common';
    import { EventPattern, Payload } from '@nestjs/microservices';
    import { AppService } from './app.service';
    
    @Controller()
    export class AppController {
      constructor(private readonly appService: AppService) {}
    
      /**
       * Handle the test event
       * @param data Payload sent
       */
      @EventPattern('test_event')
      public async handleTestEvent(@Payload() data: EmittedMessage<{ hello: string }>): Promise<void> {
        /**
         * Handle data emitted by Google PubSub
         */
        this.appService.handleTestEvent(data);
      }
    }

    API

    This module uses @algoan/pubsub library which by default automatically acknowledges emitted messages.

    GCPubSubServer(options)

    Create a new Server instance of Google PubSub. It retrieves all message handlers patterns and creates subscriptions.

    • options: Algoan PubSub options. More information here.
    • options.listenOptions: Global options which will be applied to all subscriptions.
    • options.topicsNames: Only subscribe to topics included in this whitelist.

    Other NestJS Google Cloud PubSub server

    Other modules implementing Google Cloud PubSub with NestJS microservices:

    Install

    npm i @algoan/nestjs-google-pubsub-microservice

    DownloadsWeekly Downloads

    1,513

    Version

    3.0.3

    License

    ISC

    Unpacked Size

    16.7 kB

    Total Files

    7

    Last publish

    Collaborators

    • algoanbot
    • fabong
    • na-ji