MCPcopy
hub / github.com/directus/directus / parseFilter

Function parseFilter

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

Source from the content-addressed store, hash-verified

18type BasicAccountability = Pick<Accountability, 'user' | 'role' | 'roles'>;
19
20export function parseFilter(
21 filter: Filter | null,
22 accountability: BasicAccountability | null,
23 context: ParseFilterContext = {},
24 skipCoercion = false,
25): Filter | null {
26 let parsedFilter = parseFilterRecursive(filter, accountability, context);
27
28 if (!parsedFilter) {
29 return parsedFilter;
30 }
31
32 if (skipCoercion === false) {
33 parsedFilter = deepMap(parsedFilter, (value) => {
34 if (value === 'true') return true;
35 if (value === 'false') return false;
36 if (value === 'null' || value === 'NULL') return null;
37
38 return value;
39 });
40 }
41
42 return shiftLogicalOperatorsUp(parsedFilter);
43}
44
45const logicalFilterOperators = ['_and', '_or'];
46const bypassOperators = ['_none', '_some'];

Callers 1

Calls 3

parseFilterRecursiveFunction · 0.85
shiftLogicalOperatorsUpFunction · 0.85
deepMapFunction · 0.70

Tested by

no test coverage detected