Skip to content

Commit cd14661

Browse files
committed
Refactor RHS of date time filter
1 parent cf01d36 commit cd14661

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

src/core/database/query/filters.ts

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -188,30 +188,35 @@ export const isPinned = pathExists<{ pinned?: boolean }, 'pinned'>([
188188
node('node'),
189189
]);
190190

191-
export const dateTimeBaseNodeProp =
192-
<T, K extends ConditionalKeys<T, DateTimeFilter | undefined>>(
193-
prop?: string,
194-
): Builder<T, K> =>
195-
({ key, value }) => {
196-
const comparison = comparisonOfDateTimeFilter(value);
197-
return comparison ? { node: { [prop ?? key]: comparison } } : null;
198-
};
191+
export const dateTimeBaseNodeProp = <
192+
T,
193+
K extends ConditionalKeys<T, DateTimeFilter | undefined>,
194+
>(
195+
prop?: string,
196+
): Builder<T, K> => dateTime(({ key }) => `node.${prop ?? key}`);
199197

200-
export const dateTimeProp =
201-
<T, K extends ConditionalKeys<T, DateTimeFilter | undefined>>(
202-
prop?: string,
203-
): Builder<T, K> =>
204-
({ key, value, query }) => {
205-
const comparison = comparisonOfDateTimeFilter(value);
206-
if (!comparison) {
207-
return null;
208-
}
198+
export const dateTimeProp = <
199+
T,
200+
K extends ConditionalKeys<T, DateTimeFilter | undefined>,
201+
>(
202+
prop?: string,
203+
): Builder<T, K> =>
204+
dateTime(({ key, query }) => {
209205
query.match([
210206
node('node'),
211207
relation('out', '', prop ?? key, ACTIVE),
212208
node(prop ?? key, 'Property'),
213209
]);
214-
return { [prop ?? key]: { value: comparison } };
210+
return `${prop ?? key}.value`;
211+
});
212+
213+
export const dateTime =
214+
<T, K extends ConditionalKeys<T, DateTimeFilter | undefined>>(
215+
getLhs: (args: BuilderArgs<T, K>) => string,
216+
): Builder<T, K> =>
217+
(args) => {
218+
const comparator = comparisonOfDateTimeFilter(args.value);
219+
return comparator ? { [getLhs(args)]: comparator } : null;
215220
};
216221

217222
export const comparisonOfDateTimeFilter = (

0 commit comments

Comments
 (0)