mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-12 17:43:30 +01:00
feat: Premium buttons (#10353)
* feat: premium buttons * docs: deprecation string * feat(InteractionResponses): add deprecation message * feat(builders): add tests * chore: remove @ts-expect-errors * test: update method name * refactor(formatters): stricter types * docs: deprecate method in typings --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
import { URL } from 'node:url';
|
||||
import { describe, test, expect, vitest } from 'vitest';
|
||||
import {
|
||||
applicationDirectory,
|
||||
chatInputApplicationCommandMention,
|
||||
blockQuote,
|
||||
bold,
|
||||
@@ -313,6 +314,20 @@ describe('Message formatters', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('applicationDirectory', () => {
|
||||
test('GIVEN application id THEN returns application directory store', () => {
|
||||
expect(applicationDirectory('123456789012345678')).toEqual(
|
||||
'https://discord.com/application-directory/123456789012345678/store',
|
||||
);
|
||||
});
|
||||
|
||||
test('GIVEN application id AND SKU id THEN returns SKU within the application directory store', () => {
|
||||
expect(applicationDirectory('123456789012345678', '123456789012345678')).toEqual(
|
||||
'https://discord.com/application-directory/123456789012345678/store/123456789012345678',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Faces', () => {
|
||||
test('GIVEN Faces.Shrug THEN returns "¯\\_(ツ)_/¯"', () => {
|
||||
expect<'¯\\_(ツ)_/¯'>(Faces.Shrug).toEqual('¯\\_(ツ)_/¯');
|
||||
|
||||
@@ -615,6 +615,39 @@ export function time(timeOrSeconds?: Date | number, style?: TimestampStylesStrin
|
||||
return typeof style === 'string' ? `<t:${timeOrSeconds}:${style}>` : `<t:${timeOrSeconds}>`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats an application directory link.
|
||||
*
|
||||
* @typeParam ApplicationId - This is inferred by the supplied application id
|
||||
* @param applicationId - The application id
|
||||
*/
|
||||
export function applicationDirectory<ApplicationId extends Snowflake>(
|
||||
applicationId: ApplicationId,
|
||||
): `https://discord.com/application-directory/${ApplicationId}/store`;
|
||||
|
||||
/**
|
||||
* Formats an application directory SKU link.
|
||||
*
|
||||
* @typeParam ApplicationId - This is inferred by the supplied application id
|
||||
* @typeParam SKUId - This is inferred by the supplied SKU id
|
||||
* @param applicationId - The application id
|
||||
* @param skuId - The SKU id
|
||||
*/
|
||||
export function applicationDirectory<ApplicationId extends Snowflake, SKUId extends Snowflake>(
|
||||
applicationId: ApplicationId,
|
||||
skuId: SKUId,
|
||||
): `https://discord.com/application-directory/${ApplicationId}/store/${SKUId}`;
|
||||
|
||||
export function applicationDirectory<ApplicationId extends Snowflake, SKUId extends Snowflake>(
|
||||
applicationId: ApplicationId,
|
||||
skuId?: SKUId,
|
||||
):
|
||||
| `https://discord.com/application-directory/${ApplicationId}/store/${SKUId}`
|
||||
| `https://discord.com/application-directory/${ApplicationId}/store` {
|
||||
const url = `https://discord.com/application-directory/${applicationId}/store` as const;
|
||||
return skuId ? `${url}/${skuId}` : url;
|
||||
}
|
||||
|
||||
/**
|
||||
* The {@link https://discord.com/developers/docs/reference#message-formatting-timestamp-styles | message formatting timestamp styles}
|
||||
* supported by Discord.
|
||||
|
||||
Reference in New Issue
Block a user