View difference between Paste ID: T8pqrVZ0 and bV4aMvEu
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+