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 * @internal
*/ */
const deletedChannels = new WeakSet(); const deletedChannels = new WeakSet();
let deprecationEmittedForDeleted = false;
/** /**
* Represents any channel on Discord. * Represents any channel on Discord.
@@ -67,12 +68,29 @@ class Channel extends Base {
/** /**
* Whether or not the structure has been deleted * Whether or not the structure has been deleted
* @type {boolean} * @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/ */
get deleted() { 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); return deletedChannels.has(this);
} }
set deleted(value) { 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); if (value) deletedChannels.add(this);
else deletedChannels.delete(this); else deletedChannels.delete(this);
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -10,6 +10,7 @@ const SnowflakeUtil = require('../util/SnowflakeUtil');
* @internal * @internal
*/ */
const deletedStickers = new WeakSet(); const deletedStickers = new WeakSet();
let deprecationEmittedForDeleted = false;
/** /**
* Represents a Sticker. * Represents a Sticker.
@@ -147,12 +148,29 @@ class Sticker extends Base {
/** /**
* Whether or not the sticker has been deleted * Whether or not the sticker has been deleted
* @type {boolean} * @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/ */
get deleted() { 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); return deletedStickers.has(this);
} }
set deleted(value) { 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); if (value) deletedStickers.add(this);
else deletedStickers.delete(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 constructor(client: Client, data?: RawChannelData, immediatePatch?: boolean);
public readonly createdAt: Date; public readonly createdAt: Date;
public readonly createdTimestamp: number; public readonly createdTimestamp: number;
public get deleted(): boolean; /** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
/** @deprecated Will be removed in v14 */ public deleted: boolean;
public set deleted(value: boolean);
public id: Snowflake; public id: Snowflake;
public readonly partial: false; public readonly partial: false;
public type: keyof typeof ChannelTypes; public type: keyof typeof ChannelTypes;
@@ -853,9 +852,8 @@ export class Emoji extends Base {
public animated: boolean | null; public animated: boolean | null;
public readonly createdAt: Date | null; public readonly createdAt: Date | null;
public readonly createdTimestamp: number | null; public readonly createdTimestamp: number | null;
public get deleted(): boolean; /** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
/** @deprecated Will be removed in v14 */ public deleted: boolean;
public set deleted(value: boolean);
public id: Snowflake | null; public id: Snowflake | null;
public name: string | null; public name: string | null;
public readonly identifier: string; public readonly identifier: string;
@@ -880,9 +878,8 @@ export class Guild extends AnonymousGuild {
public channels: GuildChannelManager; public channels: GuildChannelManager;
public commands: GuildApplicationCommandManager; public commands: GuildApplicationCommandManager;
public defaultMessageNotifications: DefaultMessageNotificationLevel | number; public defaultMessageNotifications: DefaultMessageNotificationLevel | number;
public get deleted(): boolean; /** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
/** @deprecated Will be removed in v14 */ public deleted: boolean;
public set deleted(value: boolean);
public discoverySplash: string | null; public discoverySplash: string | null;
public emojis: GuildEmojiManager; public emojis: GuildEmojiManager;
public explicitContentFilter: ExplicitContentFilterLevel; public explicitContentFilter: ExplicitContentFilterLevel;
@@ -1086,9 +1083,8 @@ export class GuildMember extends PartialTextBasedChannel(Base) {
private constructor(client: Client, data: RawGuildMemberData, guild: Guild); private constructor(client: Client, data: RawGuildMemberData, guild: Guild);
public avatar: string | null; public avatar: string | null;
public readonly bannable: boolean; public readonly bannable: boolean;
public get deleted(): boolean; /** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
/** @deprecated Will be removed in v14 */ public deleted: boolean;
public set deleted(value: boolean);
public readonly displayColor: number; public readonly displayColor: number;
public readonly displayHexColor: HexColorString; public readonly displayHexColor: HexColorString;
public readonly displayName: string; public readonly displayName: string;
@@ -1427,9 +1423,8 @@ export class Message<Cached extends boolean = boolean> extends Base {
public createdTimestamp: number; public createdTimestamp: number;
public readonly crosspostable: boolean; public readonly crosspostable: boolean;
public readonly deletable: boolean; public readonly deletable: boolean;
public get deleted(): boolean; /** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
/** @deprecated Will be removed in v14 */ public deleted: boolean;
public set deleted(value: boolean);
public readonly editable: boolean; public readonly editable: boolean;
public readonly editedAt: Date | null; public readonly editedAt: Date | null;
public editedTimestamp: number | null; public editedTimestamp: number | null;
@@ -1860,9 +1855,8 @@ export class Role extends Base {
public color: number; public color: number;
public readonly createdAt: Date; public readonly createdAt: Date;
public readonly createdTimestamp: number; public readonly createdTimestamp: number;
public get deleted(): boolean; /** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
/** @deprecated Will be removed in v14 */ public deleted: boolean;
public set deleted(value: boolean);
public readonly editable: boolean; public readonly editable: boolean;
public guild: Guild; public guild: Guild;
public readonly hexColor: HexColorString; public readonly hexColor: HexColorString;
@@ -2048,9 +2042,8 @@ export class StageChannel extends BaseGuildVoiceChannel {
export class StageInstance extends Base { export class StageInstance extends Base {
private constructor(client: Client, data: RawStageInstanceData, channel: StageChannel); private constructor(client: Client, data: RawStageInstanceData, channel: StageChannel);
public id: Snowflake; public id: Snowflake;
public get deleted(): boolean; /** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
/** @deprecated Will be removed in v14 */ public deleted: boolean;
public set deleted(value: boolean);
public guildId: Snowflake; public guildId: Snowflake;
public channelId: Snowflake; public channelId: Snowflake;
public topic: string; public topic: string;
@@ -2067,9 +2060,8 @@ export class StageInstance extends Base {
export class Sticker extends Base { export class Sticker extends Base {
private constructor(client: Client, data: RawStickerData); private constructor(client: Client, data: RawStickerData);
public get deleted(): boolean; /** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
/** @deprecated Will be removed in v14 */ public deleted: boolean;
public set deleted(value: boolean);
public readonly createdTimestamp: number; public readonly createdTimestamp: number;
public readonly createdAt: Date; public readonly createdAt: Date;
public available: boolean | null; public available: boolean | null;

View File

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