README
WebHooks
Easy-to-use, object oriented WebHooks library written in TypeScript.
Install
npm install --save @bmiddha/webhooks
API
add(name, url) - Add WebHook
Parameters
| Name | Type | Required |
|---|---|---|
name |
string |
true |
url |
string |
true |
Return: void
Add WebHook to database.
remove(name, url) - Remove WebHook
Parameters
| Name | Type | Required |
|---|---|---|
name |
string |
true |
url |
string |
false |
Return: void
trigger(name, data, headers) - Trigger WebHook
Parameters
| Name | Type | Required |
|---|---|---|
name |
string |
true |
data |
JSON |
true |
headers |
JSON |
false |
Return: void
Event emission return value
getDB() - Get All WebHooks from Database
Return: Object
All names, and URLs.
{
"name1": [
"url1",
"url2",
"url3"
],
"name2": [
"url4"
]
}
getWebHook(name) - Get WebHook
Parameters
| Name | Type | Required |
|---|---|---|
name |
string |
true |
requestFunctions() - Get Request Functions
Return: (name: string, jsonData: {}, headersData?: {}) => Promise<void>[]
emitter() - Get Event Emitter
Return: events.EventEmitter
Example
import * as Redis from 'ioredis';
import WebHooks from '@bmiddha/webhooks';
const redisClient = new Redis();
const webHooks = new WebHooks({ redisClient });
webHooks.add('webHookName', 'http://localhost:8080/hook')
const demo = async () => {
await webHooks.add("webHookName", "http://localhost:8080/hook");
webHooks.trigger("webHooksName", { data: 123 });
webHooks.trigger(
"webHooksName",
{
test: "data",
more: {
test: "data"
},
even: {
more: {
test: "data"
}
}
},
{
"custom-header": "value"
}
);
}
demo();
Acknowledgments
Inspired by roccomuso/node-webhooks.
