Skip to content

Commit 6bb1325

Browse files
Copilotbaelter
andcommitted
Fix TypeScript callback types to support async callbacks
Co-authored-by: baelter <1399369+baelter@users.noreply.github.com>
1 parent 465e541 commit 6bb1325

3 files changed

Lines changed: 6 additions & 6 deletions

File tree

src/amqp-channel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,9 @@ export class AMQPChannel {
134134
* @param [param.noAck=true] - if messages are removed from the server upon delivery, or have to be acknowledged
135135
* @param [param.exclusive=false] - if this can be the only consumer of the queue, will return an Error if there are other consumers to the queue already
136136
* @param [param.args={}] - custom arguments
137-
* @param {function(AMQPMessage) : void} callback - will be called for each message delivered to this consumer
137+
* @param {function(AMQPMessage) : void | Promise<void>} callback - will be called for each message delivered to this consumer
138138
*/
139-
basicConsume(queue: string, {tag = "", noAck = true, exclusive = false, args = {}} = {}, callback: (msg: AMQPMessage) => void): Promise<AMQPConsumer> {
139+
basicConsume(queue: string, {tag = "", noAck = true, exclusive = false, args = {}} = {}, callback: (msg: AMQPMessage) => void | Promise<void>): Promise<AMQPConsumer> {
140140
if (this.closed) return this.rejectClosed()
141141
let j = 0
142142
const noWait = false

src/amqp-consumer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import type { AMQPMessage } from './amqp-message.js'
88
export class AMQPConsumer {
99
readonly channel: AMQPChannel
1010
readonly tag: string
11-
readonly onMessage: (msg: AMQPMessage) => void
11+
readonly onMessage: (msg: AMQPMessage) => void | Promise<void>
1212
private closed = false
1313
private closedError?: Error
1414
private resolveWait?: (value: void) => void
@@ -20,7 +20,7 @@ export class AMQPConsumer {
2020
* @param tag - consumer tag
2121
* @param onMessage - callback executed when a message arrive
2222
*/
23-
constructor(channel: AMQPChannel, tag: string, onMessage: (msg: AMQPMessage) => void) {
23+
constructor(channel: AMQPChannel, tag: string, onMessage: (msg: AMQPMessage) => void | Promise<void>) {
2424
this.channel = channel
2525
this.tag = tag
2626
this.onMessage = onMessage

src/amqp-queue.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ export class AMQPQueue {
6161
* @param [params.exclusive=false] - if this can be the only consumer of the queue, will return an Error if there are other consumers to the queue already
6262
* @param [params.tag=""] - tag of the consumer, will be server generated if left empty
6363
* @param [params.args={}] - custom arguments
64-
* @param {function(AMQPMessage) : void} callback - Function to be called for each received message
64+
* @param {function(AMQPMessage) : void | Promise<void>} callback - Function to be called for each received message
6565
*/
6666
subscribe({ noAck = true, exclusive = false, tag = "", args = {} }: ConsumeParams = {},
67-
callback: (msg: AMQPMessage) => void): Promise<AMQPConsumer> {
67+
callback: (msg: AMQPMessage) => void | Promise<void>): Promise<AMQPConsumer> {
6868
return this.channel.basicConsume(this.name, { noAck, exclusive, tag, args }, callback)
6969
}
7070

0 commit comments

Comments
 (0)