1.3.2 • Published 28 days ago

@mvf/servicer-sqs v1.3.2

Weekly downloads
-
License
MIT
Repository
-
Last release
28 days ago

MVF Servicer SQS

Usage

TODO

To install the package

Run npm install @mvf/servicer-sqs

Configuration

Set the following environment variables in your project

  • ENVIRONMENT_FILE should be set to development | testing | staging | production

Servicer SQS

First setup sqs service, create src/Services/Sqs.ts

import { SQS } from '@aws-sdk/client-sqs';
import Environment from '../Setup/Environment';

let client: SQS | undefined;

export const Sqs = (): SQS => {
  if (!client) {
    const endpoint = Environment.AWS_ENDPOINT;
    client = endpoint
      ? new SQS({
          endpoint,
          credentials: {
            accessKeyId: 'dev',
            secretAccessKey: 'dev',
          },
        })
      : new SQS({});
  }

  return client;
};

Then setup SqsDaemon, create src/Setup/Sqs/SqsDaemon.ts

import { SqsMany, sqsConfig } from '@mvf/servicer-sqs';
import Environment from '../Environment';
import {
  InternalSqsEvents,
} from '../../EventSources/Sqs';
import { Sqs } from '../../Services/Sqs';

const template = Environment.SQS_URL_TEMPLATE;

export const SqsDaemon = new SqsMany([
  sqsConfig(InternalSqsEvents, template, 'internal', Sqs()),
  // Add sqs config for each sqs queue you want to consume from 
]);

Finally setup app entrypoint, create src/entrypoint.ts

import { Application, DaemonCommand } from "@mvf/servicer";
import { SqsDaemon } from './Setup/Sqs/SqsDaemon';

const setupApplication = async (): Promise<void> => {
  const application = new Application();

  application.addCommands(
    new DaemonCommand(SqsDaemon),
  );

  await application.run();
};

void setupApplication();

Contributing

Setup

  • Run make to build the container
  • Run make shell to enter the container
  • Run npm install to install dependencies

Refer to package.json for commands

After merging

After you have merged a PR to master, you need to rebuild and publish your changes.

  1. Checkout master git checkout master && git pull
  2. Use one of the following make publish commands to publish changes:
    • make publish kind=patch - Use this if your change is a bug fix and is backwards compatible.
    • make publish kind=minor - Use this if your change adds new functionality and is backwards compatible.
    • make publish kind=major - Use this if your change is not backwards compatible.