UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

30 lines (29 loc) 858 B
import { intersection, union } from 'lodash-es'; export function mergeFields(fieldsA, fieldsB, strategy) { if (fieldsA === null) fieldsA = []; if (fieldsB === null) fieldsB = []; let fields = []; if (strategy === 'and') { if (fieldsA.length === 0 || fieldsB.length === 0) return []; if (fieldsA.includes('*')) return fieldsB; if (fieldsB.includes('*')) return fieldsA; fields = intersection(fieldsA, fieldsB); } else { if (fieldsA.length === 0) return fieldsB; if (fieldsB.length === 0) return fieldsA; if (fieldsA.includes('*') || fieldsB.includes('*')) return ['*']; fields = union(fieldsA, fieldsB); } if (fields.includes('*')) return ['*']; return fields; }