UNPKG

rx-player

Version:
34 lines (33 loc) 1.18 kB
import log from "../../log"; import noop from "../../utils/noop"; import queueMicrotaskUtil from "../../utils/queue_microtask"; import CoreInterface from "./base"; export class MonoThreadCoreInterface extends CoreInterface { constructor() { super(); this._currentCoreListener = noop; } sendMessage(msg) { log.debug("M-->C", "Sending message", { name: msg.type }); queueMicrotaskUtil(() => { // NOTE: We don't clone for performance reasons this._currentCoreListener({ data: msg }); }); } getCallbacks() { const setCoreMessageReceiver = (handler) => { this._currentCoreListener = handler; }; const sendCoreMessage = (msg, _transferables) => { queueMicrotaskUtil(() => { if (msg.type !== "log" /* CoreMessageType.LogMessage */) { log.debug("M<--C", "Sending message", { name: msg.type }); } this.listeners.forEach((listener) => { listener(msg); }); }); }; return { setCoreMessageReceiver, sendCoreMessage }; } }