From 28c57246d1d3cd7a22384ddc7970ab5263a4ace0 Mon Sep 17 00:00:00 2001 From: PanSzelescik Date: Mon, 5 Jul 2021 13:53:40 +0100 Subject: [PATCH] feat(Message): add 'failIfNotExists' to ClientOptions (#6038) Co-authored-by: Noel --- src/client/Client.js | 3 +++ src/structures/Message.js | 2 +- src/structures/MessagePayload.js | 2 +- src/util/Options.js | 2 ++ typings/index.d.ts | 1 + 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/client/Client.js b/src/client/Client.js index 8e58c400b..3079c3b34 100644 --- a/src/client/Client.js +++ b/src/client/Client.js @@ -508,6 +508,9 @@ class Client extends BaseClient { if (typeof options.retryLimit !== 'number' || isNaN(options.retryLimit)) { throw new TypeError('CLIENT_INVALID_OPTION', 'retryLimit', 'a number'); } + if (typeof options.failIfNotExists !== 'boolean') { + throw new TypeError('CLIENT_INVALID_OPTION', 'failIfNotExists', 'a boolean'); + } if ( typeof options.rejectOnRateLimit !== 'undefined' && !(typeof options.rejectOnRateLimit === 'function' || Array.isArray(options.rejectOnRateLimit)) diff --git a/src/structures/Message.js b/src/structures/Message.js index 4dc3af8ad..4ba63f9da 100644 --- a/src/structures/Message.js +++ b/src/structures/Message.js @@ -697,7 +697,7 @@ class Message extends Base { data = MessagePayload.create(this, options, { reply: { messageReference: this, - failIfNotExists: options?.failIfNotExists ?? true, + failIfNotExists: options?.failIfNotExists ?? this.client.options.failIfNotExists, }, }); } diff --git a/src/structures/MessagePayload.js b/src/structures/MessagePayload.js index edb5dd25a..ab2980ff6 100644 --- a/src/structures/MessagePayload.js +++ b/src/structures/MessagePayload.js @@ -178,7 +178,7 @@ class MessagePayload { if (message_id) { message_reference = { message_id, - fail_if_not_exists: this.options.reply.failIfNotExists ?? true, + fail_if_not_exists: this.options.reply.failIfNotExists ?? this.target.client.options.failIfNotExists, }; } } diff --git a/src/util/Options.js b/src/util/Options.js index 21123fb54..2cc3caea9 100644 --- a/src/util/Options.js +++ b/src/util/Options.js @@ -62,6 +62,7 @@ * route starting with /channels, such as /channels/222197033908436994/messages) or a function returning true, a * {@link RateLimitError} will be thrown. Otherwise the request will be queued for later * @property {number} [retryLimit=1] How many times to retry on 5XX errors (Infinity for indefinite amount of retries) + * @property {boolean} [failIfNotExists=true] Default value for {@link ReplyMessageOptions#failIfNotExists} * @property {PresenceData} [presence={}] Presence data to use upon login * @property {IntentsResolvable} intents Intents to enable for this connection * @property {WebsocketOptions} [ws] Options for the WebSocket @@ -108,6 +109,7 @@ class Options extends null { retryLimit: 1, restTimeOffset: 500, restSweepInterval: 60, + failIfNotExists: true, presence: {}, ws: { large_threshold: 50, diff --git a/typings/index.d.ts b/typings/index.d.ts index f3e4a3fd2..a200f66f0 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2983,6 +2983,7 @@ export interface ClientOptions { restGlobalRateLimit?: number; restSweepInterval?: number; retryLimit?: number; + failIfNotExists?: boolean; presence?: PresenceData; intents: BitFieldResolvable; ws?: WebSocketOptions;