| delete detail.kind | delete detail.kind | ||||
| Object.assign(State, detail) | Object.assign(State, detail) | ||||
| }) | }) | ||||
| const doNotLog = new Set(['login', 'state', 'post', 'peerInfo', 'join', 'leave']) | |||||
| const doNotLog = new Set(['login', 'state', 'post', 'peerInfo']) | |||||
| /* | /* | ||||
| * | * | ||||
| * UTILS | * UTILS | ||||
| if(message.online) { | if(message.online) { | ||||
| const difference = (l1, l2) => l1.filter(u => !l2.includes(u)) | const difference = (l1, l2) => l1.filter(u => !l2.includes(u)) | ||||
| difference(message.online, State.online).forEach(username => { | difference(message.online, State.online).forEach(username => { | ||||
| if(username === State.username) return | |||||
| signal({kind: 'post', ts: message.ts, value: `${username} joined`}) | signal({kind: 'post', ts: message.ts, value: `${username} joined`}) | ||||
| signal({kind: 'join', username: username}) | |||||
| }) | }) | ||||
| difference(State.online, message.online).forEach(username => { | difference(State.online, message.online).forEach(username => { | ||||
| if(username === State.username) return | |||||
| signal({kind: 'post', ts: message.ts, value: `${username} left`}) | signal({kind: 'post', ts: message.ts, value: `${username} left`}) | ||||
| signal({kind: 'leave', username: username}) | |||||
| }) | }) | ||||
| } | } | ||||