All files / lib/helpers/fields query-fields.js

100% Statements 12/12
66.66% Branches 4/6
100% Functions 4/4
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 321x       13x 13x       13x       13x   13x 1x     12x         1x 1x 4x       1x  
const Fields = require('./fields')
 
class QueryFields extends Fields {
  static create (inputOptions = {}) {
    const options = Fields.normalizeOptions(inputOptions)
    return new QueryFields(options)
  }
 
  constructor (options = {}) {
    super(options)
 
    const {
      outFields
    } = options
 
    if (outFields && outFields !== '*') {
      return filterByOutfields(outFields, this.fields)
    }
 
    return this.fields
  }
}
 
function filterByOutfields (outFields, fields) {
  const outFieldNames = outFields.split(/\s*,\s*/)
  return fields.filter(field => {
    return outFieldNames.includes(field.name)
  })
}
 
module.exports = QueryFields