Clean up a bunch of promise stuff

This commit is contained in:
Schuyler Cebulskie
2016-10-30 12:47:09 -04:00
parent c42e7a15aa
commit 8306d50bd8
12 changed files with 112 additions and 161 deletions

View File

@@ -40,7 +40,7 @@ class ClientManager {
resolve(token);
this.client.clearTimeout(timeout);
});
}).catch(reject);
}, reject);
}
/**
@@ -58,10 +58,10 @@ class ClientManager {
}
destroy() {
return new Promise((resolve, reject) => {
return new Promise(resolve => {
this.client.ws.destroy();
if (!this.client.user.bot) {
this.client.rest.methods.logout().then(resolve, reject);
resolve(this.client.rest.methods.logout());
} else {
resolve();
}

View File

@@ -18,8 +18,8 @@ class RESTMethods {
}
loginToken(token = this.rest.client.token) {
token = token.replace(/^Bot\s*/i, '');
return new Promise((resolve, reject) => {
token = token.replace(/^Bot\s*/i, '');
this.rest.client.manager.connectToWebSocket(token, resolve, reject);
});
}
@@ -32,8 +32,7 @@ class RESTMethods {
this.rest.makeRequest('post', Constants.Endpoints.login, false, { email, password })
.then(data => {
resolve(this.loginToken(data.token));
})
.catch(reject);
}, reject);
});
}
@@ -47,8 +46,7 @@ class RESTMethods {
.then(res => {
this.rest.client.ws.gateway = `${res.url}/?encoding=json&v=${Constants.PROTOCOL_VERSION}`;
resolve(this.rest.client.ws.gateway);
})
.catch(reject);
}, reject);
});
}
@@ -71,7 +69,7 @@ class RESTMethods {
if (channel instanceof User || channel instanceof GuildMember) {
this.createDM(channel).then(chan => {
this._sendMessageRequest(chan, content, file, tts, nonce, resolve, reject);
}).catch(reject);
}, reject);
} else {
this._sendMessageRequest(channel, content, file, tts, nonce, resolve, reject);
}
@@ -93,20 +91,19 @@ class RESTMethods {
return this.rest.makeRequest('post', Constants.Endpoints.channelMessages(channel.id), true, {
content: content[i2], tts, nonce,
}, file);
}).catch(reject);
}, reject);
} else {
promise.then(data => {
datas.push(data);
resolve(this.rest.client.actions.MessageCreate.handle(datas).messages);
}).catch(reject);
}, reject);
}
}
} else {
this.rest.makeRequest('post', Constants.Endpoints.channelMessages(channel.id), true, {
content, tts, nonce,
}, file)
.then(data => resolve(this.rest.client.actions.MessageCreate.handle(data).message))
.catch(reject);
.then(data => resolve(this.rest.client.actions.MessageCreate.handle(data).message), reject);
}
}
@@ -118,8 +115,7 @@ class RESTMethods {
id: message.id,
channel_id: message.channel.id,
}).message);
})
.catch(reject);
}, reject);
});
}
@@ -132,8 +128,7 @@ class RESTMethods {
channel_id: channel.id,
ids: messages,
}).messages);
})
.catch(reject);
}, reject);
});
}
@@ -145,7 +140,7 @@ class RESTMethods {
content,
}).then(data => {
resolve(this.rest.client.actions.MessageUpdate.handle(data).updated);
}).catch(reject);
}, reject);
});
}
@@ -156,7 +151,7 @@ class RESTMethods {
type: channelType,
}).then(data => {
resolve(this.rest.client.actions.ChannelCreate.handle(data).channel);
}).catch(reject);
}, reject);
});
}
@@ -172,7 +167,7 @@ class RESTMethods {
if (dmChannel) return resolve(dmChannel);
return this.rest.makeRequest('post', Constants.Endpoints.userChannels(this.rest.client.user.id), true, {
recipient_id: recipient.id,
}).then(data => resolve(this.rest.client.actions.ChannelCreate.handle(data).channel)).catch(reject);
}).then(data => resolve(this.rest.client.actions.ChannelCreate.handle(data).channel), reject);
});
}
@@ -182,7 +177,7 @@ class RESTMethods {
this.rest.makeRequest('del', Constants.Endpoints.channel(channel.id), true).then(data => {
data.id = channel.id;
resolve(this.rest.client.actions.ChannelDelete.handle(data).channel);
}).catch(reject);
}, reject);
});
}
@@ -195,7 +190,7 @@ class RESTMethods {
this.rest.makeRequest('patch', Constants.Endpoints.channel(channel.id), true, data).then(newData => {
resolve(this.rest.client.actions.ChannelUpdate.handle(newData).updated);
}).catch(reject);
}, reject);
});
}
@@ -204,7 +199,7 @@ class RESTMethods {
return new Promise((resolve, reject) => {
this.rest.makeRequest('del', Constants.Endpoints.meGuild(guild.id), true).then(() => {
resolve(this.rest.client.actions.GuildDelete.handle({ id: guild.id }).guild);
}).catch(reject);
}, reject);
});
}
@@ -212,8 +207,7 @@ class RESTMethods {
options.icon = this.rest.client.resolver.resolveBase64(options.icon) || null;
options.region = options.region || 'us-central';
return new Promise((resolve, reject) => {
this.rest.makeRequest('post', Constants.Endpoints.guilds, true, options)
.then(data => {
this.rest.makeRequest('post', Constants.Endpoints.guilds, true, options).then(data => {
if (this.rest.client.guilds.has(data.id)) resolve(this.rest.client.guilds.get(data.id));
const handleGuild = guild => {
if (guild.id === data.id) resolve(guild);
@@ -224,7 +218,7 @@ class RESTMethods {
this.rest.client.removeListener('guildCreate', handleGuild);
reject(new Error('Took too long to receive guild data'));
}, 10000);
}).catch(reject);
}, reject);
});
}
@@ -233,15 +227,15 @@ class RESTMethods {
return new Promise((resolve, reject) => {
this.rest.makeRequest('del', Constants.Endpoints.guild(guild.id), true).then(() => {
resolve(this.rest.client.actions.GuildDelete.handle({ id: guild.id }).guild);
}).catch(reject);
}, reject);
});
}
getUser(userID) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('get', Constants.Endpoints.user(userID), true).then((data) => {
this.rest.makeRequest('get', Constants.Endpoints.user(userID), true).then(data => {
resolve(this.rest.client.actions.UserGet.handle(data).user);
}).catch(reject);
}, reject);
});
}
@@ -259,8 +253,7 @@ class RESTMethods {
}
this.rest.makeRequest('patch', Constants.Endpoints.me, true, data)
.then(newData => resolve(this.rest.client.actions.UserUpdate.handle(newData).updated))
.catch(reject);
.then(newData => resolve(this.rest.client.actions.UserUpdate.handle(newData).updated), reject);
});
}
@@ -277,8 +270,7 @@ class RESTMethods {
if (_data.splash) data.splash = this.rest.client.resolver.resolveBase64(_data.splash);
this.rest.makeRequest('patch', Constants.Endpoints.guild(guild.id), true, data)
.then(newData => resolve(this.rest.client.actions.GuildUpdate.handle(newData).updated))
.catch(reject);
.then(newData => resolve(this.rest.client.actions.GuildUpdate.handle(newData).updated), reject);
});
}
@@ -289,7 +281,7 @@ class RESTMethods {
guild_id: guild.id,
user: member.user,
}).member);
}).catch(reject);
}, reject);
});
}
@@ -300,7 +292,7 @@ class RESTMethods {
guild_id: guild.id,
role,
}).role);
}).catch(reject);
}, reject);
});
}
@@ -311,24 +303,21 @@ class RESTMethods {
guild_id: role.guild.id,
role_id: role.id,
}).role);
}).catch(reject);
}, reject);
});
}
setChannelOverwrite(channel, payload) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('put', `${Constants.Endpoints.channelPermissions(channel.id)}/${payload.id}`, true, payload)
.then(resolve)
.catch(reject);
.then(resolve, reject);
});
}
deletePermissionOverwrites(overwrite) {
return new Promise((resolve, reject) => {
const endpoint = `${Constants.Endpoints.channelPermissions(overwrite.channel.id)}/${overwrite.id}`;
this.rest.makeRequest('del', endpoint, true)
.then(() => resolve(overwrite))
.catch(reject);
this.rest.makeRequest('del', endpoint, true).then(() => resolve(overwrite), reject);
});
}
@@ -342,9 +331,7 @@ class RESTMethods {
let endpoint = Constants.Endpoints.channelMessages(channel.id);
if (params.length > 0) endpoint += `?${params.join('&')}`;
this.rest.makeRequest('get', endpoint, true)
.then(resolve)
.catch(reject);
this.rest.makeRequest('get', endpoint, true).then(resolve, reject);
});
}
@@ -354,17 +341,15 @@ class RESTMethods {
if (msg) return resolve(msg);
const endpoint = Constants.Endpoints.channelMessage(channel.id, messageID);
return this.rest.makeRequest('get', endpoint, true)
.then(resolve)
.catch(reject);
return this.rest.makeRequest('get', endpoint, true).then(resolve, reject);
});
}
getGuildMember(guild, user) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('get', Constants.Endpoints.guildMember(guild.id, user.id), true).then((data) => {
this.rest.makeRequest('get', Constants.Endpoints.guildMember(guild.id, user.id), true).then(data => {
resolve(this.rest.client.actions.GuildMemberGet.handle(guild, data).member);
}).catch(reject);
}, reject);
});
}
@@ -382,17 +367,12 @@ class RESTMethods {
}
this.rest.makeRequest('patch', endpoint, true, data)
.then(resData => resolve(member.guild._updateMember(member, resData).mem))
.catch(reject);
.then(resData => resolve(member.guild._updateMember(member, resData).mem), reject);
});
}
sendTyping(channelID) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('post', `${Constants.Endpoints.channel(channelID)}/typing`, true)
.then(resolve)
.catch(reject);
});
return this.rest.makeRequest('post', `${Constants.Endpoints.channel(channelID)}/typing`, true);
}
banGuildMember(guild, member, deleteDays = 0) {
@@ -415,14 +395,14 @@ class RESTMethods {
return;
}
resolve(id);
}).catch(reject);
}, reject);
});
}
unbanGuildMember(guild, member) {
return new Promise((resolve, reject) => {
const id = this.rest.client.resolver.resolveUserID(member);
if (!id) throw new Error('Couldn\'t resolve the user ID to ban.');
if (!id) throw new Error('Couldn\'t resolve the user ID to unban.');
const listener = (eGuild, eUser) => {
if (eGuild.id === guild.id && eUser.id === id) {
@@ -444,7 +424,7 @@ class RESTMethods {
bannedUsers.set(user.id, user);
}
resolve(bannedUsers);
}).catch(reject);
}, reject);
});
}
@@ -476,23 +456,21 @@ class RESTMethods {
role: _role,
guild_id: role.guild.id,
}).updated);
}).catch(reject);
}, reject);
});
}
pinMessage(message) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('put', `${Constants.Endpoints.channel(message.channel.id)}/pins/${message.id}`, true)
.then(() => resolve(message))
.catch(reject);
.then(() => resolve(message), reject);
});
}
unpinMessage(message) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('del', `${Constants.Endpoints.channel(message.channel.id)}/pins/${message.id}`, true)
.then(() => resolve(message))
.catch(reject);
.then(() => resolve(message), reject);
});
}
@@ -508,24 +486,21 @@ class RESTMethods {
payload.max_uses = options.maxUses;
this.rest.makeRequest('post', `${Constants.Endpoints.channelInvites(channel.id)}`, true, payload)
.then(invite => resolve(new Invite(this.rest.client, invite)))
.catch(reject);
.then(invite => resolve(new Invite(this.rest.client, invite)), reject);
});
}
deleteInvite(invite) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('del', Constants.Endpoints.invite(invite.code), true)
.then(() => resolve(invite))
.catch(reject);
.then(() => resolve(invite), reject);
});
}
getInvite(code) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('get', Constants.Endpoints.invite(code), true)
.then(invite => resolve(new Invite(this.rest.client, invite)))
.catch(reject);
.then(invite => resolve(new Invite(this.rest.client, invite)), reject);
});
}
@@ -538,16 +513,14 @@ class RESTMethods {
invites.set(invite.code, invite);
}
resolve(invites);
}).catch(reject);
}, reject);
});
}
pruneGuildMembers(guild, days, dry) {
return new Promise((resolve, reject) => {
this.rest.makeRequest(dry ? 'get' : 'post', `${Constants.Endpoints.guildPrune(guild.id)}?days=${days}`, true)
.then(data => {
resolve(data.pruned);
}).catch(reject);
.then(data => resolve(data.pruned), reject);
});
}
@@ -556,7 +529,7 @@ class RESTMethods {
this.rest.makeRequest('post', `${Constants.Endpoints.guildEmojis(guild.id)}`, true, { name: name, image: image })
.then(data => {
resolve(this.rest.client.actions.EmojiCreate.handle(data, guild).emoji);
}).catch(reject);
}, reject);
});
}
@@ -565,7 +538,7 @@ class RESTMethods {
this.rest.makeRequest('delete', `${Constants.Endpoints.guildEmojis(emoji.guild.id)}/${emoji.id}`, true)
.then(() => {
resolve(this.rest.client.actions.EmojiDelete.handle(emoji).data);
}).catch(reject);
}, reject);
});
}
@@ -574,7 +547,7 @@ class RESTMethods {
this.rest.makeRequest('get', Constants.Endpoints.webhook(id, token), require('util').isUndefined(token))
.then(data => {
resolve(new Webhook(this.rest.client, data));
}).catch(reject);
}, reject);
});
}
@@ -587,7 +560,7 @@ class RESTMethods {
hooks.set(hook.id, new Webhook(this.rest.client, hook));
}
resolve(hooks);
}).catch(reject);
}, reject);
});
}
@@ -600,7 +573,7 @@ class RESTMethods {
hooks.set(hook.id, new Webhook(this.rest.client, hook));
}
resolve(hooks);
}).catch(reject);
}, reject);
});
}
@@ -609,10 +582,7 @@ class RESTMethods {
this.rest.makeRequest('post', Constants.Endpoints.channelWebhooks(channel.id), true, {
name,
avatar,
})
.then(data => {
resolve(new Webhook(this.rest.client, data));
}).catch(reject);
}).then(data => resolve(new Webhook(this.rest.client, data)), reject);
});
}
@@ -625,7 +595,7 @@ class RESTMethods {
webhook.name = data.name;
webhook.avatar = data.avatar;
resolve(webhook);
}).catch(reject);
}, reject);
});
}
@@ -643,10 +613,7 @@ class RESTMethods {
this.rest.makeRequest('post', `${Constants.Endpoints.webhook(webhook.id, webhook.token)}?wait=true`, false, {
content: content, username: webhook.name, avatar_url: avatarURL, tts: tts, file: file, embeds: embeds,
})
.then(data => {
resolve(data);
}).catch(reject);
}).then(data => resolve(data), reject);
});
}
@@ -657,9 +624,7 @@ class RESTMethods {
`${Constants.Endpoints.webhook(webhook.id, webhook.token)}/slack?wait=true`,
false,
body
).then(data => {
resolve(data);
}).catch(reject);
).then(data => resolve(data), reject);
});
}
@@ -668,45 +633,35 @@ class RESTMethods {
this.rest.makeRequest('post', Constants.Endpoints.relationships('@me'), true, {
discriminator: user.discriminator,
username: user.username,
}).then(() => {
resolve(user);
}).catch(reject);
}).then(() => resolve(user), reject);
});
}
removeFriend(user) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('delete', `${Constants.Endpoints.relationships('@me')}/${user.id}`, true)
.then(() => {
resolve(user);
}).catch(reject);
.then(() => resolve(user), reject);
});
}
fetchUserProfile(user) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('get', Constants.Endpoints.userProfile(user.id), true)
.then(data => {
resolve(new UserProfile(user, data));
}).catch(reject);
.then(data => resolve(new UserProfile(user, data)), reject);
});
}
blockUser(user) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('put', `${Constants.Endpoints.relationships('@me')}/${user.id}`, true, { type: 2 })
.then(() => {
resolve(user);
}).catch(reject);
.then(() => resolve(user), reject);
});
}
unblockUser(user) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('delete', `${Constants.Endpoints.relationships('@me')}/${user.id}`, true)
.then(() => {
resolve(user);
}).catch(reject);
.then(() => resolve(user), reject);
});
}
@@ -718,8 +673,7 @@ class RESTMethods {
guild_id: guildID,
roles,
}).guild);
})
.catch(reject);
}, reject);
});
}
@@ -733,8 +687,7 @@ class RESTMethods {
emoji: parseEmoji(emoji),
channel_id: channelID,
}).reaction);
})
.catch(reject);
}, reject);
});
}
@@ -752,8 +705,7 @@ class RESTMethods {
emoji: parseEmoji(emoji),
channel_id: channelID,
}).reaction);
})
.catch(reject);
}, reject);
});
}
@@ -767,8 +719,7 @@ class RESTMethods {
getMyApp() {
return new Promise((resolve, reject) => {
this.rest.makeRequest('get', Constants.Endpoints.myApp, true)
.then(app => resolve(new ClientOAuth2App(this.rest.client, app)))
.catch(reject);
.then(app => resolve(new ClientOAuth2App(this.rest.client, app)), reject);
});
}
}

View File

@@ -107,8 +107,7 @@ class VoiceConnection extends EventEmitter {
speaking: true,
delay: 0,
},
})
.catch(e => {
}).catch(e => {
this.emit('debug', e);
});
}
@@ -156,8 +155,7 @@ class VoiceConnection extends EventEmitter {
this.sockets.udp.findEndpointAddress()
.then(address => {
this.sockets.udp.createUDPSocket(address);
})
.catch(e => this.emit('error', e));
}, e => this.emit('error', e));
});
this.sockets.ws.once('sessionDescription', (mode, secret) => {
this.authentication.encryptionMode = mode;

View File

@@ -136,7 +136,7 @@ class StreamDispatcher extends EventEmitter {
const packet = this._createPacket(sequence, timestamp, this.player.opusEncoder.encode(buffer));
while (repeats--) {
this.player.voiceConnection.sockets.udp.send(packet)
.catch(e => this.emit('debug', `failed to send a packet ${e}`));
.catch(e => this.emit('debug', `Failed to send a packet ${e}`));
}
}

View File

@@ -264,7 +264,7 @@ class WebSocketManager extends EventEmitter {
this.status = Constants.Status.NEARLY;
if (this.client.options.fetchAllMembers) {
const promises = this.client.guilds.map(g => g.fetchMembers());
Promise.all(promises).then(() => this._emitReady()).catch(e => {
Promise.all(promises).then(() => this._emitReady(), e => {
this.client.emit(Constants.Events.WARN, 'Error in pre-ready guild member fetching');
this.client.emit(Constants.Events.ERROR, e);
this._emitReady();

View File

@@ -134,17 +134,19 @@ class Shard {
if (message) {
// Shard is requesting a property fetch
if (message._sFetchProp) {
this.manager.fetchClientValues(message._sFetchProp)
.then(results => this.send({ _sFetchProp: message._sFetchProp, _result: results }))
.catch(err => this.send({ _sFetchProp: message._sFetchProp, _error: makePlainError(err) }));
this.manager.fetchClientValues(message._sFetchProp).then(
results => this.send({ _sFetchProp: message._sFetchProp, _result: results }),
err => this.send({ _sFetchProp: message._sFetchProp, _error: makePlainError(err) })
);
return;
}
// Shard is requesting an eval broadcast
if (message._sEval) {
this.manager.broadcastEval(message._sEval)
.then(results => this.send({ _sEval: message._sEval, _result: results }))
.catch(err => this.send({ _sEval: message._sEval, _error: makePlainError(err) }));
this.manager.broadcastEval(message._sEval).then(
results => this.send({ _sEval: message._sEval, _result: results }),
err => this.send({ _sEval: message._sEval, _error: makePlainError(err) })
);
return;
}
}

View File

@@ -110,7 +110,7 @@ class ShardingManager extends EventEmitter {
fetchRecommendedShards(this.token).then(count => {
this.totalShards = count;
resolve(this._spawn(count, delay));
}).catch(reject);
}, reject);
} else {
if (typeof amount !== 'number' || isNaN(amount)) throw new TypeError('Amount of shards must be a number.');
if (amount < 1) throw new RangeError('Amount of shards must be at least 1.');

View File

@@ -438,13 +438,15 @@ class Message {
* .catch(console.error);
*/
delete(timeout = 0) {
return new Promise((resolve, reject) => {
this.client.setTimeout(() => {
this.client.rest.methods.deleteMessage(this)
.then(resolve)
.catch(reject);
}, timeout);
});
if (timeout <= 0) {
return this.client.rest.methods.deleteMessage(this);
} else {
return new Promise(resolve => {
this.client.setTimeout(() => {
resolve(this.delete());
}, timeout);
});
}
}
/**

View File

@@ -123,16 +123,15 @@ class MessageReaction {
const message = this.message;
return new Promise((resolve, reject) => {
message.client.rest.methods.getMessageReactionUsers(message.channel.id, message.id, this.emoji.identifier, limit)
.then(users => {
this.users = new Collection();
for (const rawUser of users) {
const user = this.message.client.dataManager.newUser(rawUser);
this.users.set(user.id, user);
}
this.count = this.users.size;
resolve(this.users);
})
.catch(reject);
.then(users => {
this.users = new Collection();
for (const rawUser of users) {
const user = this.message.client.dataManager.newUser(rawUser);
this.users.set(user.id, user);
}
this.count = this.users.size;
resolve(this.users);
}, reject);
});
}
}

View File

@@ -66,10 +66,10 @@ class TextChannel extends GuildChannel {
this.client.resolver.resolveFile(avatar).then(file => {
let base64 = new Buffer(file, 'binary').toString('base64');
let dataURI = `data:;base64,${base64}`;
this.client.rest.methods.createWebhook(this, name, dataURI).then(resolve).catch(reject);
}).catch(reject);
resolve(this.client.rest.methods.createWebhook(this, name, dataURI));
}, reject);
} else {
this.client.rest.methods.createWebhook(this, name).then(resolve).catch(reject);
resolve(this.client.rest.methods.createWebhook(this, name));
}
});
}

View File

@@ -145,11 +145,11 @@ class Webhook {
}
return new Promise((resolve, reject) => {
this.client.resolver.resolveFile(attachment).then(file => {
this.client.rest.methods.sendWebhookMessage(this, content, options, {
resolve(this.client.rest.methods.sendWebhookMessage(this, content, options, {
file,
name: fileName,
}).then(resolve).catch(reject);
}).catch(reject);
}));
}, reject);
});
}
@@ -181,14 +181,13 @@ class Webhook {
if (avatar) {
this.client.resolver.resolveFile(avatar).then(file => {
const dataURI = this.client.resolver.resolveBase64(file);
this.client.rest.methods.editWebhook(this, name, dataURI)
.then(resolve).catch(reject);
}).catch(reject);
resolve(this.client.rest.methods.editWebhook(this, name, dataURI));
}, reject);
} else {
this.client.rest.methods.editWebhook(this, name)
.then(data => {
this.client.rest.methods.editWebhook(this, name).then(data => {
this.setup(data);
}).catch(reject);
resolve(this);
}, reject);
}
});
}

View File

@@ -97,8 +97,8 @@ class TextBasedChannel {
this.client.rest.methods.sendMessage(this, content, options, {
file,
name: fileName,
}).then(resolve).catch(reject);
}).catch(reject);
}).then(resolve, reject);
}, reject);
});
}
@@ -138,7 +138,7 @@ class TextBasedChannel {
this._cacheMessage(msg);
resolve(msg);
}).catch(reject);
}, reject);
});
}
@@ -172,7 +172,7 @@ class TextBasedChannel {
this._cacheMessage(msg);
}
resolve(messages);
}).catch(reject);
}, reject);
});
}
@@ -190,7 +190,7 @@ class TextBasedChannel {
this._cacheMessage(msg);
}
resolve(messages);
}).catch(reject);
}, reject);
});
}