|
1 | 1 | import Filter from './model'; |
2 | 2 | import sortFilters from './sort'; |
3 | 3 | import { isFunction, partial } from '../utils'; |
4 | | -import { resolveVarName } from './vars'; |
| 4 | +import { resolveArgName } from '../fields/args'; |
5 | 5 | import { set, setProperties } from '@ember/object'; |
6 | 6 | import { spliceRelayFilters } from '../relay/filters'; |
7 | 7 |
|
8 | | -export const composeMapArgsToFilters = (resolveVarName) => |
9 | | - (vars, varsMapForType = {}, { kind, name, value }) => { |
| 8 | +export const composeMapArgsToFilters = (resolveArgName) => |
| 9 | + (vars, argsMapForType = {}, { kind, name, value, variableName }) => { |
10 | 10 | let filter = Filter.create({ name, value }); |
| 11 | + let resolvedName = resolveArgName(name, argsMapForType); |
11 | 12 |
|
12 | | - if (kind === 'Variable') { |
13 | | - let resolvedName = resolveVarName(name, varsMapForType); |
14 | | - |
15 | | - filter.set('value', vars[name]); |
| 13 | + isFunction(resolvedName) |
| 14 | + ? setProperties(filter, { hasFnValue: true, fn: resolvedName }) |
| 15 | + : set(filter, 'resolvedName', resolvedName); |
16 | 16 |
|
17 | | - isFunction(resolvedName) |
18 | | - ? setProperties(filter, { hasFnValue: true, fn: resolvedName }) |
19 | | - : set(filter, 'resolvedName', resolvedName); |
| 17 | + if (kind === 'Variable') { |
| 18 | + filter.set('value', vars[variableName]); |
20 | 19 | } |
21 | 20 |
|
22 | 21 | return filter; |
23 | 22 | }; |
24 | 23 |
|
25 | | -const mapArgsToFilters = composeMapArgsToFilters(resolveVarName); |
| 24 | +const mapArgsToFilters = composeMapArgsToFilters(resolveArgName); |
26 | 25 |
|
27 | | -const createFiltersByArgs = (args, vars, varsMap) => |
28 | | - args.map(partial(mapArgsToFilters, vars, varsMap)); |
| 26 | +const createFiltersByArgs = (args, vars, argsMap) => |
| 27 | + args.map(partial(mapArgsToFilters, vars, argsMap)); |
29 | 28 |
|
30 | 29 | export const composeCreateFilters = |
31 | 30 | (createFiltersByArgs, sortFilters, spliceRelayFilters) => |
32 | | - (field, vars, { varsMap = {} } = {}) => { |
| 31 | + (field, vars, { argsMap = {} } = {}) => { |
33 | 32 | let { args, type } = field; |
34 | | - let varsMapForType = varsMap[type.name]; |
35 | | - let filters = createFiltersByArgs(args, vars, varsMapForType) |
| 33 | + let argsMapForType = argsMap[type.name]; |
| 34 | + let filters = createFiltersByArgs(args, vars, argsMapForType) |
36 | 35 | .sort(sortFilters); |
37 | 36 |
|
38 | 37 | if (field.isRelayEdges) { |
|
0 commit comments