feat: enforce default timeout to prevent any hanging promises

This commit is contained in:
Adhiraj Singh
2021-11-25 19:54:56 +05:30
parent b91a1cbcf3
commit 6e830c1e1b
4 changed files with 7 additions and 1 deletions

View File

@@ -96,6 +96,8 @@ type SocketConfig = {
waWebSocketUrl: string | URL
/** Fails the connection if the connection times out in this time interval or no data is received */
connectTimeoutMs: number
/** Default timeout for queries, undefined for no timeout */
defaultQueryTimeoutMs: number | undefined
/** ping-pong interval for WS connection */
keepAliveIntervalMs: number
/** proxy agent */

View File

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

View File

@@ -25,6 +25,7 @@ export const makeSocket = ({
browser,
auth: initialAuthState,
printQRInTerminal,
defaultQueryTimeoutMs
}: SocketConfig) => {
const ws = new WebSocket(waWebSocketUrl, undefined, {
origin: DEFAULT_ORIGIN,
@@ -110,7 +111,7 @@ export const makeSocket = ({
* @param json query that was sent
* @param timeoutMs timeout after which the promise will reject
*/
const waitForMessage = async(msgId: string, timeoutMs?: number) => {
const waitForMessage = async(msgId: string, timeoutMs = defaultQueryTimeoutMs) => {
let onRecv: (json) => void
let onErr: (err) => void
try {

View File

@@ -30,6 +30,8 @@ export type SocketConfig = {
waWebSocketUrl: string | URL
/** Fails the connection if the socket times out in this interval */
connectTimeoutMs: number
/** Default timeout for queries, undefined for no timeout */
defaultQueryTimeoutMs: number | undefined
/** ping-pong interval for WS connection */
keepAliveIntervalMs: number
/** proxy agent */