( id: string, type: T, payload: RequestMessageMap[T], )
| 99 | * New serialization functions without Blob handling |
| 100 | */ |
| 101 | export function serializeRequestMessage<T extends keyof RequestMessageMap>( |
| 102 | id: string, |
| 103 | type: T, |
| 104 | payload: RequestMessageMap[T], |
| 105 | ): BaseMessageFormat { |
| 106 | if (type === MessageType.EVENT_ITERATOR) { |
| 107 | const eventPayload = payload as EventIteratorPayload |
| 108 | const serializedPayload: SerializedEventIteratorPayload = { |
| 109 | e: eventPayload.event, |
| 110 | d: eventPayload.data, |
| 111 | m: eventPayload.meta, |
| 112 | } |
| 113 | |
| 114 | return { i: id, t: type, p: serializedPayload } |
| 115 | } |
| 116 | |
| 117 | if (type === MessageType.ABORT_SIGNAL) { |
| 118 | return { i: id, t: type, p: payload } |
| 119 | } |
| 120 | |
| 121 | const request = payload as RequestMessageMap[MessageType.REQUEST] |
| 122 | |
| 123 | const serializedPayload: SerializedRequestPayload = { |
| 124 | u: request.url.toString().replace(SHORTABLE_ORIGIN_MATCHER, '/'), |
| 125 | b: request.body, |
| 126 | h: Object.keys(request.headers).length > 0 ? request.headers : undefined, |
| 127 | m: request.method === 'POST' ? undefined : request.method, |
| 128 | } |
| 129 | |
| 130 | return { |
| 131 | i: id, |
| 132 | p: serializedPayload, |
| 133 | } |
| 134 | } |
| 135 | |
| 136 | export function deserializeRequestMessage(message: BaseMessageFormat): DecodedRequestMessage { |
| 137 | const id: string = message.i |
no test coverage detected