(protoBuf, { compress = true } = {})
| 32 | * Wrap protobuf bytes in a Connect-RPC envelope frame. |
| 33 | */ |
| 34 | export function wrapEnvelope(protoBuf, { compress = true } = {}) { |
| 35 | let payload = protoBuf; |
| 36 | let flags = 0; |
| 37 | if (compress && payload.length > 0) { |
| 38 | payload = gzipSync(payload); |
| 39 | flags |= 0x01; |
| 40 | } |
| 41 | const frame = Buffer.alloc(5 + payload.length); |
| 42 | frame[0] = flags; |
| 43 | frame.writeUInt32BE(payload.length, 1); |
| 44 | payload.copy(frame, 5); |
| 45 | return frame; |
| 46 | } |
| 47 | |
| 48 | /** |
| 49 | * Wrap a request for sending (single envelope, gzipped). |
no outgoing calls