aboutsummaryrefslogtreecommitdiff
path: root/src/publisher/index.ts
blob: e721160f9c795f9f9997a433dcf9b59ea9a1831b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import type { Duration, Result } from "../util";

export enum PublisherType {
  DISCORD = "discord",
  NTFY = "ntfy",
}

export interface DiscordPost {
  webhook: string;
  role_id: string;
}

export interface NtfyPost {
  webhook: string;
}

export type PublisherPost = DiscordPost | NtfyPost;

export interface Publisher {
  type: PublisherType;
  at: Duration;
  post: PublisherPost;
}

export interface ResultPublishable {
  publish(testResult: Result<boolean, Error>): void;
}