import * as tg from "generic-type-guard"; import { Subject } from 'rxjs'; export const isMenuItemRegisterEvent = new tg.IsInterface().withProperties({ menutItem: tg.isString }).get(); /** * A message sent from the iFrame to the game to add a new menu item. */ export type MenuItemRegisterEvent = tg.GuardedType; export const isMenuItemRegisterIframeEvent = new tg.IsInterface().withProperties({ type: tg.isSingletonString("registerMenuCommand"), data: isMenuItemRegisterEvent }).get(); const _registerMenuCommandStream: Subject = new Subject(); export const registerMenuCommandStream = _registerMenuCommandStream.asObservable(); export function handleMenuItemRegistrationEvent(event: MenuItemRegisterEvent) { _registerMenuCommandStream.next(event.menutItem) }