Skip to content

Commit f451be0

Browse files
feat(typings): use readonly arrays in parameters (#4692)
Co-authored-by: Noel <icrawltogo@gmail.com>
1 parent f991bd4 commit f451be0

File tree

1 file changed

+30
-26
lines changed

1 file changed

+30
-26
lines changed

typings/index.d.ts

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ declare module 'discord.js' {
6565
extra?: MessageOptions | WebhookMessageOptions,
6666
): APIMessage;
6767
public static partitionMessageAdditions(
68-
items: (MessageEmbed | MessageAttachment)[],
68+
items: readonly (MessageEmbed | MessageAttachment)[],
6969
): [MessageEmbed[], MessageAttachment[]];
7070
public static resolveFile(fileLike: BufferResolvable | Stream | FileOptions | MessageAttachment): Promise<object>;
7171
public static transformOptions(
@@ -692,7 +692,7 @@ declare module 'discord.js' {
692692
public setAFKChannel(afkChannel: ChannelResolvable | null, reason?: string): Promise<Guild>;
693693
public setAFKTimeout(afkTimeout: number, reason?: string): Promise<Guild>;
694694
public setBanner(banner: Base64Resolvable | null, reason?: string): Promise<Guild>;
695-
public setChannelPositions(channelPositions: ChannelPosition[]): Promise<Guild>;
695+
public setChannelPositions(channelPositions: readonly ChannelPosition[]): Promise<Guild>;
696696
public setDefaultMessageNotifications(
697697
defaultMessageNotifications: DefaultMessageNotifications | number,
698698
reason?: string,
@@ -706,7 +706,7 @@ declare module 'discord.js' {
706706
public setPreferredLocale(preferredLocale: string, reason?: string): Promise<Guild>;
707707
public setPublicUpdatesChannel(publicUpdatesChannel: ChannelResolvable | null, reason?: string): Promise<Guild>;
708708
public setRegion(region: string, reason?: string): Promise<Guild>;
709-
public setRolePositions(rolePositions: RolePosition[]): Promise<Guild>;
709+
public setRolePositions(rolePositions: readonly RolePosition[]): Promise<Guild>;
710710
public setRulesChannel(rulesChannel: ChannelResolvable | null, reason?: string): Promise<Guild>;
711711
public setSplash(splash: Base64Resolvable | null, reason?: string): Promise<Guild>;
712712
public setSystemChannel(systemChannel: ChannelResolvable | null, reason?: string): Promise<Guild>;
@@ -781,7 +781,7 @@ declare module 'discord.js' {
781781
public fetchInvites(): Promise<Collection<string, Invite>>;
782782
public lockPermissions(): Promise<this>;
783783
public overwritePermissions(
784-
overwrites: OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>,
784+
overwrites: readonly OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>,
785785
reason?: string,
786786
): Promise<this>;
787787
public permissionsFor(memberOrRole: GuildMemberResolvable | RoleResolvable): Readonly<Permissions> | null;
@@ -1897,9 +1897,13 @@ declare module 'discord.js' {
18971897
public emoji: GuildEmoji;
18981898
public guild: Guild;
18991899
public cache: Collection<Snowflake, Role>;
1900-
public add(roleOrRoles: RoleResolvable | RoleResolvable[] | Collection<Snowflake, Role>): Promise<GuildEmoji>;
1901-
public set(roles: RoleResolvable[] | Collection<Snowflake, Role>): Promise<GuildEmoji>;
1902-
public remove(roleOrRoles: RoleResolvable | RoleResolvable[] | Collection<Snowflake, Role>): Promise<GuildEmoji>;
1900+
public add(
1901+
roleOrRoles: RoleResolvable | readonly RoleResolvable[] | Collection<Snowflake, Role>,
1902+
): Promise<GuildEmoji>;
1903+
public set(roles: readonly RoleResolvable[] | Collection<Snowflake, Role>): Promise<GuildEmoji>;
1904+
public remove(
1905+
roleOrRoles: RoleResolvable | readonly RoleResolvable[] | Collection<Snowflake, Role>,
1906+
): Promise<GuildEmoji>;
19031907
}
19041908

19051909
export class GuildManager extends BaseManager<Snowflake, Guild, GuildResolvable> {
@@ -1932,12 +1936,12 @@ declare module 'discord.js' {
19321936
public guild: Guild;
19331937

19341938
public add(
1935-
roleOrRoles: RoleResolvable | RoleResolvable[] | Collection<Snowflake, Role>,
1939+
roleOrRoles: RoleResolvable | readonly RoleResolvable[] | Collection<Snowflake, Role>,
19361940
reason?: string,
19371941
): Promise<GuildMember>;
1938-
public set(roles: RoleResolvable[] | Collection<Snowflake, Role>, reason?: string): Promise<GuildMember>;
1942+
public set(roles: readonly RoleResolvable[] | Collection<Snowflake, Role>, reason?: string): Promise<GuildMember>;
19391943
public remove(
1940-
roleOrRoles: RoleResolvable | RoleResolvable[] | Collection<Snowflake, Role>,
1944+
roleOrRoles: RoleResolvable | readonly RoleResolvable[] | Collection<Snowflake, Role>,
19411945
reason?: string,
19421946
): Promise<GuildMember>;
19431947
}
@@ -2043,7 +2047,7 @@ declare module 'discord.js' {
20432047
typingCount: number;
20442048
awaitMessages(filter: CollectorFilter, options?: AwaitMessagesOptions): Promise<Collection<Snowflake, Message>>;
20452049
bulkDelete(
2046-
messages: Collection<Snowflake, Message> | MessageResolvable[] | number,
2050+
messages: Collection<Snowflake, Message> | readonly MessageResolvable[] | number,
20472051
filterOld?: boolean,
20482052
): Promise<Collection<Snowflake, Message>>;
20492053
createMessageCollector(filter: CollectorFilter, options?: MessageCollectorOptions): MessageCollector;
@@ -2087,7 +2091,7 @@ declare module 'discord.js' {
20872091
name?: string;
20882092
url?: string;
20892093
type?: ActivityType | number;
2090-
shardID?: number | number[];
2094+
shardID?: number | readonly number[];
20912095
}
20922096

20932097
type ActivityType = 'PLAYING' | 'STREAMING' | 'LISTENING' | 'WATCHING' | 'CUSTOM_STATUS';
@@ -2154,11 +2158,11 @@ declare module 'discord.js' {
21542158
}
21552159

21562160
interface AwaitMessagesOptions extends MessageCollectorOptions {
2157-
errors?: string[];
2161+
errors?: readonly string[];
21582162
}
21592163

21602164
interface AwaitReactionsOptions extends ReactionCollectorOptions {
2161-
errors?: string[];
2165+
errors?: readonly string[];
21622166
}
21632167

21642168
interface BanOptions {
@@ -2194,7 +2198,7 @@ declare module 'discord.js' {
21942198
parentID?: Snowflake;
21952199
rateLimitPerUser?: number;
21962200
lockPermissions?: boolean;
2197-
permissionOverwrites?: OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>;
2201+
permissionOverwrites?: readonly OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>;
21982202
}
21992203

22002204
interface ChannelLogsQueryOptions {
@@ -2432,7 +2436,7 @@ declare module 'discord.js' {
24322436
}
24332437

24342438
interface FetchMembersOptions {
2435-
user?: UserResolvable | UserResolvable[];
2439+
user?: UserResolvable | readonly UserResolvable[];
24362440
query?: string;
24372441
limit?: number;
24382442
withPresences?: boolean;
@@ -2515,7 +2519,7 @@ declare module 'discord.js' {
25152519
type GuildChannelResolvable = Snowflake | GuildChannel;
25162520

25172521
interface GuildCreateChannelOptions {
2518-
permissionOverwrites?: OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>;
2522+
permissionOverwrites?: readonly OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>;
25192523
topic?: string;
25202524
type?: Exclude<
25212525
keyof typeof ChannelType | ChannelType,
@@ -2560,13 +2564,13 @@ declare module 'discord.js' {
25602564
}
25612565

25622566
interface GuildEmojiCreateOptions {
2563-
roles?: Collection<Snowflake, Role> | RoleResolvable[];
2567+
roles?: Collection<Snowflake, Role> | readonly RoleResolvable[];
25642568
reason?: string;
25652569
}
25662570

25672571
interface GuildEmojiEditData {
25682572
name?: string;
2569-
roles?: Collection<Snowflake, Role> | RoleResolvable[];
2573+
roles?: Collection<Snowflake, Role> | readonly RoleResolvable[];
25702574
}
25712575

25722576
type GuildFeatures =
@@ -2586,7 +2590,7 @@ declare module 'discord.js' {
25862590

25872591
interface GuildMemberEditData {
25882592
nick?: string;
2589-
roles?: Collection<Snowflake, Role> | RoleResolvable[];
2593+
roles?: Collection<Snowflake, Role> | readonly RoleResolvable[];
25902594
mute?: boolean;
25912595
deaf?: boolean;
25922596
channel?: ChannelResolvable | null;
@@ -2713,8 +2717,8 @@ declare module 'discord.js' {
27132717
url?: string;
27142718
timestamp?: Date | number;
27152719
color?: ColorResolvable;
2716-
fields?: EmbedFieldData[];
2717-
files?: (MessageAttachment | string | FileOptions)[];
2720+
fields?: readonly EmbedFieldData[];
2721+
files?: readonly (MessageAttachment | string | FileOptions)[];
27182722
author?: Partial<MessageEmbedAuthor> & { icon_url?: string; proxy_icon_url?: string };
27192723
thumbnail?: Partial<MessageEmbedThumbnail> & { proxy_url?: string };
27202724
image?: Partial<MessageEmbedImage> & { proxy_url?: string };
@@ -2764,7 +2768,7 @@ declare module 'discord.js' {
27642768
embed?: MessageEmbed | MessageEmbedOptions;
27652769
disableMentions?: 'none' | 'all' | 'everyone';
27662770
allowedMentions?: MessageMentionOptions;
2767-
files?: (FileOptions | BufferResolvable | Stream | MessageAttachment)[];
2771+
files?: readonly (FileOptions | BufferResolvable | Stream | MessageAttachment)[];
27682772
code?: string | boolean;
27692773
split?: boolean | SplitOptions;
27702774
reply?: UserResolvable;
@@ -2851,7 +2855,7 @@ declare module 'discord.js' {
28512855
| 'MANAGE_WEBHOOKS'
28522856
| 'MANAGE_EMOJIS';
28532857

2854-
interface RecursiveArray<T> extends Array<T | RecursiveArray<T>> {}
2858+
interface RecursiveArray<T> extends ReadonlyArray<T | RecursiveArray<T>> {}
28552859

28562860
type RecursiveReadonlyArray<T> = ReadonlyArray<T | RecursiveReadonlyArray<T>>;
28572861

@@ -3094,10 +3098,10 @@ declare module 'discord.js' {
30943098
avatarURL?: string;
30953099
tts?: boolean;
30963100
nonce?: string;
3097-
embeds?: (MessageEmbed | object)[];
3101+
embeds?: readonly (MessageEmbed | object)[];
30983102
disableMentions?: 'none' | 'all' | 'everyone';
30993103
allowedMentions?: MessageMentionOptions;
3100-
files?: (FileOptions | BufferResolvable | Stream | MessageAttachment)[];
3104+
files?: readonly (FileOptions | BufferResolvable | Stream | MessageAttachment)[];
31013105
code?: string | boolean;
31023106
split?: boolean | SplitOptions;
31033107
}

0 commit comments

Comments
 (0)