-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
Users of Amqp-0-9-1.js cannot use the default exchange or empty-string routing keys.
This is because the guards are too strict. For example in publishBasic(...):
if (!exchange || typeof exchange != 'string') {
throw new Error("AmqpChannel.publishBasic(): String parameter \'exchange\' is required");
}
if (!routingKey || typeof routingKey != 'string') {
throw new Error("AmqpChannel.publishBasic(): String parameter \'routingKey\' is required");
}They are too strict because the empty-string '' is a falsy value in JavaScript (see: https://developer.mozilla.org/en-US/docs/Glossary/Falsy)
!'' === trueI would suggest changing guards, where the empty-string should be allowed, to something like the following:
if (exchange == null || exchange == undefined || typeof exchange != 'string') {
throw new Error("AmqpChannel.publishBasic(): String parameter \'exchange\' is required");
}
if (routingKey == null || routingKey == undefined || typeof routingKey != 'string') {
throw new Error("AmqpChannel.publishBasic(): String parameter \'routingKey\' is required");
}Metadata
Metadata
Assignees
Labels
No labels