import { IptvAddon, IptvAddonActions } from "@watchedcom/schema"; import { makeCreateFunction } from "../utils/addon-func"; import { BasicAddonClass } from "./BasicAddonClass"; import { ActionHandlers } from "./types"; export type IptvHandlers = Pick< ActionHandlers, IptvAddonActions >; export class IptvAddonClass extends BasicAddonClass { constructor(props: IptvAddon) { super(props); } public validateAddon() { super.validateAddon(); if (!this.hasActionHandler("iptv") && !this.props.playlistUrl) { throw new Error( `An IPTV addon needs at least an iptv action handler or a playlist URL` ); } } } export const createIptvAddon = makeCreateFunction({ AddonClass: IptvAddonClass, type: "iptv", defaults: () => ({ actions: [] }), });