Files
discordeno/helpers/channels/threads/startThreadWithMessage.ts
Dorian Oszczęda c9659bca4c feat!: Add return types to helper functions. (#2395)
* feat: Add return types to forum channel helpers.

* fix: Use Discord-defined property names. Add `flags` property.

* feat: Add return types to thread channel helpers.

* feat: Add return types to channel helpers.

* feat: Add return types to server discovery helpers.

* misc!: Consistency: 'remove' -> 'delete'.

* misc!: Add `get` keyword to function and file name.

* feat: Add return types to emoji helpers.

* misc!: Remove unused `bot` parameter. Capitalise 'URL'.

* feat: Add return types to guild automod helpers.

* feat: Add return types to guild scheduled event helpers.

* misc!: Consistency: Rename `emojiURL` to `getEmojiURL`.

* feat: Add return types to guild helpers.

* misc!: Consistency: Add 'get' keyword to function and file names.

* feat: Add return types to invite helpers.

* feat: Add return types to integration helpers.

* feat: Add return types to application command helpers.

* feat: Add return types to followup message helpers.

* feat: Add return types to interaction response helpers.

* feat: Add return type to `createInvite()`.

* feat: Add return types to member helpers.

* misc!: Consistency: Add 'get' keyword to function and file names.

* feat: Add return types to message helpers.

* misc!: Consistency: 'remove' -> 'delete'.

* fix: Use `slice()` to prevent unwanted side effects.

* feat: Add return types to miscellaneous helpers.

* misc!: Consistency: Add 'get' keyword to function and file names.

* feat: Add return types to role helpers.

* feat: Add return types to oauth helpers.

* feat: Add return types to template helpers.

* misc!: Consistency: Add 'guild' keyword to name.

* feat: Add return types to voice helpers.

* fix: Name function correctly.

* feat: Add return types to webhook helpers.

* misc!: Consistency: Rename `sendWebhook` to `sendWebhookMessage`.

* misc: Update exports.

* fix: Imports.

* fix: Change return collection key type from `string` to `bigint`. Remove redundant code.

* misc: Remove `undefined` from `runMethod()` return type.

* style: Remove redundant types.

* style: Rename endpoint call result variables to `result` and `results`.

* misc: Reintroduce `bot` as first parameter.

* misc: Adapt tests to changes made to helpers.

* fix: Object being transformed twice.

* style: Improve naming consistency of remaining files.

* misc: `bigint` -> `number`.

* style: Remove explicit `undefined` return.

* style: Remove `void` operator in favour of generic type.

* misc: Add missing `await` keyword.

Co-authored-by: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com>

* style: Make `reason` property optional instead of `undefined`-able.

* misc: Write out properties manually instead of using the spread operator.

Co-authored-by: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com>
2022-08-28 07:17:08 -04:00

35 lines
1.2 KiB
TypeScript

import type { Bot } from "../../../bot.ts";
import { Channel } from "../../../transformers/channel.ts";
import { DiscordChannel } from "../../../types/discord.ts";
/** Creates a new public thread from an existing message. Returns a thread channel. */
export async function startThreadWithMessage(
bot: Bot,
channelId: bigint,
messageId: bigint,
options: StartThreadWithMessage,
): Promise<Channel> {
const result = await bot.rest.runMethod<DiscordChannel>(
bot.rest,
"POST",
bot.constants.routes.THREAD_START_PUBLIC(channelId, messageId),
{
name: options.name,
auto_archive_duration: options.autoArchiveDuration,
},
);
return bot.transformers.channel(bot, { channel: result, guildId: bot.transformers.snowflake(result.guild_id!) });
}
export interface StartThreadWithMessage {
/** 1-100 character thread name */
name: string;
/** Duration in minutes to automatically archive the thread after recent activity */
autoArchiveDuration: 60 | 1440 | 4320 | 10080;
/** Amount of seconds a user has to wait before sending another message (0-21600) */
rateLimitPerUser?: number | null;
/** The reason you are creating the thread */
reason?: string;
}