penpal
Version:
A promise-based library for communicating with iframes via postMessage.
19 lines (18 loc) • 712 B
JavaScript
import { MessageType } from '../enums';
/**
* Handles a SYN handshake message.
*/
export default (log, serializedMethods, childOrigin, originForSending) => {
return (event) => {
if (childOrigin !== '*' && event.origin !== childOrigin) {
log(`Parent: Handshake - Received SYN message from origin ${event.origin} which did not match expected origin ${childOrigin}`);
return;
}
log('Parent: Handshake - Received SYN, responding with SYN-ACK');
const synAckMessage = {
penpal: MessageType.SynAck,
methodNames: Object.keys(serializedMethods),
};
event.source.postMessage(synAckMessage, originForSending);
};
};