(
docs: ReadonlyArray<MessageDoc>,
queryReplies: (
query: string,
parameters: ReadonlyArray<CosmosParameter>
) => Effect.Effect<Array<ReplyDoc>, E>
)
| 741 | }) |
| 742 | |
| 743 | const collectUnprocessedById = <E>( |
| 744 | docs: ReadonlyArray<MessageDoc>, |
| 745 | queryReplies: ( |
| 746 | query: string, |
| 747 | parameters: ReadonlyArray<CosmosParameter> |
| 748 | ) => Effect.Effect<Array<ReplyDoc>, E> |
| 749 | ) => |
| 750 | Effect.gen(function*() { |
| 751 | const messages: Array<{ |
| 752 | readonly envelope: Envelope.Encoded |
| 753 | readonly lastSentReply: Option.Option<Reply.Encoded> |
| 754 | }> = [] |
| 755 | const activeRequestIds = yield* activeReplyRequestIds(docs, queryReplies) |
| 756 | const lastReplies = yield* lastRepliesById(docs, activeRequestIds, queryReplies) |
| 757 | for (const doc of docs) { |
| 758 | if (activeRequestIds.has(doc.requestId)) continue |
| 759 | const sentReply = Option.fromNullishOr(doc.lastReplyId === null ? undefined : lastReplies.get(doc.lastReplyId)) |
| 760 | messages.push(envelopeFromDoc(doc, sentReply)) |
| 761 | } |
| 762 | return messages |
| 763 | }) |
| 764 | |
| 765 | const activeReplyRequestIds = <E>( |
| 766 | docs: ReadonlyArray<MessageDoc>, |
no test coverage detected
searching dependent graphs…