UNPKG

@directus/api

Version:

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

24 lines (22 loc) 765 B
import { intersection, union } from "lodash-es"; //#region src/permissions/utils/merge-fields.ts 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; } //#endregion export { mergeFields };