| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-03-23 02:58:09 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-03-23 02:58:09 UTC |
| parent | dd601058d86fe2fce0b9ad713b9f77ba4c64163f |
| snikket/persistence/IDB.js | +1 | -1 |
diff --git a/snikket/persistence/IDB.js b/snikket/persistence/IDB.js index 6e358a4..664861e 100644 --- a/snikket/persistence/IDB.js +++ b/snikket/persistence/IDB.js @@ -156,7 +156,7 @@ export default (dbname, media, tokenize, stemmer) => { const newVersions = message.versions.length < 2 ? [message] : message.versions; const storedVersions = result.value.versions || []; // TODO: dedupe? There shouldn't be dupes... - const versions = (storedVersions.length < 1 ? [result.value] : storedVersions).concat(newVersions.map((nv) => serializeMessage(account, nv))).sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime()); + const versions = (storedVersions.length < 1 ? [result.value] : storedVersions).concat(newVersions.filter(nv => !storedVersions.find(sv => nv.serverId === sv.serverId)).map((nv) => serializeMessage(account, nv))).sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime()); const head = {...versions[0]}; // Can't change primary key head.serverIdBy = result.value.serverIdBy;