mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
Add option to look for deleted keys in shallowChanges
This commit is contained in:
@@ -47,7 +47,7 @@ export class WAConnection extends Base {
|
||||
} else {
|
||||
chat.messages = oldChat.messages
|
||||
if (oldChat.t !== chat.t || oldChat.modify_tag !== chat.modify_tag) {
|
||||
const changes = shallowChanges (oldChat, chat)
|
||||
const changes = shallowChanges (oldChat, chat, { lookForDeletedKeys: true })
|
||||
delete chat.metadata // remove group metadata as that may have changed; TODO, write better mechanism for this
|
||||
delete changes.messages
|
||||
|
||||
@@ -150,7 +150,7 @@ export class WAConnection extends Base {
|
||||
contact.jid = whatsappID (contact.jid)
|
||||
const presentContact = contacts[contact.jid]
|
||||
if (presentContact) {
|
||||
const changes = shallowChanges(presentContact, contact)
|
||||
const changes = shallowChanges(presentContact, contact, { lookForDeletedKeys: false })
|
||||
if (changes && Object.keys(changes).length > 0) {
|
||||
updatedContacts.push({ ...changes, jid: contact.jid })
|
||||
}
|
||||
|
||||
@@ -45,16 +45,18 @@ export const newMessagesDB = (messages: WAMessage[] = []) => {
|
||||
return db
|
||||
}
|
||||
|
||||
export function shallowChanges <T> (old: T, current: T): Partial<T> {
|
||||
export function shallowChanges <T> (old: T, current: T, {lookForDeletedKeys}: {lookForDeletedKeys: boolean}): Partial<T> {
|
||||
let changes: Partial<T> = {}
|
||||
for (let key in current) {
|
||||
if (old[key] !== current[key]) {
|
||||
changes[key] = current[key] || null
|
||||
}
|
||||
}
|
||||
for (let key in old) {
|
||||
if (!changes[key] && old[key] !== current[key]) {
|
||||
changes[key] = current[key] || null
|
||||
if (lookForDeletedKeys) {
|
||||
for (let key in old) {
|
||||
if (!changes[key] && old[key] !== current[key]) {
|
||||
changes[key] = current[key] || null
|
||||
}
|
||||
}
|
||||
}
|
||||
return changes
|
||||
|
||||
Reference in New Issue
Block a user