SHOW:
|
|
- or go back to the newest paste.
1 | let userFields = { | |
2 | id: { | |
3 | dbFields: 'id', | |
4 | }, | |
5 | email: { | |
6 | dbFields: 'email', | |
7 | }, | |
8 | first_name: { | |
9 | dbFields: 'first_name', | |
10 | }, | |
11 | last_name: { | |
12 | dbFields: 'last_name', | |
13 | }, | |
14 | name: { | |
15 | dbFields: ['first_name', 'last_name'], | |
16 | resolve: user => | |
17 | [user.first_name, user.last_name] | |
18 | .filter(n => n.length) | |
19 | .join(' '), | |
20 | } | |
21 | }; | |
22 | ||
23 | let selectFields = ['name', 'first_name', 'email']; | |
24 | ||
25 | - | function ensureArray(x) { |
25 | + | |
26 | - | return x instanceof Array ? x : [x]; |
26 | + | |
27 | } | |
28 | ||
29 | function uniquify(array) { | |
30 | let s = new Set(array); | |
31 | return Array.from(s); | |
32 | } | |
33 | ||
34 | var dbFieldsPerSelect = | |
35 | selectFields | |
36 | .map(name => userFields[name].dbFields); | |
37 | ||
38 | var dbFields = uniquify(concat(dbFieldsPerSelect)); | |
39 | ||
40 | - | .map(name => userFields[name].dbFields) |
40 | + |