36 lines
1 KiB
TypeScript
36 lines
1 KiB
TypeScript
import { Subject } from "rxjs";
|
|
import { iframeListener } from "../../IframeListener";
|
|
import {
|
|
isMessageReferenceEvent,
|
|
isTriggerMessageEvent,
|
|
MessageReferenceEvent,
|
|
removeTriggerMessage,
|
|
triggerMessage,
|
|
TriggerMessageEvent,
|
|
} from "./TriggerMessageEvent";
|
|
import * as tg from "generic-type-guard";
|
|
export function sendMessageTriggeredEvent(uuid: string) {
|
|
iframeListener.postMessage({
|
|
type: "messageTriggered",
|
|
data: {
|
|
uuid,
|
|
} as MessageReferenceEvent,
|
|
});
|
|
}
|
|
|
|
const isTriggerMessageEventObject = new tg.IsInterface()
|
|
.withProperties({
|
|
type: tg.isSingletonString(triggerMessage),
|
|
data: isTriggerMessageEvent,
|
|
})
|
|
.get();
|
|
|
|
const isTriggerMessageRemoveEventObject = new tg.IsInterface()
|
|
.withProperties({
|
|
type: tg.isSingletonString(removeTriggerMessage),
|
|
data: isMessageReferenceEvent,
|
|
})
|
|
.get();
|
|
|
|
export const isTriggerMessageHandlerEvent = tg.isUnion(isTriggerMessageEventObject, isTriggerMessageRemoveEventObject);
|