feat: add soundboard in v14 (#10843)

This commit is contained in:
Danial Raza
2025-04-25 22:37:03 +02:00
committed by GitHub
parent 45552faf02
commit d3154cf8f1
29 changed files with 788 additions and 10 deletions

View File

@@ -130,6 +130,10 @@ test('teamIcon default', () => {
expect(cdn.teamIcon(id, hash)).toEqual(`${baseCDN}/team-icons/${id}/${hash}.webp`);
});
test('soundboardSound', () => {
expect(cdn.soundboardSound(id)).toEqual(`${baseCDN}/soundboard-sounds/${id}`);
});
test('makeURL throws on invalid size', () => {
// @ts-expect-error: Invalid size
expect(() => cdn.avatar(id, animatedHash, { size: 5 })).toThrow(RangeError);

View File

@@ -1,4 +1,5 @@
/* eslint-disable jsdoc/check-param-names */
import { CDNRoutes } from 'discord-api-types/v10';
import {
ALLOWED_EXTENSIONS,
ALLOWED_SIZES,
@@ -343,6 +344,15 @@ export class CDN {
return this.makeURL(`/guild-events/${scheduledEventId}/${coverHash}`, options);
}
/**
* Generates a URL for a soundboard sound.
*
* @param soundId - The soundboard sound id
*/
public soundboardSound(soundId: string): string {
return `${this.cdn}${CDNRoutes.soundboardSound(soundId)}`;
}
/**
* Constructs the URL for the resource, checking whether or not `hash` starts with `a_` if `dynamic` is set to `true`.
*