A message queue service for publishing and subscribing to messages.

Constructors

  • Create a new MqService instance.

    Parameters

    • connectionString: string = 'amqp://localhost'

      The connection string to the message queue.

    • queueName: string = null

      The name of the queue to use. Normally this should be your service name. Only needed if you want to consume messages.

    • exchange: string = 'general'

      The exchange to use.

    • requeueUnhandled: boolean = false

      If true, unhandled messages will be requeued, otherwise they will be discarded.

    • logger: {
          error: ((message: string, error: any) => void);
          log: ((message: string) => void);
          warn: ((message: string) => void);
      } = console

      The logger to use for logging messages.

      • error: ((message: string, error: any) => void)
          • (message, error): void
          • Parameters

            • message: string
            • error: any

            Returns void

      • log: ((message: string) => void)
          • (message): void
          • Parameters

            • message: string

            Returns void

      • warn: ((message: string) => void)
          • (message): void
          • Parameters

            • message: string

            Returns void

    Returns MqService

Properties

connectionString: string = 'amqp://localhost'

The connection string to the message queue.

exchange: string = 'general'

The exchange to use.

logger: {
    error: ((message: string, error: any) => void);
    log: ((message: string) => void);
    warn: ((message: string) => void);
} = console

The logger to use for logging messages.

Methods

  • Type Parameters

    • TChannel extends
          | "COCKPIT_ADD_REGISTRATION"
          | "EMAIL_GENERIC"
          | "EMAIL_BUTTON"
          | "CUSTOMER_MERGE"
          | "CUSTOMER_DELETE"
          | "CUSTOMER_CREATED"

    Parameters

    • event: TChannel
    • payload: {
          COCKPIT_ADD_REGISTRATION: {
              name: "cockpit.addRegistration";
              payload: CockpitAddRegistrationPayload;
          };
          CUSTOMER_CREATED: {
              name: "customer.created";
              payload: CustomerCreatedEventPayload;
          };
          CUSTOMER_DELETE: {
              name: "customer.delete";
              payload: CustomerDeleteEventPayload;
          };
          CUSTOMER_MERGE: {
              name: "customer.merge";
              payload: MergeCustomerPayload;
          };
          EMAIL_BUTTON: {
              name: "email.button";
              payload: ButtonEmailEventPayload;
          };
          EMAIL_GENERIC: {
              name: "email.generic";
              payload: GenericEmailEventPayload;
          };
      }[TChannel]["payload"]

    Returns Promise<void>

  • Type Parameters

    • TChannel extends
          | "COCKPIT_ADD_REGISTRATION"
          | "EMAIL_GENERIC"
          | "EMAIL_BUTTON"
          | "CUSTOMER_MERGE"
          | "CUSTOMER_DELETE"
          | "CUSTOMER_CREATED"

    Parameters

    Returns Promise<void>