Skip to content

Function: wrapPostMessageEndpoint()

wrapPostMessageEndpoint<TThisRealm, TThatRealm>(endpoint, serializeOutgoing, deserializeIncoming, type, name): PostMessageEndpointBase<TThisRealm>

Creates a wrapped PostMessageEndpoint that transforms data using provided functions

Type Parameters

TThisRealm

TThisRealm

TThatRealm

TThatRealm

Parameters

endpoint

PostMessageEndpointBase<TThatRealm>

The base endpoint to wrap

serializeOutgoing

(data) => TThatRealm

Function to transform outgoing postMessage data

deserializeIncoming

(data) => TThisRealm

Function to transform incoming MessageEvent data

type

string = ''

name

string = ''

Returns

PostMessageEndpointBase<TThisRealm>

A wrapped endpoint with transformed data flow

@NO_SIDE_EFFECTS

Example

typescript
const wrappedEndpoint = wrapPostMessageEndpoint(
  originalEndpoint,
  (data) => JSON.stringify(data),           // Serialize outgoing data
  (event) => JSON.parse(event.data)        // Parse incoming data
)

wrappedEndpoint.postMessage({ hello: 'world' }) // Sends '{"hello":"world"}'
wrappedEndpoint.addEventListener('message', (ev) => {
  console.log(ev.data) // Already parsed object: { hello: 'world' }
})

Released under the MIT License.