Following the Flow upgrade, I was experimenting with the various codemods in flow-upgrade. I gave removeExplicitlyExactObjectTypeSyntax a try, since we have exact_by_default=true set in our .flowconfigs, and as such {} is an alias to {||}.
The codemod found a couple locations in this file. For the sake of consistency, I replaced them with {}, like we do elsewhere in our codebase.
Depends on D10087
This logic is a bit confusing.
I guess the reason we decided to store a separate deviceToken per keyserver is because we want to know if we've shared our deviceToken to that keyserver yet, not because we expect to have a different deviceToken per keyserver.
It would probably make more sense if we have a deviceTokenHasBeenUploaded: boolean in KeyserverInfo, and a deviceToken field at the top level of Redux. But we'll likely end up removing deviceTokens from keyservers soon anyways...