PromucFlow_constructor/app/client/src/sagas/ActionExecution/PostMessageSaga.ts
2022-06-24 09:20:09 +05:30

21 lines
647 B
TypeScript

import { spawn } from "redux-saga/effects";
import { PostMessageDescription } from "../../entities/DataTree/actionTriggers";
import { TriggerFailureError } from "sagas/ActionExecution/errorUtils";
export function* postMessageSaga(payload: PostMessageDescription["payload"]) {
yield spawn(executePostMessage, payload);
}
function* executePostMessage(payload: PostMessageDescription["payload"]) {
const { message, targetOrigin, transfer } = payload;
try {
window.parent.postMessage(
message,
targetOrigin || "*",
transfer || undefined,
);
} catch (error) {
throw new TriggerFailureError(error.message);
}
}