2025-06-23 15:32:26 +08:00

21 lines
740 B
TypeScript

import { createEndpointRuntime } from './internal/endpoint-runtime';
import { usePostMessaging } from './internal/post-message';
import { createStreamWirings } from './internal/stream';
const win = usePostMessaging('window');
const endpointRuntime = createEndpointRuntime('window', (message) => win.postMessage(message));
win.onMessage((msg) => {
if ('type' in msg && 'transactionID' in msg) endpointRuntime.endTransaction(msg.transactionID);
else endpointRuntime.handleMessage(msg);
});
export function setNamespace(nsps: string): void {
win.setNamespace(nsps);
win.enable();
}
export const { sendMessage, onMessage } = endpointRuntime;
export const { openStream, onOpenStreamChannel } = createStreamWirings(endpointRuntime);