payload-authjs
Version:
A Payload CMS 3 plugin for Auth.js 5
25 lines (24 loc) • 932 B
JavaScript
import { fieldAffectsData, fieldIsVirtual } from "payload/shared";
/**
* Get all virtual fields from a list of fields (including subfields and tabs)
*
* @param fields The fields list
* @returns The virtual fields
*/ export const getAllVirtualFields = (fields)=>{
return fields.reduce((acc, field)=>{
if ("fields" in field && !fieldAffectsData(field)) {
// Get virtual fields from subfields if field not affecting data (e.g. row)
acc.push(...getAllVirtualFields(field.fields));
} else if (field.type === "tabs") {
// For each tab, get the virtual fields
for (const tab of field.tabs){
acc.push(...getAllVirtualFields(tab.fields));
}
} else if (fieldIsVirtual(field)) {
// Add virtual field
acc.push(field);
}
return acc;
}, []);
};
//# sourceMappingURL=getAllVirtualFields.js.map