bigbuffet-rw/src/schemas/emoji-reaction.ts

23 lines
638 B
TypeScript
Raw Normal View History

2023-05-02 17:11:17 -07:00
import { z } from 'zod';
2023-05-04 08:24:34 -07:00
import { emojiSchema } from './utils';
2023-05-02 17:11:17 -07:00
const baseEmojiReactionSchema = z.object({
2023-05-02 17:11:17 -07:00
count: z.number().nullable().catch(null),
me: z.boolean().catch(false),
name: emojiSchema,
url: z.literal(undefined).catch(undefined),
});
const customEmojiReactionSchema = baseEmojiReactionSchema.extend({
name: z.string(),
/** Akkoma custom emoji reaction. */
url: z.string().url(),
2023-05-02 17:11:17 -07:00
});
/** Pleroma emoji reaction. */
const emojiReactionSchema = baseEmojiReactionSchema.or(customEmojiReactionSchema);
2023-05-02 17:11:17 -07:00
type EmojiReaction = z.infer<typeof emojiReactionSchema>;
2023-05-04 10:20:39 -07:00
export { emojiReactionSchema, type EmojiReaction };