aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared
diff options
context:
space:
mode:
Diffstat (limited to 'packages/shared')
-rw-r--r--packages/shared/types/bookmarks.ts15
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>;