@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
30 lines (29 loc) • 858 B
JavaScript
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;
}