From 15cd31923f0d8687fca18154cf15b3d6b062b93a Mon Sep 17 00:00:00 2001 From: Brian Bosh Date: Tue, 29 Apr 2025 11:04:57 -0600 Subject: [PATCH 1/2] support graphiti comparison operations --- src/lib/query.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/query.ts b/src/lib/query.ts index cfd9170..ade0f73 100644 --- a/src/lib/query.ts +++ b/src/lib/query.ts @@ -12,8 +12,22 @@ type ExtractDocType = T extends Model[] ? DocType : never; +type GraphitiComparator = { + CaseSensitiveEqual: "eql", + CaseInsensitiveEqual: "eq", + GreaterThan: "gt", + GreaterThanOrEqual: "gte", + LessThan: "lt", + LessThanOrEqual: "lte", + Match: "match", // fuzzy/search + Prefix: "prefix", + Suffix: "suffix", +}; +type GraphitiComparisonOperators = GraphitiComparator["CaseSensitiveEqual"] | GraphitiComparator["CaseInsensitiveEqual"] | GraphitiComparator["GreaterThan"] | GraphitiComparator["GreaterThanOrEqual"] | GraphitiComparator["LessThan"] | GraphitiComparator["LessThanOrEqual"] | GraphitiComparator["Match"] | GraphitiComparator["Prefix"] | GraphitiComparator["Suffix"]; +type Comparator = Record; + export type FilterQuery = { - [P in keyof DocType]?: DocType[P]; + [P in keyof DocType]?: DocType[P] | Partial>; } & { [key: string]: any; }; From c74b7ce73c39d24524aab058bdd6fc3e5519d605 Mon Sep 17 00:00:00 2001 From: Lory-Stan TANASI Date: Tue, 29 Apr 2025 19:53:22 +0200 Subject: [PATCH 2/2] refactor(query): simplify GraphitiComparisonOperators type to use all keys --- src/lib/query.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/query.ts b/src/lib/query.ts index ade0f73..1c5378d 100644 --- a/src/lib/query.ts +++ b/src/lib/query.ts @@ -23,7 +23,7 @@ type GraphitiComparator = { Prefix: "prefix", Suffix: "suffix", }; -type GraphitiComparisonOperators = GraphitiComparator["CaseSensitiveEqual"] | GraphitiComparator["CaseInsensitiveEqual"] | GraphitiComparator["GreaterThan"] | GraphitiComparator["GreaterThanOrEqual"] | GraphitiComparator["LessThan"] | GraphitiComparator["LessThanOrEqual"] | GraphitiComparator["Match"] | GraphitiComparator["Prefix"] | GraphitiComparator["Suffix"]; +type GraphitiComparisonOperators = GraphitiComparator[keyof GraphitiComparator]; type Comparator = Record; export type FilterQuery = {