diff options
Diffstat (limited to 'src/lib/common/util/Format.ts')
-rw-r--r-- | src/lib/common/util/Format.ts | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/src/lib/common/util/Format.ts b/src/lib/common/util/Format.ts deleted file mode 100644 index debaf4b..0000000 --- a/src/lib/common/util/Format.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { type CodeBlockLang } from '#lib'; -import { - bold as discordBold, - codeBlock as discordCodeBlock, - escapeBold as discordEscapeBold, - escapeCodeBlock as discordEscapeCodeBlock, - escapeInlineCode as discordEscapeInlineCode, - escapeItalic as discordEscapeItalic, - escapeMarkdown, - escapeSpoiler as discordEscapeSpoiler, - escapeStrikethrough as discordEscapeStrikethrough, - escapeUnderline as discordEscapeUnderline, - inlineCode as discordInlineCode, - italic as discordItalic, - spoiler as discordSpoiler, - strikethrough as discordStrikethrough, - underscore as discordUnderscore -} from 'discord.js'; - -/** - * Wraps the content inside a codeblock with no language. - * @param content The content to wrap. - */ -export function codeBlock(content: string): string; - -/** - * Wraps the content inside a codeblock with the specified language. - * @param language The language for the codeblock. - * @param content The content to wrap. - */ -export function codeBlock(language: CodeBlockLang, content: string): string; -export function codeBlock(languageOrContent: string, content?: string): string { - return typeof content === 'undefined' - ? discordCodeBlock(discordEscapeCodeBlock(`${languageOrContent}`)) - : discordCodeBlock(`${languageOrContent}`, discordEscapeCodeBlock(`${content}`)); -} - -/** - * Wraps the content inside \`backticks\`, which formats it as inline code. - * @param content The content to wrap. - */ -export function inlineCode(content: string): string { - return discordInlineCode(discordEscapeInlineCode(`${content}`)); -} - -/** - * Formats the content into italic text. - * @param content The content to wrap. - */ -export function italic(content: string): string { - return discordItalic(discordEscapeItalic(`${content}`)); -} - -/** - * Formats the content into bold text. - * @param content The content to wrap. - */ -export function bold(content: string): string { - return discordBold(discordEscapeBold(`${content}`)); -} - -/** - * Formats the content into underscored text. - * @param content The content to wrap. - */ -export function underscore(content: string): string { - return discordUnderscore(discordEscapeUnderline(`${content}`)); -} - -/** - * Formats the content into strike-through text. - * @param content The content to wrap. - */ -export function strikethrough(content: string): string { - return discordStrikethrough(discordEscapeStrikethrough(`${content}`)); -} - -/** - * Wraps the content inside spoiler (hidden text). - * @param content The content to wrap. - */ -export function spoiler(content: string): string { - return discordSpoiler(discordEscapeSpoiler(`${content}`)); -} - -/** - * Formats input: makes it bold and escapes any other markdown - * @param text The input - */ -export function input(text: string): string { - return bold(sanitizeInputForDiscord(`${text}`)); -} - -/** - * Formats input for logs: makes it highlighted - * @param text The input - */ -export function inputLog(text: string): string { - return `<<${sanitizeWtlAndControl(`${text}`)}>>`; -} - -/** - * Removes all characters in a string that are either control characters or change the direction of text etc. - * @param str The string you would like sanitized - */ -export function sanitizeWtlAndControl(str: string) { - // eslint-disable-next-line no-control-regex - return `${str}`.replace(/[\u0000-\u001F\u007F-\u009F\u200B]/g, ''); -} - -/** - * Removed wtl and control characters and escapes any other markdown - * @param text The input - */ -export function sanitizeInputForDiscord(text: string): string { - return escapeMarkdown(sanitizeWtlAndControl(`${text}`)); -} - -export { escapeMarkdown } from 'discord.js'; |