| 46 | * If the callback returns true, the rest of the items will be skipped. |
| 47 | */ |
| 48 | export function forEachEnvelopeItem<E extends Envelope>( |
| 49 | envelope: Envelope, |
| 50 | callback: (envelopeItem: E[1][number], envelopeItemType: E[1][number][0]['type']) => boolean | void, |
| 51 | ): boolean { |
| 52 | const envelopeItems = envelope[1]; |
| 53 | |
| 54 | for (const envelopeItem of envelopeItems) { |
| 55 | const envelopeItemType = envelopeItem[0].type; |
| 56 | const result = callback(envelopeItem, envelopeItemType); |
| 57 | |
| 58 | if (result) { |
| 59 | return true; |
| 60 | } |
| 61 | } |
| 62 | |
| 63 | return false; |
| 64 | } |
| 65 | |
| 66 | /** |
| 67 | * Returns true if the envelope contains any of the given envelope item types |