🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

@hookdeck/pubsub

Package Overview
Dependencies
Maintainers
0
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hookdeck/pubsub

An experimental SDK providing PubSub abstractions for Hookdeck

0.1.5-alpha
latest
Source
npm
Version published
Weekly downloads
15
650%
Maintainers
0
Weekly downloads
 
Created
Source

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

Keywords

typescript

FAQs

Package last updated on 14 Aug 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