Skip to content
1 change: 1 addition & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
exports.config = require('./lib/config');
exports.Client = require('./lib/client');
exports.Dispatcher = require('./lib/dispatcher');
exports.auth = require('./lib/auth');
Expand Down
9 changes: 9 additions & 0 deletions lib/config/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
var errors = require('../errors');

var config = {};

config.setConfig = function(errorName, errorConfig) {
errors[errorName].config = errorConfig;
};

module.exports = config;
4 changes: 3 additions & 1 deletion lib/dispatcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,9 @@ Dispatcher.prototype.dispatch = function(params, dispatchOptions) {
}

if (STATUS_MAP[res.statusCode]) {
var error = new STATUS_MAP[res.statusCode](payload, res);
var errorConfig = STATUS_MAP[res.statusCode].config;
var args = Object.assign({}, payload, errorConfig);
var error = new STATUS_MAP[res.statusCode](args, res);

if (me.retryOnRateLimit &&
error instanceof (errors.RateLimitEnforced)) {
Expand Down
2 changes: 1 addition & 1 deletion lib/errors/rate_limit_enforced.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ function RateLimitEnforced(value, res) {

util.inherits(RateLimitEnforced, Error);

module.exports = RateLimitEnforced;
module.exports = RateLimitEnforced;