UNPKG

2.44 kBTypeScriptView Raw
1import { RequestError } from "@octokit/request-error";
2import type { WebhookEventMap, WebhookEventName } from "@octokit/webhooks-types";
3import { Logger } from "./createLogger";
4import type { emitterEventNames } from "./generated/webhook-names";
5export declare type EmitterWebhookEventName = typeof emitterEventNames[number];
6export declare type EmitterWebhookEvent<TEmitterEvent extends EmitterWebhookEventName = EmitterWebhookEventName> = TEmitterEvent extends `${infer TWebhookEvent}.${infer TAction}` ? BaseWebhookEvent<Extract<TWebhookEvent, WebhookEventName>> & {
7 payload: {
8 action: TAction;
9 };
10} : BaseWebhookEvent<Extract<TEmitterEvent, WebhookEventName>>;
11export declare type EmitterWebhookEventWithStringPayloadAndSignature = {
12 id: string;
13 name: EmitterWebhookEventName;
14 payload: string;
15 signature: string;
16};
17export declare type EmitterWebhookEventWithSignature = EmitterWebhookEvent & {
18 signature: string;
19};
20interface BaseWebhookEvent<TName extends WebhookEventName> {
21 id: string;
22 name: TName;
23 payload: WebhookEventMap[TName];
24}
25export interface Options<TTransformed = unknown> {
26 secret?: string;
27 transform?: TransformMethod<TTransformed>;
28 log?: Partial<Logger>;
29}
30declare type TransformMethod<T> = (event: EmitterWebhookEvent) => T | PromiseLike<T>;
31export declare type HandlerFunction<TName extends EmitterWebhookEventName, TTransformed> = (event: EmitterWebhookEvent<TName> & TTransformed) => any;
32declare type Hooks = {
33 [key: string]: Function[];
34};
35export interface State extends Options<any> {
36 eventHandler?: any;
37 hooks: Hooks;
38 log: Logger;
39}
40/**
41 * Error object with optional properties coming from `octokit.request` errors
42 */
43export declare type WebhookError = Error & Partial<RequestError>;
44export interface WebhookEventHandlerError extends AggregateError<WebhookError> {
45 event: EmitterWebhookEvent;
46}
47/**
48 * Workaround for TypeScript incompatibility with types exported by aggregate-error.
49 * Credit: https://git.io/JUEEr
50 * @copyright Sindre Sorhus
51 * @license MIT (https://git.io/JUEEK)
52 * @see https://github.com/octokit/webhooks.js/pull/270/files
53 */
54declare class AggregateError<T extends Error = Error> extends Error implements Iterable<T> {
55 readonly name: "AggregateError";
56 constructor(errors: ReadonlyArray<T | {
57 [key: string]: any;
58 } | string>);
59 [Symbol.iterator](): IterableIterator<T>;
60}
61export {};