Make authorships show up again

It turns out our shiny new typed ES2015 `Map`s are not serializable to JSON. :(
Luckily, we only use strings as keys and can write a function that converts them to serializable objects!

Signed-off-by: David Mehren <dmehren1@gmail.com>
This commit is contained in:
David Mehren 2020-05-31 21:43:14 +02:00
parent 17f3dc1877
commit 908bf36fa0
No known key found for this signature in database
GPG key ID: 6017AF117F9756CB
2 changed files with 13 additions and 2 deletions

View file

@ -13,6 +13,7 @@ import { Author, Note, Revision, User } from './models'
import { NoteAuthorship } from './models/note'
import { PhotoProfile } from './models/user'
import { EditorSocketIOServer } from './ot/editor-socketio-server'
import { mapToObject } from './utils'
export type SocketWithNoteId = Socket & { noteId: string }
@ -77,7 +78,7 @@ function emitCheck (note: NoteSession): void {
updatetime: note.updatetime,
lastchangeuser: note.lastchangeuser,
lastchangeuserprofile: note.lastchangeuserprofile,
authors: note.authors,
authors: mapToObject(note.authors),
authorship: note.authorship
}
realtime.io.to(note.id).emit('check', out)
@ -380,7 +381,7 @@ function emitRefresh (socket: SocketWithNoteId): void {
ownerprofile: note.ownerprofile,
lastchangeuser: note.lastchangeuser,
lastchangeuserprofile: note.lastchangeuserprofile,
authors: note.authors,
authors: mapToObject(note.authors),
authorship: note.authorship,
permission: note.permission,
createtime: note.createtime,