API reference › @evolu/web › createMessageChannel
function createMessageChannel<Input, Output = never>(): MessageChannel<
Input,
Output
>;
Defined in: packages/web/src/Worker.ts:102
Creates a MessageChannel from a Web MessageChannel.
Example
import { assertEqual } from "@evolu/common";
import { createMessageChannel } from "@evolu/web";
interface Ping {
readonly type: "Ping";
}
interface Pong {
readonly type: "Pong";
}
using channel = createMessageChannel<Ping, Pong>();
channel.port2.onMessage = () => {
channel.port2.postMessage({ type: "Pong" });
};
const response = await new Promise<Pong>((resolve) => {
channel.port1.onMessage = resolve;
channel.port1.postMessage({ type: "Ping" });
});
assertEqual(response, { type: "Pong" });