UNPKG

838 BJavaScriptView Raw
1module.exports = () => {
2 function winnerFromEndMsg(invite, maybeGameEndMsg) {
3 if (!invite || !maybeGameEndMsg) {
4 return null;
5 }
6 const players = [invite.value.author, invite.value.content.inviting];
7 return winnerFromEndMsgPlayers(players, maybeGameEndMsg);
8 }
9
10 function winnerFromEndMsgPlayers(players, maybeGameEndMsg) {
11 let winner;
12
13 if (!maybeGameEndMsg || !players) {
14 return null;
15 }
16 switch (maybeGameEndMsg.value.content.status) {
17 case 'mate':
18 return maybeGameEndMsg.value.author;
19 case 'draw':
20 return null;
21 case 'resigned':
22 [winner] = players.filter(playerId => playerId != maybeGameEndMsg.value.author);
23 return winner;
24 default:
25 return null;
26 }
27 }
28
29 return {
30 winnerFromEndMsg,
31 winnerFromEndMsgPlayers,
32 };
33};