typescript cornering
const teamId = teamsMap.get(logic.update.assignment.team)?._id;
const teamNSelectionStrategy =
(logic.update.assignment.selection_strategy === 'manual')
? {
selection_strategy: 'manual' as const,
team: EMPTY_TEAM_LIT,
} : {
selection_strategy: logic.update.assignment.selection_strategy,
team: teamsMap.get(logic.update.assignment.team)?._id,
}
if (status === undefined) {
throw new Error(`status: '${logic.update.record.status}' not found in status declaration block `);
}
if (teamNSelectionStrategy.team === undefined) {
throw new Error(`team: '${logic.update.assignment.team}' not found in teams declaration block`);
}
const forceWriteStatus = logic.update.record.force_overwrite_status;
// although we can just spread teamNSelectionStrategy, it breaks typescript
const assignment: AssignmentSchema =
(teamNSelectionStrategy.selection_strategy === 'manual')
? {
...logic.update.assignment,
selection_strategy: 'manual',
team: EMPTY_TEAM_LIT
} : {
...logic.update.assignment,
selection_strategy: teamNSelectionStrategy.selection_strategy,
team: teamNSelectionStrategy.team,
}