Skip to content

Commit

Permalink
refactor: rename Snowflake to SnowflakeUtil (#5502)
Browse files Browse the repository at this point in the history
  • Loading branch information
vaporoxx authored Apr 14, 2021
1 parent e9bf206 commit 164ddf6
Show file tree
Hide file tree
Showing 15 changed files with 28 additions and 34 deletions.
1 change: 0 additions & 1 deletion esm/discord.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ export const {
Intents,
Permissions,
Speaking,
Snowflake,
SnowflakeUtil,
Structures,
SystemChannelFlags,
Expand Down
3 changes: 1 addition & 2 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ module.exports = {
Intents: require('./util/Intents'),
Permissions: require('./util/Permissions'),
Speaking: require('./util/Speaking'),
Snowflake: require('./util/Snowflake'),
SnowflakeUtil: require('./util/Snowflake'),
SnowflakeUtil: require('./util/SnowflakeUtil'),
Structures: require('./util/Structures'),
SystemChannelFlags: require('./util/SystemChannelFlags'),
UserFlags: require('./util/UserFlags'),
Expand Down
2 changes: 1 addition & 1 deletion src/managers/GuildMemberManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const { Error, TypeError, RangeError } = require('../errors');
const GuildMember = require('../structures/GuildMember');
const Collection = require('../util/Collection');
const { Events, OPCodes } = require('../util/Constants');
const SnowflakeUtil = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');

/**
* Manages API methods for GuildMembers and stores their cache.
Expand Down
4 changes: 2 additions & 2 deletions src/structures/Channel.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

const Base = require('./Base');
const { ChannelTypes } = require('../util/Constants');
const Snowflake = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');

/**
* Represents any channel on Discord.
Expand Down Expand Up @@ -51,7 +51,7 @@ class Channel extends Base {
* @readonly
*/
get createdTimestamp() {
return Snowflake.deconstruct(this.id).timestamp;
return SnowflakeUtil.deconstruct(this.id).timestamp;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/structures/Emoji.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const Base = require('./Base');
const Snowflake = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');

/**
* Represents an emoji, see {@link GuildEmoji} and {@link ReactionEmoji}.
Expand Down Expand Up @@ -62,7 +62,7 @@ class Emoji extends Base {
*/
get createdTimestamp() {
if (!this.id) return null;
return Snowflake.deconstruct(this.id).timestamp;
return SnowflakeUtil.deconstruct(this.id).timestamp;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/structures/Guild.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ const {
ExplicitContentFilterLevels,
} = require('../util/Constants');
const DataResolver = require('../util/DataResolver');
const Snowflake = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');
const SystemChannelFlags = require('../util/SystemChannelFlags');
const Util = require('../util/Util');

Expand Down Expand Up @@ -444,7 +444,7 @@ class Guild extends Base {
* @readonly
*/
get createdTimestamp() {
return Snowflake.deconstruct(this.id).timestamp;
return SnowflakeUtil.deconstruct(this.id).timestamp;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/structures/GuildAuditLogs.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const Webhook = require('./Webhook');
const Collection = require('../util/Collection');
const { OverwriteTypes, PartialTypes } = require('../util/Constants');
const Permissions = require('../util/Permissions');
const Snowflake = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');
const Util = require('../util/Util');

/**
Expand Down Expand Up @@ -491,7 +491,7 @@ class GuildAuditLogsEntry {
* @readonly
*/
get createdTimestamp() {
return Snowflake.deconstruct(this.id).timestamp;
return SnowflakeUtil.deconstruct(this.id).timestamp;
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/structures/Message.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const Collection = require('../util/Collection');
const { MessageTypes, SystemMessageTypes } = require('../util/Constants');
const MessageFlags = require('../util/MessageFlags');
const Permissions = require('../util/Permissions');
const SnowflakeUtil = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');
const Util = require('../util/Util');

/**
Expand Down
4 changes: 2 additions & 2 deletions src/structures/Role.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
const Base = require('./Base');
const { Error, TypeError } = require('../errors');
const Permissions = require('../util/Permissions');
const Snowflake = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');
const Util = require('../util/Util');

/**
Expand Down Expand Up @@ -110,7 +110,7 @@ class Role extends Base {
* @readonly
*/
get createdTimestamp() {
return Snowflake.deconstruct(this.id).timestamp;
return SnowflakeUtil.deconstruct(this.id).timestamp;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/structures/Team.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
const Base = require('./Base');
const TeamMember = require('./TeamMember');
const Collection = require('../util/Collection');
const Snowflake = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');

/**
* Represents a Client OAuth2 Application Team.
Expand Down Expand Up @@ -67,7 +67,7 @@ class Team extends Base {
* @readonly
*/
get createdTimestamp() {
return Snowflake.deconstruct(this.id).timestamp;
return SnowflakeUtil.deconstruct(this.id).timestamp;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/structures/User.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
const Base = require('./Base');
const TextBasedChannel = require('./interfaces/TextBasedChannel');
const { Error } = require('../errors');
const Snowflake = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');
const UserFlags = require('../util/UserFlags');

let Structures;
Expand Down Expand Up @@ -116,7 +116,7 @@ class User extends Base {
* @readonly
*/
get createdTimestamp() {
return Snowflake.deconstruct(this.id).timestamp;
return SnowflakeUtil.deconstruct(this.id).timestamp;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/structures/Webhook.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const APIMessage = require('./APIMessage');
const Channel = require('./Channel');
const { WebhookTypes } = require('../util/Constants');
const DataResolver = require('../util/DataResolver');
const Snowflake = require('../util/Snowflake');
const SnowflakeUtil = require('../util/SnowflakeUtil');

/**
* Represents a webhook.
Expand Down Expand Up @@ -281,7 +281,7 @@ class Webhook {
* @readonly
*/
get createdTimestamp() {
return Snowflake.deconstruct(this.id).timestamp;
return SnowflakeUtil.deconstruct(this.id).timestamp;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/structures/interfaces/Application.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const { ClientApplicationAssetTypes, Endpoints } = require('../../util/Constants');
const Snowflake = require('../../util/Snowflake');
const SnowflakeUtil = require('../../util/SnowflakeUtil');
const Base = require('../Base');

const AssetTypes = Object.keys(ClientApplicationAssetTypes);
Expand Down Expand Up @@ -48,7 +48,7 @@ class Application extends Base {
* @readonly
*/
get createdTimestamp() {
return Snowflake.deconstruct(this.id).timestamp;
return SnowflakeUtil.deconstruct(this.id).timestamp;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/structures/interfaces/TextBasedChannel.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/* eslint-disable import/order */
const MessageCollector = require('../MessageCollector');
const APIMessage = require('../APIMessage');
const Snowflake = require('../../util/Snowflake');
const SnowflakeUtil = require('../../util/SnowflakeUtil');
const Collection = require('../../util/Collection');
const { RangeError, TypeError } = require('../../errors');

Expand Down Expand Up @@ -317,7 +317,7 @@ class TextBasedChannel {
if (Array.isArray(messages) || messages instanceof Collection) {
let messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id || m);
if (filterOld) {
messageIDs = messageIDs.filter(id => Date.now() - Snowflake.deconstruct(id).date.getTime() < 1209600000);
messageIDs = messageIDs.filter(id => Date.now() - SnowflakeUtil.deconstruct(id).timestamp < 1209600000);
}
if (messageIDs.length === 0) return new Collection();
if (messageIDs.length === 1) {
Expand Down
14 changes: 5 additions & 9 deletions src/util/Snowflake.js → src/util/SnowflakeUtil.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';

const Util = require('../util/Util');
const Util = require('./Util');

// Discord epoch (2015-01-01T00:00:00.000Z)
const EPOCH = 1420070400000;
Expand Down Expand Up @@ -64,20 +64,16 @@ class SnowflakeUtil {
*/
static deconstruct(snowflake) {
const BINARY = Util.idToBinary(snowflake).toString(2).padStart(64, '0');
const res = {
return {
timestamp: parseInt(BINARY.substring(0, 42), 2) + EPOCH,
get date() {
return new Date(this.timestamp);
},
workerID: parseInt(BINARY.substring(42, 47), 2),
processID: parseInt(BINARY.substring(47, 52), 2),
increment: parseInt(BINARY.substring(52, 64), 2),
binary: BINARY,
};
Object.defineProperty(res, 'date', {
get: function get() {
return new Date(this.timestamp);
},
enumerable: true,
});
return res;
}

/**
Expand Down

0 comments on commit 164ddf6

Please sign in to comment.