Webpack build for branch wsrewrite: a75d2efc291481f0cc96873bfd7aecca67e20291

This commit is contained in:
Travis CI 2017-04-24 20:29:15 +00:00
parent 3c5bf35210
commit 595c3779ba
2 changed files with 37 additions and 29 deletions

View file

@ -24520,39 +24520,42 @@ class SequentialRequestHandler extends RequestHandler {
execute(item) {
this.busy = true;
return new Promise(resolve => {
item.request.gen().end((err, res) => {
if (res && res.headers) {
this.requestLimit = Number(res.headers['x-ratelimit-limit']);
this.requestResetTime = Number(res.headers['x-ratelimit-reset']) * 1000;
this.requestRemaining = Number(res.headers['x-ratelimit-remaining']);
this.timeDifference = Date.now() - new Date(res.headers.date).getTime();
}
if (err) {
if (err.status === 429) {
this.queue.unshift(item);
this.restManager.client.setTimeout(() => {
this.globalLimit = false;
resolve();
}, Number(res.headers['retry-after']) + this.restManager.client.options.restTimeOffset);
if (res.headers['x-ratelimit-global']) this.globalLimit = true;
} else {
item.reject(err);
resolve(err);
item.request
.gen()
.on('error', e => item.reject(e))
.end((err, res) => {
if (res && res.headers) {
this.requestLimit = Number(res.headers['x-ratelimit-limit']);
this.requestResetTime = Number(res.headers['x-ratelimit-reset']) * 1000;
this.requestRemaining = Number(res.headers['x-ratelimit-remaining']);
this.timeDifference = Date.now() - new Date(res.headers.date).getTime();
}
} else {
this.globalLimit = false;
const data = res && res.body ? res.body : {};
item.resolve(data);
if (this.requestRemaining === 0) {
this.restManager.client.setTimeout(
if (err) {
if (err.status === 429) {
this.queue.unshift(item);
this.restManager.client.setTimeout(() => {
this.globalLimit = false;
resolve();
}, Number(res.headers['retry-after']) + this.restManager.client.options.restTimeOffset);
if (res.headers['x-ratelimit-global']) this.globalLimit = true;
} else {
item.reject(err);
resolve(err);
}
} else {
this.globalLimit = false;
const data = res && res.body ? res.body : {};
item.resolve(data);
if (this.requestRemaining === 0) {
this.restManager.client.setTimeout(
() => resolve(data),
this.requestResetTime - Date.now() + this.timeDifference + this.restManager.client.options.restTimeOffset
);
} else {
resolve(data);
} else {
resolve(data);
}
}
}
});
});
});
}
@ -24656,6 +24659,11 @@ class WebSocketManager extends EventEmitter {
return this.connection.destroy();
}
send(packet) {
if (!this.connection) return this.debug('No connection to websocket');
return this.connection.send(packet);
}
connect(gateway) {
if (!this.connection) {
this.connection = new WebSocketConnection(this, gateway);

File diff suppressed because one or more lines are too long