Skip to content

Commit 1b7bde4

Browse files
committed
🏷️ feat(framework): fanci(not really) superclass type
1 parent 4f67351 commit 1b7bde4

File tree

5 files changed

+71
-20
lines changed

5 files changed

+71
-20
lines changed

framework/src/structures/channels/guildAnnouncementChannel.ts

+15-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,21 @@ import type { Client } from "../../client/mod.ts";
44
import { GuildTextBasedChannel } from "./guildTextBasedChannel.ts";
55
import { GuildThreadAvailableChannel } from "./guildThreadAvailableChannel.ts";
66

7-
export class GuildAnnouncementChannel extends Mixin(
8-
GuildTextBasedChannel,
9-
GuildThreadAvailableChannel,
10-
) {
7+
const GuildAnnouncementChannelSuper:
8+
& (abstract new (
9+
client: Client,
10+
payload: GuildAnnouncementChannelPayload,
11+
) => GuildTextBasedChannel & GuildThreadAvailableChannel)
12+
& Pick<typeof GuildTextBasedChannel, keyof typeof GuildTextBasedChannel>
13+
& Pick<
14+
typeof GuildThreadAvailableChannel,
15+
keyof typeof GuildThreadAvailableChannel
16+
> = Mixin(
17+
GuildTextBasedChannel,
18+
GuildThreadAvailableChannel,
19+
);
20+
21+
export class GuildAnnouncementChannel extends GuildAnnouncementChannelSuper {
1122
payload: GuildAnnouncementChannelPayload;
1223
constructor(
1324
client: Client,

framework/src/structures/channels/guildForumChannel.ts

+16-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,22 @@ import { Emoji } from "../emojis/mod.ts";
66
import { GuildTextBasedChannel } from "./guildTextBasedChannel.ts";
77
import { GuildThreadAvailableChannel } from "./guildThreadAvailableChannel.ts";
88

9-
export class GuildForumChannel extends Mixin(
10-
GuildThreadAvailableChannel,
11-
GuildTextBasedChannel,
12-
) {
9+
const GuildForumChannelSuper:
10+
& (abstract new (
11+
client: Client,
12+
payload: GuildForumChannelPayload,
13+
) => GuildThreadAvailableChannel & GuildTextBasedChannel)
14+
& Pick<
15+
typeof GuildThreadAvailableChannel,
16+
keyof typeof GuildThreadAvailableChannel
17+
>
18+
& Pick<typeof GuildTextBasedChannel, keyof typeof GuildTextBasedChannel> =
19+
Mixin(
20+
GuildThreadAvailableChannel,
21+
GuildTextBasedChannel,
22+
);
23+
24+
export class GuildForumChannel extends GuildForumChannelSuper {
1325
payload: GuildForumChannelPayload;
1426
constructor(client: Client, payload: GuildForumChannelPayload) {
1527
super(client, payload);

framework/src/structures/channels/guildTextBasedChannel.ts

+12-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,18 @@ import { GuildChannel } from "./guildChannel.ts";
44
import type { GuildTextBasedChannelPayload } from "../../../../types/mod.ts";
55
import type { Client } from "../../client/mod.ts";
66

7-
export class GuildTextBasedChannel extends Mixin(
8-
GuildChannel,
9-
TextChannel,
10-
) {
7+
const GuildTextBasedChannelSuper:
8+
& (abstract new (
9+
client: Client,
10+
payload: GuildTextBasedChannelPayload,
11+
) => TextChannel & GuildChannel)
12+
& Pick<typeof TextChannel, keyof typeof TextChannel>
13+
& Pick<typeof GuildChannel, keyof typeof GuildChannel> = Mixin(
14+
TextChannel,
15+
GuildChannel,
16+
);
17+
18+
export class GuildTextBasedChannel extends GuildTextBasedChannelSuper {
1119
payload: GuildTextBasedChannelPayload;
1220
constructor(client: Client, payload: GuildTextBasedChannelPayload) {
1321
super(client, payload);

framework/src/structures/channels/guildTextChannel.ts

+15-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,21 @@ import type { Client } from "../../client/mod.ts";
44
import { GuildTextBasedChannel } from "./guildTextBasedChannel.ts";
55
import { GuildThreadAvailableChannel } from "./guildThreadAvailableChannel.ts";
66

7-
export class GuildTextChannel extends Mixin(
8-
GuildTextBasedChannel,
9-
GuildThreadAvailableChannel,
10-
) {
7+
const GuildTextChannelSuper:
8+
& (abstract new (
9+
client: Client,
10+
payload: GuildTextChannelPayload,
11+
) => GuildTextBasedChannel & GuildThreadAvailableChannel)
12+
& Pick<typeof GuildTextBasedChannel, keyof typeof GuildTextBasedChannel>
13+
& Pick<
14+
typeof GuildThreadAvailableChannel,
15+
keyof typeof GuildThreadAvailableChannel
16+
> = Mixin(
17+
GuildTextBasedChannel,
18+
GuildThreadAvailableChannel,
19+
);
20+
21+
export class GuildTextChannel extends GuildTextChannelSuper {
1122
payload: GuildTextChannelPayload;
1223
constructor(client: Client, payload: GuildTextChannelPayload) {
1324
super(client, payload);

framework/src/structures/channels/guildVoiceChannel.ts

+13-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,19 @@ import type { Client } from "../../client/mod.ts";
44
import { GuildTextBasedChannel } from "./guildTextBasedChannel.ts";
55
import { GuildVoiceBasedChannel } from "./guildVoiceBasedChannel.ts";
66

7-
export class GuildVoiceChannel extends Mixin(
8-
GuildTextBasedChannel,
9-
GuildVoiceBasedChannel,
10-
) {
7+
const GuildGuildVoiceChannelSuper:
8+
& (abstract new (
9+
client: Client,
10+
payload: GuildVoiceChannelPayload,
11+
) => GuildTextBasedChannel & GuildVoiceBasedChannel)
12+
& Pick<typeof GuildTextBasedChannel, keyof typeof GuildTextBasedChannel>
13+
& Pick<typeof GuildVoiceBasedChannel, keyof typeof GuildVoiceBasedChannel> =
14+
Mixin(
15+
GuildTextBasedChannel,
16+
GuildVoiceBasedChannel,
17+
);
18+
19+
export class GuildVoiceChannel extends GuildGuildVoiceChannelSuper {
1120
payload: GuildVoiceChannelPayload;
1221
constructor(client: Client, payload: GuildVoiceChannelPayload) {
1322
super(client, payload);

0 commit comments

Comments
 (0)