const transcribedMessages = voiceMessages.pipe(
Stream.mapEffect((msg) =>
pipe(
Effect.tryPromise(() => transcribeMessage(msg, 'es')),
Effect.tapError((err) =>
Effect.gen(function*(_) {
yield* Effect.logError(`Failure while transcribing message "${msg.id.id}"`, err);
yield* Queue.offer(saveQueue, msg);
})
),
Effect.either,
)
),
Stream.filterMap((x) =>
pipe(
x,
Either.match({
onLeft: () => Option.none(),
onRight: (x) => Option.some(x),
}),
)
),
);
const transcribedMessages = voiceMessages.pipe(
Stream.mapEffect((msg) =>
pipe(
Effect.tryPromise(() => transcribeMessage(msg, 'es')),
Effect.tapError((err) =>
Effect.gen(function*(_) {
yield* Effect.logError(`Failure while transcribing message "${msg.id.id}"`, err);
yield* Queue.offer(saveQueue, msg);
})
),
Effect.either,
)
),
Stream.filterMap((x) =>
pipe(
x,
Either.match({
onLeft: () => Option.none(),
onRight: (x) => Option.some(x),
}),
)
),
);