feat: hide deprecated events behind a flag (#2728)

This commit is contained in:
Vinh
2019-11-23 01:48:33 +07:00
committed by Wyatt Johnson
parent 787f1c68e7
commit 4542dbdb43
3 changed files with 23 additions and 2 deletions
+2
View File
@@ -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,
});
}
+5 -1
View File
@@ -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"),
@@ -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);
});