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' }
})