@twurple/eventsub-base
Version:
Base for the other Twurple EventSub packages
111 lines (110 loc) • 7.65 kB
JavaScript
import { __decorate } from "tslib";
import { rtfm } from '@twurple/common';
import { EventSubSubscription } from "./EventSubSubscription.mjs";
import { EventSubChannelBanModerationEvent } from "../events/moderation/EventSubChannelBanModerationEvent.mjs";
import { EventSubChannelDeleteModerationEvent } from "../events/moderation/EventSubChannelDeleteModerationEvent.mjs";
import { EventSubChannelTimeoutModerationEvent } from "../events/moderation/EventSubChannelTimeoutModerationEvent.mjs";
import { EventSubChannelClearModerationEvent } from "../events/moderation/EventSubChannelClearModerationEvent.mjs";
import { EventSubChannelAutoModTermsModerationEvent } from "../events/moderation/EventSubChannelAutoModTermsModerationEvent.mjs";
import { EventSubChannelUnbanRequestModerationEvent } from "../events/moderation/EventSubChannelUnbanRequestModerationEvent.mjs";
import { EventSubChannelUnbanModerationEvent } from "../events/moderation/EventSubChannelUnbanModerationEvent.mjs";
import { EventSubChannelUntimeoutModerationEvent } from "../events/moderation/EventSubChannelUntimeoutModerationEvent.mjs";
import { EventSubChannelEmoteOnlyModerationEvent } from "../events/moderation/EventSubChannelEmoteOnlyModerationEvent.mjs";
import { EventSubChannelEmoteOnlyOffModerationEvent } from "../events/moderation/EventSubChannelEmoteOnlyOffModerationEvent.mjs";
import { EventSubChannelFollowersModerationEvent } from "../events/moderation/EventSubChannelFollowersModerationEvent.mjs";
import { EventSubChannelFollowersOffModerationEvent } from "../events/moderation/EventSubChannelFollowersOffModerationEvent.mjs";
import { EventSubChannelUniqueChatModerationEvent } from "../events/moderation/EventSubChannelUniqueChatModerationEvent.mjs";
import { EventSubChannelUniqueChatOffModerationEvent } from "../events/moderation/EventSubChannelUniqueChatOffModerationEvent.mjs";
import { EventSubChannelSlowModerationEvent } from "../events/moderation/EventSubChannelSlowModerationEvent.mjs";
import { EventSubChannelSlowOffModerationEvent } from "../events/moderation/EventSubChannelSlowOffModerationEvent.mjs";
import { EventSubChannelSubscribersModerationEvent } from "../events/moderation/EventSubChannelSubscribersModerationEvent.mjs";
import { EventSubChannelSubscribersOffModerationEvent } from "../events/moderation/EventSubChannelSubscribersOffModerationEvent.mjs";
import { EventSubChannelRaidModerationEvent } from "../events/moderation/EventSubChannelRaidModerationEvent.mjs";
import { EventSubChannelUnraidModerationEvent } from "../events/moderation/EventSubChannelUnraidModerationEvent.mjs";
import { EventSubChannelModModerationEvent } from "../events/moderation/EventSubChannelModModerationEvent.mjs";
import { EventSubChannelUnmodModerationEvent } from "../events/moderation/EventSubChannelUnmodModerationEvent.mjs";
import { EventSubChannelVipModerationEvent } from "../events/moderation/EventSubChannelVipModerationEvent.mjs";
import { EventSubChannelUnvipModerationEvent } from "../events/moderation/EventSubChannelUnvipModerationEvent.mjs";
import { EventSubChannelWarnModerationEvent } from "../events/moderation/EventSubChannelWarnModerationEvent.mjs";
/** @internal */
let EventSubChannelModerateSubscription = class EventSubChannelModerateSubscription extends EventSubSubscription {
constructor(handler, client, _broadcasterId, _moderatorId) {
super(handler, client);
this._broadcasterId = _broadcasterId;
this._moderatorId = _moderatorId;
/** @protected */ this._cliName = '';
}
get id() {
return `channel.moderate.${this._broadcasterId}.${this._moderatorId}`;
}
get authUserId() {
return this._moderatorId;
}
transformData(data) {
switch (data.action) {
case 'delete':
return new EventSubChannelDeleteModerationEvent(data, this._client._apiClient);
case 'clear':
return new EventSubChannelClearModerationEvent(data, this._client._apiClient);
case 'timeout':
return new EventSubChannelTimeoutModerationEvent(data, this._client._apiClient);
case 'untimeout':
return new EventSubChannelUntimeoutModerationEvent(data, this._client._apiClient);
case 'ban':
return new EventSubChannelBanModerationEvent(data, this._client._apiClient);
case 'unban':
return new EventSubChannelUnbanModerationEvent(data, this._client._apiClient);
case 'emoteonly':
return new EventSubChannelEmoteOnlyModerationEvent(data, this._client._apiClient);
case 'emoteonlyoff':
return new EventSubChannelEmoteOnlyOffModerationEvent(data, this._client._apiClient);
case 'followers':
return new EventSubChannelFollowersModerationEvent(data, this._client._apiClient);
case 'followersoff':
return new EventSubChannelFollowersOffModerationEvent(data, this._client._apiClient);
case 'uniquechat':
return new EventSubChannelUniqueChatModerationEvent(data, this._client._apiClient);
case 'uniquechatoff':
return new EventSubChannelUniqueChatOffModerationEvent(data, this._client._apiClient);
case 'slow':
return new EventSubChannelSlowModerationEvent(data, this._client._apiClient);
case 'slowoff':
return new EventSubChannelSlowOffModerationEvent(data, this._client._apiClient);
case 'subscribers':
return new EventSubChannelSubscribersModerationEvent(data, this._client._apiClient);
case 'subscribersoff':
return new EventSubChannelSubscribersOffModerationEvent(data, this._client._apiClient);
case 'raid':
return new EventSubChannelRaidModerationEvent(data, this._client._apiClient);
case 'unraid':
return new EventSubChannelUnraidModerationEvent(data, this._client._apiClient);
case 'mod':
return new EventSubChannelModModerationEvent(data, this._client._apiClient);
case 'unmod':
return new EventSubChannelUnmodModerationEvent(data, this._client._apiClient);
case 'vip':
return new EventSubChannelVipModerationEvent(data, this._client._apiClient);
case 'unvip':
return new EventSubChannelUnvipModerationEvent(data, this._client._apiClient);
case 'warn':
return new EventSubChannelWarnModerationEvent(data, this._client._apiClient);
case 'add_blocked_term':
case 'add_permitted_term':
case 'remove_blocked_term':
case 'remove_permitted_term':
return new EventSubChannelAutoModTermsModerationEvent(data, data.action, this._client._apiClient);
case 'approve_unban_request':
case 'deny_unban_request':
return new EventSubChannelUnbanRequestModerationEvent(data, data.action, this._client._apiClient);
default:
throw new Error(`Unknown moderation action: ${data.action}`);
}
}
async _subscribe() {
return await this._client._apiClient.asUser(this._moderatorId, async (ctx) => await ctx.eventSub.subscribeToChannelModerateEvents(this._broadcasterId, await this._getTransportOptions()));
}
};
EventSubChannelModerateSubscription = __decorate([
rtfm('eventsub-base', 'EventSubSubscription')
], EventSubChannelModerateSubscription);
export { EventSubChannelModerateSubscription };