docs: deprecate .deleted getters (#7107)

This commit is contained in:
Antonio Román
2021-12-14 19:34:27 +01:00
committed by GitHub
parent 1e00fc2001
commit d43f68488e
10 changed files with 172 additions and 36 deletions

View File

@@ -18,6 +18,7 @@ const SnowflakeUtil = require('../util/SnowflakeUtil');
* @internal
*/
const deletedChannels = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents any channel on Discord.
@@ -67,12 +68,29 @@ class Channel extends Base {
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Channel#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedChannels.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Channel#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedChannels.add(this);
else deletedChannels.delete(this);
}

View File

@@ -9,6 +9,7 @@ const SnowflakeUtil = require('../util/SnowflakeUtil');
* @internal
*/
const deletedEmojis = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents raw emoji data from the API
@@ -47,12 +48,29 @@ class Emoji extends Base {
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Emoji#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedEmojis.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Emoji#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedEmojis.add(this);
else deletedEmojis.delete(this);
}

View File

@@ -36,6 +36,7 @@ const Util = require('../util/Util');
let deprecationEmittedForSetChannelPositions = false;
let deprecationEmittedForSetRolePositions = false;
let deprecationEmittedForDeleted = false;
/**
* @type {WeakSet<Guild>}
@@ -130,12 +131,29 @@ class Guild extends AnonymousGuild {
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Guild#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedGuilds.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Guild#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedGuilds.add(this);
else deletedGuilds.delete(this);
}

View File

@@ -13,6 +13,7 @@ const Permissions = require('../util/Permissions');
* @internal
*/
const deletedGuildMembers = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a member of a guild on Discord.
@@ -93,12 +94,29 @@ class GuildMember extends Base {
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'GuildMember#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedGuildMembers.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'GuildMember#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedGuildMembers.add(this);
else deletedGuildMembers.delete(this);
}

View File

@@ -25,6 +25,7 @@ const Util = require('../util/Util');
* @internal
*/
const deletedMessages = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a message on Discord.
@@ -352,12 +353,29 @@ class Message extends Base {
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Message#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedMessages.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Message#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedMessages.add(this);
else deletedMessages.delete(this);
}

View File

@@ -14,6 +14,7 @@ let deprecationEmittedForComparePositions = false;
* @internal
*/
const deletedRoles = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a role on Discord.
@@ -152,12 +153,29 @@ class Role extends Base {
/**
* Whether or not the role has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Role#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedRoles.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Role#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedRoles.add(this);
else deletedRoles.delete(this);
}

View File

@@ -10,6 +10,7 @@ const SnowflakeUtil = require('../util/SnowflakeUtil');
* @internal
*/
const deletedStageInstances = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a stage instance.
@@ -84,12 +85,29 @@ class StageInstance extends Base {
/**
* Whether or not the stage instance has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'StageInstance#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedStageInstances.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'StageInstance#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedStageInstances.add(this);
else deletedStageInstances.delete(this);
}

View File

@@ -10,6 +10,7 @@ const SnowflakeUtil = require('../util/SnowflakeUtil');
* @internal
*/
const deletedStickers = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a Sticker.
@@ -147,12 +148,29 @@ class Sticker extends Base {
/**
* Whether or not the sticker has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Sticker#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedStickers.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Sticker#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedStickers.add(this);
else deletedStickers.delete(this);
}

40
typings/index.d.ts vendored
View File

@@ -516,9 +516,8 @@ export abstract class Channel extends Base {
public constructor(client: Client, data?: RawChannelData, immediatePatch?: boolean);
public readonly createdAt: Date;
public readonly createdTimestamp: number;
public get deleted(): boolean;
/** @deprecated Will be removed in v14 */
public set deleted(value: boolean);
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public id: Snowflake;
public readonly partial: false;
public type: keyof typeof ChannelTypes;
@@ -853,9 +852,8 @@ export class Emoji extends Base {
public animated: boolean | null;
public readonly createdAt: Date | null;
public readonly createdTimestamp: number | null;
public get deleted(): boolean;
/** @deprecated Will be removed in v14 */
public set deleted(value: boolean);
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public id: Snowflake | null;
public name: string | null;
public readonly identifier: string;
@@ -880,9 +878,8 @@ export class Guild extends AnonymousGuild {
public channels: GuildChannelManager;
public commands: GuildApplicationCommandManager;
public defaultMessageNotifications: DefaultMessageNotificationLevel | number;
public get deleted(): boolean;
/** @deprecated Will be removed in v14 */
public set deleted(value: boolean);
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public discoverySplash: string | null;
public emojis: GuildEmojiManager;
public explicitContentFilter: ExplicitContentFilterLevel;
@@ -1086,9 +1083,8 @@ export class GuildMember extends PartialTextBasedChannel(Base) {
private constructor(client: Client, data: RawGuildMemberData, guild: Guild);
public avatar: string | null;
public readonly bannable: boolean;
public get deleted(): boolean;
/** @deprecated Will be removed in v14 */
public set deleted(value: boolean);
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public readonly displayColor: number;
public readonly displayHexColor: HexColorString;
public readonly displayName: string;
@@ -1427,9 +1423,8 @@ export class Message<Cached extends boolean = boolean> extends Base {
public createdTimestamp: number;
public readonly crosspostable: boolean;
public readonly deletable: boolean;
public get deleted(): boolean;
/** @deprecated Will be removed in v14 */
public set deleted(value: boolean);
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public readonly editable: boolean;
public readonly editedAt: Date | null;
public editedTimestamp: number | null;
@@ -1860,9 +1855,8 @@ export class Role extends Base {
public color: number;
public readonly createdAt: Date;
public readonly createdTimestamp: number;
public get deleted(): boolean;
/** @deprecated Will be removed in v14 */
public set deleted(value: boolean);
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public readonly editable: boolean;
public guild: Guild;
public readonly hexColor: HexColorString;
@@ -2048,9 +2042,8 @@ export class StageChannel extends BaseGuildVoiceChannel {
export class StageInstance extends Base {
private constructor(client: Client, data: RawStageInstanceData, channel: StageChannel);
public id: Snowflake;
public get deleted(): boolean;
/** @deprecated Will be removed in v14 */
public set deleted(value: boolean);
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public guildId: Snowflake;
public channelId: Snowflake;
public topic: string;
@@ -2067,9 +2060,8 @@ export class StageInstance extends Base {
export class Sticker extends Base {
private constructor(client: Client, data: RawStickerData);
public get deleted(): boolean;
/** @deprecated Will be removed in v14 */
public set deleted(value: boolean);
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public readonly createdTimestamp: number;
public readonly createdAt: Date;
public available: boolean | null;

View File

@@ -922,18 +922,18 @@ declare const message: Message;
declare const role: Role;
declare const stageInstance: StageInstance;
declare const sticker: Sticker;
expectDeprecated((dmChannel.deleted = true));
expectDeprecated((textChannel.deleted = true));
expectDeprecated((voiceChannel.deleted = true));
expectDeprecated((newsChannel.deleted = true));
expectDeprecated((threadChannel.deleted = true));
expectDeprecated((emoji.deleted = true));
expectDeprecated((guildMember.deleted = true));
expectDeprecated((guild.deleted = true));
expectDeprecated((message.deleted = true));
expectDeprecated((role.deleted = true));
expectDeprecated((stageInstance.deleted = true));
expectDeprecated((sticker.deleted = true));
expectDeprecated(dmChannel.deleted);
expectDeprecated(textChannel.deleted);
expectDeprecated(voiceChannel.deleted);
expectDeprecated(newsChannel.deleted);
expectDeprecated(threadChannel.deleted);
expectDeprecated(emoji.deleted);
expectDeprecated(guildMember.deleted);
expectDeprecated(guild.deleted);
expectDeprecated(message.deleted);
expectDeprecated(role.deleted);
expectDeprecated(stageInstance.deleted);
expectDeprecated(sticker.deleted);
// Test interactions
declare const interaction: Interaction;