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