UNPKG

react-native-drawing

Version:

A React Native library that provides a canvas to perform drawing actions

52 lines (51 loc) 1.72 kB
import { AnswerAck } from './AnswerAck'; import { Codec } from './Codec'; import { Receiver } from './Receiver'; import { ReceivedAck } from './ReceivedAck'; import { Sender } from './Sender'; export class MessageSystem { constructor(suscribe, sendData) { Object.defineProperty(this, "sender", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "receiver", { enumerable: true, configurable: true, writable: true, value: void 0 }); // Building codec const codec = new Codec((struct) => { return MessageSystem.fixCodecStruct(struct); }); // Building ACKs const receivedAck = new ReceivedAck(sendData); const answerAck = new AnswerAck(sendData); // Creating dependencies (both sides of Message System) this.sender = new Sender(codec, receivedAck, answerAck, sendData); this.receiver = new Receiver(codec, receivedAck, answerAck, suscribe); } /** * Send messages to the other side (ReactNative/WebView) and get back an answer */ postMessage(target, data) { return this.sender.postMessage(target, data); } /** * Listen messages from the other side (ReactNative/WebView) */ onMessage(target, handle) { this.receiver.onMessage(target, handle); } static fixCodecStruct(struct) { const { id, target, arg } = struct; return { id: (typeof id === 'number') ? id : NaN, target: (typeof target === 'string') ? target : '', arg, }; } }