MCPcopy
hub / github.com/remix-run/remix / normalizePredicateValues

Function normalizePredicateValues

packages/data-table/src/lib/query.ts:941–991  ·  view source on GitHub ↗
(
  predicate: Predicate,
  resolveColumn: (column: string) => ResolvedPredicateColumn,
)

Source from the content-addressed store, hash-verified

939}
940
941function normalizePredicateValues(
942 predicate: Predicate,
943 resolveColumn: (column: string) => ResolvedPredicateColumn,
944): Predicate {
945 if (predicate.type === 'comparison') {
946 let column = resolveColumn(predicate.column)
947
948 if (predicate.valueType === 'column') {
949 resolveColumn(predicate.value)
950 return predicate
951 }
952
953 if (predicate.operator === 'in' || predicate.operator === 'notIn') {
954 if (!Array.isArray(predicate.value)) {
955 throw new DataTableValidationError(
956 'Invalid filter value for column "' +
957 column.columnName +
958 '" in table "' +
959 column.tableName +
960 '"',
961 [{ message: 'Expected an array value for "' + predicate.operator + '" predicate' }],
962 {
963 metadata: {
964 table: column.tableName,
965 column: column.columnName,
966 },
967 },
968 )
969 }
970
971 return predicate
972 }
973
974 return predicate
975 }
976
977 if (predicate.type === 'between') {
978 resolveColumn(predicate.column)
979 return predicate
980 }
981
982 if (predicate.type === 'null') {
983 resolveColumn(predicate.column)
984 return predicate
985 }
986
987 return {
988 ...predicate,
989 predicates: predicate.predicates.map((child) => normalizePredicateValues(child, resolveColumn)),
990 }
991}

Callers 3

whereMethod · 0.85
havingMethod · 0.85
joinMethod · 0.85

Calls 1

mapMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…