0.1.5-alpha • Published 10 months ago

@hookdeck/pubsub v0.1.5-alpha

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
10 months ago

Hookdeck Pub/Sub SDK ALPHA Experiment

Package Version Dependencies Status Build Status Coverage Status Open Issues Commitizen Friendly

Hookdeck allows for Pub/Sub-type communication, but the platform primitives differ. This library enables the use of Pub/Sub primitives and mapping them to Hookdeck ones.

Here's a mapping of Pub/Sub conventions to Hookdeck ones:

  • Channel: A Hookdeck Source with a unique name where events are published
  • Subscription: A Hookdeck Connection consisting of a Source, Rules, and a Destination. The Destination is where events are delivered to and is the subscriber.

The current plan is only to support Filter rules.

Contents

Usage

const pubsub = new HookdeckPubSub({
  // Hookdeck project API Key
  apiKey,

  // Used when creating all Sources/channels
  publishAuth,
});

// Dynamically creates the Hookdeck Connection
const subscription = channel.subscribe({
  channel: "orders",

  // Where events published on the channel are sent
  url,

  // Optional. Used to authenticate the request to the subscribing url.
  auth,
});

// Creates a Source on the fly if one does not already exist with given name
const channel = pubsub.channel({
  name: "orders",
});

// Performs a POST request to the underlying Source URL
await channel.publish({
  channel: "orders",

  event: {
    type: "order.updated",
    data: {
      status: "PAYMENT_RECEIVED",
    },
  },
});

// Get all subscriptions to the "orders" channel
// Note: This current performs a fuzzy match
const subscriptions = await pubsub.getSubscriptions({
  name: "orders",
});

// Get all events sent to the subscription
const events = await pubsub.getEvents({ subscriptionId, includeBody: true });

// Get all delivery attempts for an event
const attempts = await pubsub.getDeliveryAttempts({
  eventId,
  includeBody: true,
});

Todos

  • Set up CI/CD
  • Add support for filters on subscriptions

Contributing

Ask questions and raise issues in the issues section.

Credits

0.1.5-alpha

10 months ago

0.1.4-alpha

10 months ago

0.1.3-alpha

10 months ago

0.1.2-alpha

10 months ago

0.1.1-alpha

10 months ago

0.1.0-alpha.2

10 months ago

0.1.0-alpha.1

10 months ago