cool-webhooks
An outgoing webhooks library for Node.js
Installation
npm i --save cool-webhooks
Usage
const WebhookManager = const webhooks =
Register a new webhook
// Add a new webhooklet webhookId = await webhooks
Trigger a webhook
const event = 'order.created'const payload = order_id: '12345' // ... other payload fields const results = await webhooks // returns an array
Get a list of all webhooks
let registeredWebhooks = await webhooks // returns an array
Find webhooks matching an event
const event = 'order.created' let matched = await webhooks // returns an array
Unregister a webhook
const webhookId = 'some-webhook-id' await webhooks // throws an error if the webhook could not be removed
Adapters
We make use of the Adapter pattern to support any storage option you may want to use (MySQL, MongoDB...etc). Currently, the default adapter is InMemoryAdapter
.
Create a custom adapter
Your custom adapter must implement these methods:
const customAdapter = async { // this should create a new webhook and save it // return the webhook ID } async { // Remove the webhook } async { // return an array that contains all of the registered webhooks } async { // return an array of webhooks matching an event } const webhooks = adapter: customAdapter
Events
cool-webhooks
implements an event emitter interface to which you can listen for emitted events.
The supported events are:
webhook.added
is emitted when a new webhook is registered.webhook.removed
is emitted when a webhook is unregistered.webhook.success
is emitted when a webhook has been triggered and succeeded.webhook.fail
is emitted when a webhook has been triggered but failed.
Example:
webhooks webhooks
License
MIT