diff options
| author | kamtschatka <simon.schatka@gmx.at> | 2024-07-01 13:03:53 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-01 12:03:53 +0100 |
| commit | e6486465decd612f7e437abe904960a47ff359ce (patch) | |
| tree | f36fd7efbcf2a083905061d8c5f1310f36350ced /packages/shared | |
| parent | ccbff18a9763e458c07f46cb3a331062df14a9b9 (diff) | |
| download | karakeep-e6486465decd612f7e437abe904960a47ff359ce.tar.zst | |
refactor: added the bookmark type to the database (#256)
* refactoring asset types
Extracted out functions to silently delete assets and to update them after crawling
Generalized the mapping of assets to bookmark fields to make extending them easier
* Added the bookmark type to the database
Introduced an enum to have better type safety
cleaned up the code and based some code on the type directly
* add BookmarkType.UNKNWON
* lint and remove unused function
---------
Co-authored-by: MohamedBassem <me@mbassem.com>
Diffstat (limited to '')
| -rw-r--r-- | packages/shared-react/utils/bookmarkUtils.ts | 5 | ||||
| -rw-r--r-- | packages/shared/types/bookmarks.ts | 15 |
2 files changed, 14 insertions, 6 deletions
diff --git a/packages/shared-react/utils/bookmarkUtils.ts b/packages/shared-react/utils/bookmarkUtils.ts index da199a40..e7322712 100644 --- a/packages/shared-react/utils/bookmarkUtils.ts +++ b/packages/shared-react/utils/bookmarkUtils.ts @@ -1,4 +1,5 @@ -import type { +import { + BookmarkTypes, ZBookmark, ZBookmarkedLink, } from "@hoarder/shared/types/bookmarks"; @@ -21,7 +22,7 @@ export function getBookmarkLinkImageUrl(bookmark: ZBookmarkedLink) { export function isBookmarkStillCrawling(bookmark: ZBookmark) { return ( - bookmark.content.type == "link" && + bookmark.content.type == BookmarkTypes.LINK && !bookmark.content.crawledAt && Date.now().valueOf() - bookmark.createdAt.valueOf() < MAX_LOADING_MSEC ); 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>; |
