Socket
Socket
Sign inDemoInstall

@gojob/nest-cloud-pub-sub-transport

Package Overview
Dependencies
304
Maintainers
10
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @gojob/nest-cloud-pub-sub-transport

A Custom Transport strategy of the NestJS microservices pattern for Cloud Pub/Sub.


Version published
Weekly downloads
26
increased by2500%
Maintainers
10
Install size
36.4 MB
Created
Weekly downloads
 

Readme

Source

Nest Cloud Pub/Sub Transport

CircleCI

A Custom Transport strategy for Cloud Pub/Sub in Nest microservices.

TODO: in order to open-source it for NestJs, we must use loadPackage (from Server) to load @google-cloud/pubsub dynamically instead of having it installed in the dependenices of the project. Also, all types used from this package should be duplicated into local types/interfaces.

Getting started

yarn add @gojob/nest-cloud-pub-sub-transport
# or
npm install @gojob/nest-cloud-pub-sub-transport

Here is an example of implementation in your Nest application:

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const configService = app.get(ConfigService);

  app.connectMicroservice({
    strategy: new CloudServerPubSub({
      // "clientConfig": configuration passed "as is" to the Cloud PubSub client
      clientConfig: {
        keyFile: configService.get('GCP_KEY_FILE_PUBSUB'),
      },
      // "options": custom options, specific to this package
      options: {
        logger: app.get(LOGGER),
        // useful when your app is using a single topic & subscription
        defaultTopic: configService.get('DEFAULT_PUB_SUB_TOPIC'),
        defaultSubscription: configService.get('DEFAULT_PUB_SUB_SUBSCRIPTION'),
      },
    }),
  });

  await app.startAllMicroservices();
  await app.listen(3000);
}

Then use @EventPattern from @nestjs/microservices to decorate the event handlers which will be called when a new Pub/Sub message is received in your target topic(s).

Contributing

CommandAction
yarn compileEnsure the TypeScript code can be compiled using tsc
yarn buildBuild the project (transpile the code to JavaScript)
yarn lintLint the code (ESLint)
yarn testRun unit tests
yarn integrationRun integration tests

FAQs

Last updated on 02 Mar 2023

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc