diff options
Diffstat (limited to 'packages/shared')
| -rw-r--r-- | packages/shared/types/bookmarks.ts | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/packages/shared/types/bookmarks.ts b/packages/shared/types/bookmarks.ts index c9e3e1a5..c0c12b56 100644 --- a/packages/shared/types/bookmarks.ts +++ b/packages/shared/types/bookmarks.ts @@ -4,8 +4,15 @@ import { zBookmarkTagSchema } from "./tags"; const MAX_TITLE_LENGTH = 100; +export const enum BookmarkTypes { + LINK = "link", + TEXT = "text", + ASSET = "asset", + UNKNWON = "unknown", +} + export const zBookmarkedLinkSchema = z.object({ - type: z.literal("link"), + type: z.literal(BookmarkTypes.LINK), url: z.string().url(), title: z.string().nullish(), description: z.string().nullish(), @@ -20,13 +27,13 @@ export const zBookmarkedLinkSchema = z.object({ export type ZBookmarkedLink = z.infer<typeof zBookmarkedLinkSchema>; export const zBookmarkedTextSchema = z.object({ - type: z.literal("text"), + type: z.literal(BookmarkTypes.TEXT), text: z.string(), }); export type ZBookmarkedText = z.infer<typeof zBookmarkedTextSchema>; export const zBookmarkedAssetSchema = z.object({ - type: z.literal("asset"), + type: z.literal(BookmarkTypes.ASSET), assetType: z.enum(["image", "pdf"]), assetId: z.string(), fileName: z.string().nullish(), @@ -38,7 +45,7 @@ export const zBookmarkContentSchema = z.discriminatedUnion("type", [ zBookmarkedLinkSchema, zBookmarkedTextSchema, zBookmarkedAssetSchema, - z.object({ type: z.literal("unknown") }), + z.object({ type: z.literal(BookmarkTypes.UNKNWON) }), ]); export type ZBookmarkContent = z.infer<typeof zBookmarkContentSchema>; |
