(payload: TemporalPayload | undefined)
| 169 | * the original base64 data string. |
| 170 | */ |
| 171 | export function decodePayload(payload: TemporalPayload | undefined): unknown { |
| 172 | if (!payload) return null |
| 173 | const encoding = payload.metadata?.encoding |
| 174 | ? Buffer.from(payload.metadata.encoding, 'base64').toString('utf8') |
| 175 | : undefined |
| 176 | if (encoding === 'binary/null') return null |
| 177 | if (payload.data == null) return null |
| 178 | if (encoding === 'json/plain' || encoding === 'json/protobuf') { |
| 179 | const raw = Buffer.from(payload.data, 'base64').toString('utf8') |
| 180 | try { |
| 181 | return JSON.parse(raw) |
| 182 | } catch { |
| 183 | return raw |
| 184 | } |
| 185 | } |
| 186 | return payload.data |
| 187 | } |
| 188 | |
| 189 | /** Decodes a Temporal `Payloads` collection into an array of JSON values. */ |
| 190 | export function decodePayloads(payloads: TemporalPayloads | undefined): unknown[] { |
no test coverage detected