types: better fullPermissions typings (#6028)

This commit is contained in:
ckohen
2021-07-04 04:25:42 -07:00
committed by GitHub
parent b62d646271
commit 2ab32e6bc6
2 changed files with 21 additions and 3 deletions

11
typings/index.d.ts vendored
View File

@@ -310,6 +310,7 @@ declare module 'discord.js' {
public name: string; public name: string;
public options: ApplicationCommandOption[]; public options: ApplicationCommandOption[];
public permissions: ApplicationCommandPermissionsManager< public permissions: ApplicationCommandPermissionsManager<
PermissionsFetchType,
PermissionsFetchType, PermissionsFetchType,
PermissionsFetchType, PermissionsFetchType,
Guild | null, Guild | null,
@@ -2375,6 +2376,7 @@ declare module 'discord.js' {
public permissions: ApplicationCommandPermissionsManager< public permissions: ApplicationCommandPermissionsManager<
{ command?: ApplicationCommandResolvable } & PermissionsOptionsExtras, { command?: ApplicationCommandResolvable } & PermissionsOptionsExtras,
{ command: ApplicationCommandResolvable } & PermissionsOptionsExtras, { command: ApplicationCommandResolvable } & PermissionsOptionsExtras,
PermissionsOptionsExtras,
PermissionsGuildType, PermissionsGuildType,
null null
>; >;
@@ -2415,6 +2417,7 @@ declare module 'discord.js' {
export class ApplicationCommandPermissionsManager< export class ApplicationCommandPermissionsManager<
BaseOptions, BaseOptions,
FetchSingleOptions, FetchSingleOptions,
FullPermissionsOptions,
GuildType, GuildType,
CommandIDType, CommandIDType,
> extends BaseManager { > extends BaseManager {
@@ -2445,7 +2448,7 @@ declare module 'discord.js' {
options: FetchSingleOptions & { permissions: ApplicationCommandPermissionData[] }, options: FetchSingleOptions & { permissions: ApplicationCommandPermissionData[] },
): Promise<ApplicationCommandPermissions[]>; ): Promise<ApplicationCommandPermissions[]>;
public set( public set(
options: BaseOptions & { options: FullPermissionsOptions & {
fullPermissions: GuildApplicationCommandPermissionData[]; fullPermissions: GuildApplicationCommandPermissionData[];
}, },
): Promise<Collection<Snowflake, ApplicationCommandPermissions[]>>; ): Promise<Collection<Snowflake, ApplicationCommandPermissions[]>>;
@@ -2668,7 +2671,11 @@ declare module 'discord.js' {
public delete(channel: StageChannel | Snowflake): Promise<void>; public delete(channel: StageChannel | Snowflake): Promise<void>;
} }
export class ThreadManager<AllowedThreadType> extends CachedManager<Snowflake, ThreadChannel, ThreadChannelResolvable> { export class ThreadManager<AllowedThreadType> extends CachedManager<
Snowflake,
ThreadChannel,
ThreadChannelResolvable
> {
constructor(channel: TextChannel | NewsChannel, iterable?: Iterable<any>); constructor(channel: TextChannel | NewsChannel, iterable?: Iterable<any>);
public channel: TextChannel | NewsChannel; public channel: TextChannel | NewsChannel;
public create(options: ThreadCreateOptions<AllowedThreadType>): Promise<ThreadChannel>; public create(options: ThreadCreateOptions<AllowedThreadType>): Promise<ThreadChannel>;

View File

@@ -97,6 +97,12 @@ client.on('ready', async () => {
await globalPermissionsManager?.set({ await globalPermissionsManager?.set({
fullPermissions: [{ id: globalCommandID, permissions: [{ type: 'ROLE', id: testGuildID, permission: true }] }], fullPermissions: [{ id: globalCommandID, permissions: [{ type: 'ROLE', id: testGuildID, permission: true }] }],
}); });
// @ts-expect-error
await globalPermissionsManager?.set({
command: globalCommandID,
guild: testGuildID,
fullPermissions: [{ id: globalCommandID, permissions: [{ type: 'ROLE', id: testGuildID, permission: true }] }],
});
// @ts-expect-error // @ts-expect-error
await globalPermissionsManager?.add({ await globalPermissionsManager?.add({
@@ -159,9 +165,9 @@ client.on('ready', async () => {
roles: [testGuildID], roles: [testGuildID],
users: [testUserID], users: [testUserID],
}); });
// @ts-expect-error
await guildPermissionsManager?.set({ await guildPermissionsManager?.set({
command: globalCommandID, command: globalCommandID,
// @ts-expect-error
guild: testGuildID, guild: testGuildID,
permissions: [{ type: 'ROLE', id: testGuildID, permission: true }], permissions: [{ type: 'ROLE', id: testGuildID, permission: true }],
}); });
@@ -183,6 +189,11 @@ client.on('ready', async () => {
await guildPermissionsManager?.remove({ roles: [testGuildID], users: [testUserID] }); await guildPermissionsManager?.remove({ roles: [testGuildID], users: [testUserID] });
// @ts-expect-error // @ts-expect-error
await guildPermissionsManager?.set({ permissions: [{ type: 'ROLE', id: testGuildID, permission: true }] }); await guildPermissionsManager?.set({ permissions: [{ type: 'ROLE', id: testGuildID, permission: true }] });
// @ts-expect-error
await guildPermissionsManager?.set({
command: globalCommandID,
fullPermissions: [{ id: globalCommandID, permissions: [{ type: 'ROLE', id: testGuildID, permission: true }] }],
});
// Permissions from cached global ApplicationCommand // Permissions from cached global ApplicationCommand
await globalCommand?.permissions.add({ await globalCommand?.permissions.add({