From b072beabe04895b7a778724d94b60c7adce7de74 Mon Sep 17 00:00:00 2001 From: Jeroen Claassens Date: Sun, 18 Feb 2024 12:41:56 +0100 Subject: [PATCH] feat: add `DiscordComponentsError` to signify errors --- .../src/components/discord-button/DiscordButton.ts | 3 ++- packages/core/src/index.ts | 1 + packages/core/src/util.ts | 10 +++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/core/src/components/discord-button/DiscordButton.ts b/packages/core/src/components/discord-button/DiscordButton.ts index 1b2494e63..e52ef63d4 100644 --- a/packages/core/src/components/discord-button/DiscordButton.ts +++ b/packages/core/src/components/discord-button/DiscordButton.ts @@ -1,5 +1,6 @@ import { css, html, LitElement } from 'lit'; import { customElement, property } from 'lit/decorators.js'; +import { DiscordComponentsError } from '../../util.js'; import LaunchIcon from '../svgs/LaunchIcon.js'; import type { DiscordButtonProps } from '../../types.js'; @@ -125,7 +126,7 @@ export class DiscordButton extends LitElement implements DiscordButtonProps { public checkParentElement() { if (this.parentElement?.tagName.toLowerCase() !== 'discord-action-row') { - throw new Error('All components must be direct children of .'); + throw new DiscordComponentsError('All components must be direct children of .'); } } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index bbb91af8f..a65a801ba 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -38,6 +38,7 @@ export { DiscordUnderlined } from './components/discord-underlined/DiscordUnderl /* EXPORTS END */ export { getConfig, setConfig } from './config.js'; +export { DiscordComponentsError } from './util.js'; export type * from './types.js'; declare global { diff --git a/packages/core/src/util.ts b/packages/core/src/util.ts index 58ed8f15f..d121cfef3 100644 --- a/packages/core/src/util.ts +++ b/packages/core/src/util.ts @@ -27,7 +27,15 @@ export const handleTimestamp = (value: DiscordTimestamp, useTime = false, hour24 export const IMAGE_EXTENSION = /\.(bmp|jpe?g|png|gif|webp|tiff)$/i; export const validateImageExtension = (url: string) => { - if (!IMAGE_EXTENSION.test(url)) throw new Error(`The url of an image for discord-attachment should match the regex ${IMAGE_EXTENSION}`); + if (!IMAGE_EXTENSION.test(url)) + throw new DiscordComponentsError(`The url of an image for discord-attachment should match the regex ${IMAGE_EXTENSION}`); }; export const getGlobalEmojiUrl = (emojiName: string): Emoji | undefined => getConfig().emojis?.[emojiName]; + +export class DiscordComponentsError extends Error { + public constructor(message: string) { + super(message); + this.name = 'DiscordComponentsError'; + } +}