An experimental SDK providing PubSub abstractions for Hookdeck
APACHE-2.0 License
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:
† The current plan is only to support Filter rules.
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({
type: "order.updated",
headers: {}
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,
});
Ask questions and raise issues in the issues section.