© 2026 Hedgehog Software, LLC
Effect.forEach
Effect.fail
Effect<x, Error1>
Effect<x, Error2>
Effect<x, Error1 | Error2>
const decodedMissions: MissionDocument[] = yield* Effect.forEach(missionIds, missionId => { const existingMission = existingMissions.find(({ _id }) => _id.id === missionId.id && _id.version === missionId.version ); if (!existingMission) { return Effect.fail(MissionNotFoundError.make({ ...missionId })); } if (existingMission.deletedAt) { return Effect.fail(MissionAlreadyMarkedAsDeletedError.make({ ...missionId })); } return Effect.orDie(S.decodeUnknown(MissionSchema)(existingMission)); });
const decodedMissions: MissionDocument[] = yield* Effect.forEach(missionIds, missionId => { const existingMission = existingMissions.find(({ _id }) => _id.id === missionId.id && _id.version === missionId.version ); if (!existingMission || existingMission.deletedAt) { return Effect.fail( !existingMission ? MissionNotFoundError.make({ ...missionId }) : MissionAlreadyMarkedAsDeletedError.make({ ...missionId }) ); } return Effect.orDie(S.decodeUnknown(MissionSchema)(existingMission)); });