32 lines
860 B
JavaScript
32 lines
860 B
JavaScript
import { validateEventName } from "./validate-event-name.js";
|
|
function handleEventHandlers(state, webhookName, handler) {
|
|
if (!state.hooks[webhookName]) {
|
|
state.hooks[webhookName] = [];
|
|
}
|
|
state.hooks[webhookName].push(handler);
|
|
}
|
|
function receiverOn(state, webhookNameOrNames, handler) {
|
|
if (Array.isArray(webhookNameOrNames)) {
|
|
webhookNameOrNames.forEach(
|
|
(webhookName) => receiverOn(state, webhookName, handler)
|
|
);
|
|
return;
|
|
}
|
|
validateEventName(webhookNameOrNames, {
|
|
onUnknownEventName: "warn",
|
|
log: state.log
|
|
});
|
|
handleEventHandlers(state, webhookNameOrNames, handler);
|
|
}
|
|
function receiverOnAny(state, handler) {
|
|
handleEventHandlers(state, "*", handler);
|
|
}
|
|
function receiverOnError(state, handler) {
|
|
handleEventHandlers(state, "error", handler);
|
|
}
|
|
export {
|
|
receiverOn,
|
|
receiverOnAny,
|
|
receiverOnError
|
|
};
|