diff --git a/src/core/client/embed/Coral.ts b/src/core/client/embed/Coral.ts index ed7f70c6a..934ece801 100644 --- a/src/core/client/embed/Coral.ts +++ b/src/core/client/embed/Coral.ts @@ -15,6 +15,7 @@ export interface Config { autoRender?: boolean; events?: (eventEmitter: EventEmitter2) => void; accessToken?: string; + enableDeprecatedEvents?: boolean; } export function createStreamEmbed(config: Config): StreamEmbed { @@ -36,5 +37,6 @@ export function createStreamEmbed(config: Config): StreamEmbed { autoRender: config.autoRender, eventEmitter, accessToken: config.accessToken, + enableDeprecatedEvents: config.enableDeprecatedEvents, }); } diff --git a/src/core/client/embed/StreamEmbed.ts b/src/core/client/embed/StreamEmbed.ts index 4b82161a9..0b665fc37 100644 --- a/src/core/client/embed/StreamEmbed.ts +++ b/src/core/client/embed/StreamEmbed.ts @@ -33,6 +33,7 @@ export interface StreamEmbedConfig { id: string; rootURL: string; accessToken?: string; + enableDeprecatedEvents?: boolean; } export class StreamEmbed { @@ -137,7 +138,10 @@ export class StreamEmbed { withAutoHeight, withClickEvent, withSetCommentID, - withEventEmitter(this.config.eventEmitter), + withEventEmitter( + this.config.eventEmitter, + this.config.enableDeprecatedEvents + ), withLiveCommentCount(this.config.eventEmitter), withPymStorage(localStorage, "localStorage"), withPymStorage(sessionStorage, "sessionStorage"), diff --git a/src/core/client/embed/decorators/withEventEmitter.ts b/src/core/client/embed/decorators/withEventEmitter.ts index 878059f94..531e22717 100644 --- a/src/core/client/embed/decorators/withEventEmitter.ts +++ b/src/core/client/embed/decorators/withEventEmitter.ts @@ -2,10 +2,25 @@ import { EventEmitter2 } from "eventemitter2"; import { Decorator } from "./types"; -const withEventEmitter = (eventEmitter: EventEmitter2): Decorator => pym => { +const withEventEmitter = ( + eventEmitter: EventEmitter2, + enableDeprecatedEvents = false +): Decorator => pym => { // Pass events from iframe to the event emitter. pym.onMessage("event", (raw: string) => { const { eventName, value } = JSON.parse(raw); + // TODO: (cvle) Remove this when no longer needed. + if (!enableDeprecatedEvents) { + if ((eventName as string).startsWith("mutation.")) { + return; + } + if ((eventName as string).startsWith("fetch.")) { + return; + } + if ((eventName as string).startsWith("subscription.")) { + return; + } + } eventEmitter.emit(eventName, value); });