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

File diff suppressed because one or more lines are too long