const preferredProfileStream = (activityId: BSON.ObjectId) => pipe(
entityStream.userActivity(activityId),
Stream.map(act => act.preferredProfile),
Stream.changes,
Stream.flatMap(profileId =>
Stream.suspend((): Stream.Stream<
RuntimeR,
RealmDbWrapperError | RealmDbError | ObjectNotFoundError | EntityDoesNotExistError, ActivityProfileData
> =>
profileId
? entityStream.activityProfile(activityId)
: Stream.fail(new EntityDoesNotExistError({
message: `No preferredProfile for UserActivity ${activityId.toHexString()}`
}))
))
)
const preferredProfileStream = (activityId: BSON.ObjectId) => pipe(
entityStream.userActivity(activityId),
Stream.map(act => act.preferredProfile),
Stream.changes,
Stream.flatMap(profileId =>
Stream.suspend((): Stream.Stream<
RuntimeR,
RealmDbWrapperError | RealmDbError | ObjectNotFoundError | EntityDoesNotExistError, ActivityProfileData
> =>
profileId
? entityStream.activityProfile(activityId)
: Stream.fail(new EntityDoesNotExistError({
message: `No preferredProfile for UserActivity ${activityId.toHexString()}`
}))
))
)