Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(MessagePayload): prevent spread of undefined #7029

Merged
merged 1 commit into from Nov 29, 2021

Conversation

kyranet
Copy link
Member

@kyranet kyranet commented Nov 24, 2021

Please describe the changes this PR makes and why it should be merged:

When passing attachments: [] to MessageOptions and no files (to clear all attachments in a message edit), this code would result on the following logic to be executed:

const attachments = this.options.files?.map((file, index) => ({
  id: index.toString(),
  description: file.description,
}));
if (Array.isArray(this.options.attachments) /* true */) {
  this.options.attachments.push(...attachments /* undefined */);
} else {
  this.options.attachments = attachments;
}

When spreading undefined, a TypeError is thrown with the message undefined is not iterable (cannot read property undefined) on Node.js v16.3.0.

Defaulting attachments to an empty array in that branch resolves the issue with the minimal impact possible.

Status and versioning classification:

  • I know how to update typings and have done so, or typings don't need updating
  • Code changes have been tested against the Discord API, or there are no code changes

@iCrawl iCrawl merged commit fabd343 into discordjs:main Nov 29, 2021
@kyranet kyranet deleted the fix/do-not-spread-undefined branch November 29, 2021 11:27
Jiralite pushed a commit to Jiralite/discord.js that referenced this pull request Dec 1, 2021
Koyamie added a commit to Koyamie/discord.js that referenced this pull request Dec 2, 2021
commit 01f8d1b
Author: Jiralite <33201955+Jiralite@users.noreply.github.com>
Date:   Thu Dec 2 13:29:54 2021 +0000

    types(Interaction): Narrow `memberPermissions` (discordjs#7054)

commit 5fcda73
Author: That_Guy977 <72870724+That-Guy977@users.noreply.github.com>
Date:   Thu Dec 2 20:29:21 2021 +0700

    fix(GuildChannel): default to `this.rawPosition` in `clone()` (discordjs#7057)

commit 552d89f
Author: Rodry <38259440+ImRodry@users.noreply.github.com>
Date:   Wed Dec 1 11:40:49 2021 +0000

    feat(Guild): add premiumProgressbarEnabled (discordjs#6887)

    Co-authored-by: Vlad Frangu <kingdgrizzle@gmail.com>

commit b183a8e
Author: Rodry <38259440+ImRodry@users.noreply.github.com>
Date:   Wed Dec 1 11:33:28 2021 +0000

    docs(Invite): add info blocks for missing props (discordjs#7014)

commit da86bd4
Author: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com>
Date:   Wed Dec 1 06:33:11 2021 -0500

    fix: Interaction channel type should be `GuildTextBasedChannels` when in guild (discordjs#6998)

commit c07207f
Author: That_Guy977 <72870724+That-Guy977@users.noreply.github.com>
Date:   Wed Dec 1 18:32:13 2021 +0700

    fix(Util): fix sorting for GuildChannels (discordjs#7002)

commit 4fe063f
Author: GrapeColor <40069549+GrapeColor@users.noreply.github.com>
Date:   Wed Dec 1 20:31:37 2021 +0900

    feat: add `UserContextMenuInteraction` and `MessageContextMenuInteraction` (discordjs#7003)

    Co-authored-by: Rodry <38259440+ImRodry@users.noreply.github.com>
    Co-authored-by: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com>
    Co-authored-by: Vlad Frangu <kingdgrizzle@gmail.com>
    Co-authored-by: GrapeColor <grapecolor@users.noreply.github.com>

commit a39d8c4
Author: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com>
Date:   Wed Dec 1 06:28:22 2021 -0500

    Revert "types(ApplicationCommandManager): Deprecate old `*Data` type …usages and allow camel cased dapi types to be used (discordjs#7052)

commit 85e6812
Author: Jiralite <33201955+Jiralite@users.noreply.github.com>
Date:   Wed Dec 1 11:27:24 2021 +0000

    docs(MessageReference): Fix static link (discordjs#7041)

commit e305156
Author: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com>
Date:   Mon Nov 29 13:32:26 2021 -0500

    chore: bump deps (discordjs#7048)

commit 374f970
Author: Antonio Román <kyradiscord@gmail.com>
Date:   Mon Nov 29 11:20:52 2021 +0100

    chore: add myself as contributor in package.json (discordjs#7037)

commit e59fac3
Author: Antonio Román <kyradiscord@gmail.com>
Date:   Mon Nov 29 11:20:18 2021 +0100

    refactor(SnowflakeUtil): clean up utils and improve perf (discordjs#7036)

commit fd63139
Author: Antonio Román <kyradiscord@gmail.com>
Date:   Mon Nov 29 11:19:32 2021 +0100

    fix(MessageManager): do not use `client.emojis` (discordjs#7039)

commit 0193efa
Author: Antonio Román <kyradiscord@gmail.com>
Date:   Mon Nov 29 11:19:21 2021 +0100

    fix(ActionsManager): revert to manual requires (discordjs#7034)

commit fabd343
Author: Antonio Román <kyradiscord@gmail.com>
Date:   Mon Nov 29 11:18:41 2021 +0100

    fix(MessagePayload): prevent spread of `undefined` (discordjs#7029)

commit 2c91c48
Author: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com>
Date:   Mon Nov 29 05:17:57 2021 -0500

    types(ApplicationCommandManager): Deprecate old `*Data` type usages and allow camel cased dapi types to be used (discordjs#6959)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

4 participants