aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared/searchQueryParser.ts
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-01-12 20:03:47 +0000
committerMohamed Bassem <me@mbassem.com>2025-01-12 20:03:47 +0000
commit9fd26b472b18924ab11afcebace90329b0fe3abf (patch)
tree04d2a8f8603978c27611574d663dfc58b3f285b0 /packages/shared/searchQueryParser.ts
parentc5298cf4b43795c0c261922ef0ad0f20245be4d5 (diff)
downloadkarakeep-9fd26b472b18924ab11afcebace90329b0fe3abf.tar.zst
feat: Add ability to filter by bookmark type
Diffstat (limited to 'packages/shared/searchQueryParser.ts')
-rw-r--r--packages/shared/searchQueryParser.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/shared/searchQueryParser.ts b/packages/shared/searchQueryParser.ts
index e52af274..4f68523b 100644
--- a/packages/shared/searchQueryParser.ts
+++ b/packages/shared/searchQueryParser.ts
@@ -15,6 +15,7 @@ import {
} from "typescript-parsec";
import { z } from "zod";
+import { BookmarkTypes } from "./types/bookmarks";
import { Matcher } from "./types/search";
enum TokenType {
@@ -136,6 +137,33 @@ MATCHER.setPattern(
text: "",
matcher: { type: "inlist", inList: !minus },
};
+ case "link":
+ return {
+ text: "",
+ matcher: {
+ type: "type",
+ typeName: BookmarkTypes.LINK,
+ inverse: !!minus,
+ },
+ };
+ case "text":
+ return {
+ text: "",
+ matcher: {
+ type: "type",
+ typeName: BookmarkTypes.TEXT,
+ inverse: !!minus,
+ },
+ };
+ case "media":
+ return {
+ text: "",
+ matcher: {
+ type: "type",
+ typeName: BookmarkTypes.ASSET,
+ inverse: !!minus,
+ },
+ };
default:
// If the token is not known, emit it as pure text
return {