mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 08:47:22 +00:00
refactor(rest)!: remove falsy token check (#2949)
* refactor(rest): remove falsy token check This is in favour for interaction only bots, which still need rest but cannot provide a valid bot token. If you want to use rest for your normal bot it should be your own responsibility to pass a valid token. Further more `applicationId` is now a required property since we cannot extract the id from the token anymore. * forgot to commit that * fix error * make appid optional again * app id throw error if undefined * fix test
This commit is contained in:
@@ -69,12 +69,16 @@ import type { CreateRequestBodyOptions, CreateRestManagerOptions, RestManager, S
|
|||||||
const version = '19.0.0-alpha.1'
|
const version = '19.0.0-alpha.1'
|
||||||
|
|
||||||
export function createRestManager(options: CreateRestManagerOptions): RestManager {
|
export function createRestManager(options: CreateRestManagerOptions): RestManager {
|
||||||
// Falsy token string check
|
const applicationId = options.applicationId ? BigInt(options.applicationId) : options.token ? getBotIdFromToken(options.token) : undefined
|
||||||
if (!options.token) throw new Error('You must provide a valid token.')
|
if (!applicationId) {
|
||||||
|
throw new Error(
|
||||||
|
'`applicationId` was not provided and was not able to extract the id from the bots token. Please explicitly pass `applicationId` to the rest manager.',
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
const rest: RestManager = {
|
const rest: RestManager = {
|
||||||
token: options.token,
|
token: options.token,
|
||||||
applicationId: options.applicationId ? BigInt(options.applicationId) : getBotIdFromToken(options.token),
|
applicationId,
|
||||||
version: options.version ?? 10,
|
version: options.version ?? 10,
|
||||||
baseUrl: options.proxy?.baseUrl ?? 'https://discord.com/api',
|
baseUrl: options.proxy?.baseUrl ?? 'https://discord.com/api',
|
||||||
maxRetryCount: Infinity,
|
maxRetryCount: Infinity,
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ import type { RestRoutes } from './typings/routes.js'
|
|||||||
|
|
||||||
export interface CreateRestManagerOptions {
|
export interface CreateRestManagerOptions {
|
||||||
/** The bot token which will be used to make requests. */
|
/** The bot token which will be used to make requests. */
|
||||||
token: string
|
token?: string
|
||||||
/**
|
/**
|
||||||
* For old bots that have a different bot id and application id.
|
* For old bots that have a different bot id and application id.
|
||||||
* @default bot id from token
|
* @default bot id from token
|
||||||
@@ -125,7 +125,7 @@ export interface CreateRestManagerOptions {
|
|||||||
|
|
||||||
export interface RestManager {
|
export interface RestManager {
|
||||||
/** The bot token which will be used to make requests. */
|
/** The bot token which will be used to make requests. */
|
||||||
token: string
|
token?: string
|
||||||
/** The application id. Normally this is not required for recent bots but old bot's application id is sometimes different from the bot id so it is required for those bots. */
|
/** The application id. Normally this is not required for recent bots but old bot's application id is sometimes different from the bot id so it is required for those bots. */
|
||||||
applicationId: bigint
|
applicationId: bigint
|
||||||
/** The api version to use when making requests. Only the latest supported version will be tested. */
|
/** The api version to use when making requests. Only the latest supported version will be tested. */
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ describe('[rest] manager', () => {
|
|||||||
let time: sinon.SinonFakeTimers
|
let time: sinon.SinonFakeTimers
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
rest = createRestManager({ token: ' ' })
|
rest = createRestManager({ applicationId: 1n })
|
||||||
time = sinon.useFakeTimers()
|
time = sinon.useFakeTimers()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user