add emitOwnEvents

This commit is contained in:
Adhiraj Singh
2021-10-01 13:46:19 +05:30
parent b3c1063a3f
commit e84002d807
4 changed files with 13 additions and 5 deletions

View File

@@ -28,6 +28,7 @@ export const DEFAULT_CONNECTION_CONFIG: SocketConfig = {
keepAliveIntervalMs: 25_000,
logger: P().child({ class: 'baileys' }),
printQRInTerminal: false,
emitOwnEvents: true
}
export const MEDIA_PATH_MAP: { [T in MediaType]: string } = {

View File

@@ -298,7 +298,7 @@ export const makeChatsSocket = (config: SocketConfig) => {
}
const processSyncActions = (actions: ChatMutation[]) => {
const updates: { [jid: string]: Partial<Chat> } = {}
const contactUpdates: { [jid: string]: Partial<Contact> } = {}
const msgDeletes: proto.IMessageKey[] = []
@@ -360,7 +360,7 @@ export const makeChatsSocket = (config: SocketConfig) => {
)
const initial = await authState.keys.getAppStateSyncVersion(name)
// temp: verify it was encoded correctly
await decodePatches({ syncds: [{ ...patch, version: { version: state.version }, }], name }, initial, authState)
const result = await decodePatches({ syncds: [{ ...patch, version: { version: state.version }, }], name }, initial, authState)
const node: BinaryNode = {
tag: 'iq',
@@ -397,6 +397,9 @@ export const makeChatsSocket = (config: SocketConfig) => {
await authState.keys.setAppStateSyncVersion(name, state)
ev.emit('auth-state.update', authState)
if(config.emitOwnEvents) {
processSyncActions(result.newMutations)
}
}
const chatModify = (mod: ChatModification, jid: string, lastMessages: Pick<proto.IWebMessageInfo, 'key' | 'messageTimestamp'>[]) => {

View File

@@ -394,9 +394,11 @@ export const makeMessagesSocket = (config: SocketConfig) => {
}
)
await relayMessage(jid, fullMsg.message, { messageId: fullMsg.key.id! })
process.nextTick(() => {
ev.emit('messages.upsert', { messages: [fullMsg], type: 'append' })
})
if(config.emitOwnEvents) {
process.nextTick(() => {
ev.emit('messages.upsert', { messages: [fullMsg], type: 'append' })
})
}
return fullMsg
}
}

View File

@@ -43,6 +43,8 @@ export type SocketConfig = {
fetchAgent?: Agent
/** should the QR be printed in the terminal */
printQRInTerminal: boolean
/** should events be emitted for actions done by this socket connection */
emitOwnEvents: boolean
}
export enum DisconnectReason {