New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@algoan/nestjs-google-pubsub-microservice

Package Overview
Dependencies
Maintainers
0
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@algoan/nestjs-google-pubsub-microservice

A GooglePubSub transport strategy with NestJS Microservice

  • 3.1.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

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);
  }
}

EventPattern extras

You can add ListenOptions to the subscription by adding extras to the EventPattern decorator. For example, if you want a different topic name:

/**
  * Handle the test event
  * @param data Payload sent
  */
@EventPattern('test_event', { topicName: 'different_topic' })
public async handleTestEvent(@Payload() data: EmittedMessage<{ hello: string }>): Promise<void> {
  /**
    * Handle data emitted by Google PubSub
    */
  this.appService.handleTestEvent(data);
}

When the application will start and look for event patterns, it will get or create the different_topic topic from Google Cloud.

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:

Keywords

FAQs

Package last updated on 16 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc