Some checks failed
Create issues from TODOs / todos (push) Failing after 3s
Close inactive issues / close-issues (push) Has been cancelled
Deploy GitHub Pages / deploy-preview (push) Has been cancelled
CI / ⚙️ Variables Setup (push) Has been cancelled
CI / ⚙️ Test Guard (push) Has been cancelled
CI / 🚀 Notify external services - draft (push) Has been cancelled
CI / 📦 Build Packages (push) Has been cancelled
CI / 📦 Meteor Build (coverage) (push) Has been cancelled
CI / 📦 Meteor Build (production) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], fips) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Publish Docker Images (ghcr.io) (push) Has been cancelled
CI / 📦 Track Image Sizes (push) Has been cancelled
CI / 🔎 Code Check - Action Lint (push) Has been cancelled
CI / 🔎 Code Check (push) Has been cancelled
CI / 🔨 Test Storybook (push) Has been cancelled
CI / 🔨 Test Unit (push) Has been cancelled
CI / 🔨 Test API (CE) (push) Has been cancelled
CI / 🔨 Test API Livechat (CE) (push) Has been cancelled
CI / 🔨 Test UI (CE) (push) Has been cancelled
CI / 🔨 Test API (EE) (push) Has been cancelled
CI / 🔨 Test API Livechat (EE) (push) Has been cancelled
CI / 🔨 Test API Apps (deno-runtime - EE) (push) Has been cancelled
CI / 🔨 Test UI (EE) (push) Has been cancelled
CI / 🔨 Test API (FIPS) (push) Has been cancelled
CI / 🔨 Test API Livechat (FIPS) (push) Has been cancelled
CI / 🔨 Test UI (FIPS) (push) Has been cancelled
CI / 🔨 Test Federation Matrix (push) Has been cancelled
CI / 📊 Report Coverage (push) Has been cancelled
CI / ✅ Tests Done (push) Has been cancelled
CI / 🚀 Publish build assets (push) Has been cancelled
CI / 🚀 Publish Docker Images (DockerHub) (push) Has been cancelled
CI / 🚀 Notify external services (push) Has been cancelled
CI / Update Version Durability (push) Has been cancelled
Release / Release (push) Has been cancelled
Auto-close duplicate issues / auto-close-duplicates (push) Failing after 1s
Code scanning - action / CodeQL-Build (push) Failing after 2s
128 lines
3.1 KiB
TypeScript
128 lines
3.1 KiB
TypeScript
const generate =
|
|
<Type extends string>(type: Type) =>
|
|
<Value>(value: Value) =>
|
|
({ type, value }) as const;
|
|
|
|
export const paragraph = generate('PARAGRAPH');
|
|
export const bold = generate('BOLD');
|
|
|
|
export const color = (r: number, g: number, b: number, a = 255) => ({
|
|
type: 'COLOR' as const,
|
|
value: { r, g, b, a },
|
|
});
|
|
|
|
export const heading = (value: unknown[], level = 1) => ({
|
|
type: 'HEADING' as const,
|
|
level,
|
|
value,
|
|
});
|
|
|
|
export const code = (value: unknown[], language = 'none') => ({
|
|
type: 'CODE' as const,
|
|
language,
|
|
value,
|
|
});
|
|
|
|
export const bigEmoji = generate('BIG_EMOJI');
|
|
export const task = (value: unknown[], status: boolean) => ({ type: 'TASK' as const, status, value });
|
|
export const inlineCode = generate('INLINE_CODE');
|
|
export const tasks = generate('TASKS');
|
|
|
|
export const italic = generate('ITALIC');
|
|
export const spoiler = generate('SPOILER');
|
|
|
|
export const plain = generate('PLAIN_TEXT');
|
|
export const strike = generate('STRIKE');
|
|
|
|
export const codeLine = generate('CODE_LINE');
|
|
|
|
export const link = (src: string, label?: unknown[]) => ({
|
|
type: 'LINK' as const,
|
|
value: { src: plain(src), label: label ?? [plain(src)] },
|
|
});
|
|
|
|
export const image = (src: string, label?: unknown) => ({
|
|
type: 'IMAGE' as const,
|
|
value: { src: plain(src), label: label ?? plain(src) },
|
|
});
|
|
|
|
export const quote = generate('QUOTE');
|
|
export const spoilerBlock = generate('SPOILER_BLOCK');
|
|
|
|
export const mentionChannel = (value: string) => ({
|
|
type: 'MENTION_CHANNEL' as const,
|
|
value: plain(value),
|
|
});
|
|
|
|
export const orderedList = generate('ORDERED_LIST');
|
|
export const unorderedList = generate('UNORDERED_LIST');
|
|
|
|
export const listItem = (value: unknown[], number?: number) => ({
|
|
type: 'LIST_ITEM' as const,
|
|
value,
|
|
...(number !== undefined ? { number } : {}),
|
|
});
|
|
|
|
export const mentionUser = (value: string) => ({
|
|
type: 'MENTION_USER' as const,
|
|
value: plain(value),
|
|
});
|
|
|
|
export const emoji = (shortCode: string) => ({
|
|
type: 'EMOJI' as const,
|
|
value: plain(shortCode),
|
|
shortCode,
|
|
});
|
|
|
|
export const emojiUnicode = (unicode: string) => ({
|
|
type: 'EMOJI' as const,
|
|
value: undefined,
|
|
unicode,
|
|
});
|
|
|
|
export const emoticon = (value: string, shortCode: string) => ({
|
|
type: 'EMOJI' as const,
|
|
value: plain(value),
|
|
shortCode,
|
|
});
|
|
|
|
export const lineBreak = () => ({
|
|
type: 'LINE_BREAK' as const,
|
|
value: undefined,
|
|
});
|
|
|
|
export const horizontalRule = (fallback?: [number, number]) => ({
|
|
type: 'HORIZONTAL_RULE' as const,
|
|
value: undefined,
|
|
...(fallback !== undefined ? { fallback } : {}),
|
|
});
|
|
|
|
type Align = 'left' | 'center' | 'right' | undefined;
|
|
|
|
export const tableCell = (value: unknown[], align: Align = undefined) => ({
|
|
type: 'TABLE_CELL' as const,
|
|
align,
|
|
value,
|
|
});
|
|
|
|
export const tableRow = (value: unknown[]) => ({
|
|
type: 'TABLE_ROW' as const,
|
|
value,
|
|
});
|
|
|
|
export const table = (header: unknown[], rows: unknown[], fallback?: [number, number]) => ({
|
|
type: 'TABLE' as const,
|
|
value: { header, rows },
|
|
...(fallback !== undefined ? { fallback } : {}),
|
|
});
|
|
|
|
export const katex = (value: string) => ({
|
|
type: 'KATEX' as const,
|
|
value,
|
|
});
|
|
|
|
export const inlineKatex = (value: string) => ({
|
|
type: 'INLINE_KATEX' as const,
|
|
value,
|
|
});
|