UNPKG

2.61 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;
32export declare type RemoveHandlerFunction<TName extends EmitterWebhookEventName | "*", TTransformed> = (event: EmitterWebhookEvent<Exclude<TName, "*">> & TTransformed) => any;
33declare type Hooks = {
34 [key: string]: Function[];
35};
36export interface State extends Options<any> {
37 eventHandler?: any;
38 hooks: Hooks;
39 log: Logger;
40}
41/**
42 * Error object with optional properties coming from `octokit.request` errors
43 */
44export declare type WebhookError = Error & Partial<RequestError>;
45export interface WebhookEventHandlerError extends AggregateError<WebhookError> {
46 event: EmitterWebhookEvent;
47}
48/**
49 * Workaround for TypeScript incompatibility with types exported by aggregate-error.
50 * Credit: https://git.io/JUEEr
51 * @copyright Sindre Sorhus
52 * @license MIT (https://git.io/JUEEK)
53 * @see https://github.com/octokit/webhooks.js/pull/270/files
54 */
55declare class AggregateError<T extends Error = Error> extends Error implements Iterable<T> {
56 readonly name: "AggregateError";
57 constructor(errors: ReadonlyArray<T | {
58 [key: string]: any;
59 } | string>);
60 [Symbol.iterator](): IterableIterator<T>;
61}
62export {};