MCPcopy
hub / github.com/directus/directus / parseFilterRecursive

Function parseFilterRecursive

packages/utils/shared/parse-filter.ts:76–98  ·  view source on GitHub ↗
(
	filter: Filter | null,
	accountability: BasicAccountability | null,
	context: ParseFilterContext = {},
)

Source from the content-addressed store, hash-verified

74}
75
76function parseFilterRecursive(
77 filter: Filter | null,
78 accountability: BasicAccountability | null,
79 context: ParseFilterContext = {},
80): Filter | null {
81 if (filter === null || filter === undefined) {
82 return null;
83 }
84
85 if (!isObjectLike(filter)) {
86 return { _eq: parseDynamicVariable(filter, accountability, context) };
87 }
88
89 const filters = Object.entries(filter).map((entry) => parseFilterEntry(entry, accountability, context));
90
91 if (filters.length === 0) {
92 return {};
93 } else if (filters.length === 1) {
94 return filters[0] ?? null;
95 } else {
96 return { _and: filters };
97 }
98}
99
100export function parsePreset(
101 preset: Record<string, any> | null,

Callers 2

parseFilterFunction · 0.85
parseFilterEntryFunction · 0.85

Calls 2

parseDynamicVariableFunction · 0.85
parseFilterEntryFunction · 0.85

Tested by

no test coverage detected