@payloadcms/plugin-multi-tenant
Version:
Multi Tenant plugin for Payload
32 lines (31 loc) • 1.17 kB
JavaScript
/**
* Combines a base list filter with a tenant list filter
*
* Combines where constraints inside of an AND operator
*/ export const combineListFilters = ({ baseListFilter, customFilter })=>async (args)=>{
const filterConstraints = [];
if (typeof baseListFilter === 'function') {
const baseListFilterResult = await baseListFilter(args);
if (baseListFilterResult) {
filterConstraints.push(baseListFilterResult);
}
}
const customFilterResult = await customFilter(args);
if (customFilterResult) {
filterConstraints.push(customFilterResult);
}
if (filterConstraints.length) {
const combinedWhere = {
and: []
};
filterConstraints.forEach((constraint)=>{
if (combinedWhere.and && constraint && typeof constraint === 'object') {
combinedWhere.and.push(constraint);
}
});
return combinedWhere;
}
// Access control will take it from here
return null;
};
//# sourceMappingURL=combineListFilters.js.map