Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2015
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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) {
  26.     return x instanceof Array ? x : [x];
  27. }
  28.  
  29. function concat(arrays) {
  30.     return [].concat.apply([], arrays);
  31. }
  32.  
  33. function uniquify(array) {
  34.     let s = new Set(array);
  35.     return Array.from(s);
  36. }
  37.  
  38. var dbFieldsPerSelect =
  39.     selectFields
  40.     .map(name => userFields[name].dbFields)
  41.     .map(ensureArray);
  42.  
  43. var dbFields = uniquify(concat(dbFieldsPerSelect));
  44.  
  45. console.log(dbFields);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement