1 | import { RequestError } from "@octokit/request-error";
|
2 | import type { WebhookEventMap, WebhookEventName } from "@octokit/webhooks-types";
|
3 | import { Logger } from "./createLogger";
|
4 | import type { emitterEventNames } from "./generated/webhook-names";
|
5 | export type EmitterWebhookEventName = (typeof emitterEventNames)[number];
|
6 | export 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>>;
|
11 | export type EmitterWebhookEventWithStringPayloadAndSignature = {
|
12 | id: string;
|
13 | name: EmitterWebhookEventName;
|
14 | payload: string;
|
15 | signature: string;
|
16 | };
|
17 |
|
18 | export type EmitterWebhookEventWithSignature = EmitterWebhookEvent & {
|
19 | signature: string;
|
20 | };
|
21 | interface BaseWebhookEvent<TName extends WebhookEventName> {
|
22 | id: string;
|
23 | name: TName;
|
24 | payload: WebhookEventMap[TName];
|
25 | }
|
26 | export interface Options<TTransformed = unknown> {
|
27 | secret?: string;
|
28 | transform?: TransformMethod<TTransformed>;
|
29 | log?: Partial<Logger>;
|
30 | }
|
31 | type TransformMethod<T> = (event: EmitterWebhookEvent) => T | PromiseLike<T>;
|
32 | export type HandlerFunction<TName extends EmitterWebhookEventName, TTransformed> = (event: EmitterWebhookEvent<TName> & TTransformed) => any;
|
33 | export type RemoveHandlerFunction<TName extends EmitterWebhookEventName | "*", TTransformed> = (event: EmitterWebhookEvent<Exclude<TName, "*">> & TTransformed) => any;
|
34 | type Hooks = {
|
35 | [key: string]: Function[];
|
36 | };
|
37 | export interface State extends Options<any> {
|
38 | eventHandler?: any;
|
39 | hooks: Hooks;
|
40 | log: Logger;
|
41 | }
|
42 |
|
43 |
|
44 |
|
45 | export type WebhookError = Error & Partial<RequestError>;
|
46 | export interface WebhookEventHandlerError extends AggregateError<WebhookError> {
|
47 | event: EmitterWebhookEvent;
|
48 | }
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 | declare class AggregateError<T extends Error = Error> extends Error implements Iterable<T> {
|
57 | readonly name: "AggregateError";
|
58 | constructor(errors: ReadonlyArray<T | {
|
59 | [key: string]: any;
|
60 | } | string>);
|
61 | [Symbol.iterator](): IterableIterator<T>;
|
62 | }
|
63 | export {};
|