Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
68 lines
2.5 KiB
Plaintext
68 lines
2.5 KiB
Plaintext
import { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared';
|
|
import { fieldToSchemaMap } from './fieldToWhereInputSchemaMap.js';
|
|
export const recursivelyBuildNestedPaths = ({ field, nestedFieldName2, parentName })=>{
|
|
const fieldName = fieldAffectsData(field) ? field.name : undefined;
|
|
const nestedFieldName = fieldName || nestedFieldName2;
|
|
if (field.type === 'tabs') {
|
|
// if the tab has a name, treat it as a group
|
|
// otherwise, treat it as a row
|
|
return field.tabs.reduce((tabSchema, tab)=>{
|
|
tabSchema.push(...recursivelyBuildNestedPaths({
|
|
field: {
|
|
...tab,
|
|
...'name' in tab ? {
|
|
name: `${nestedFieldName ? `${nestedFieldName}__` : ''}${tab.name}`,
|
|
type: 'group'
|
|
} : {
|
|
type: 'row'
|
|
}
|
|
},
|
|
nestedFieldName2: nestedFieldName,
|
|
parentName
|
|
}));
|
|
return tabSchema;
|
|
}, []);
|
|
}
|
|
const nestedPaths = field.fields.reduce((nestedFields, nestedField)=>{
|
|
if (!fieldIsPresentationalOnly(nestedField)) {
|
|
if (!fieldAffectsData(nestedField)) {
|
|
return [
|
|
...nestedFields,
|
|
...recursivelyBuildNestedPaths({
|
|
field: nestedField,
|
|
nestedFieldName2: nestedFieldName,
|
|
parentName
|
|
})
|
|
];
|
|
}
|
|
const nestedPathName = fieldAffectsData(nestedField) ? `${nestedFieldName ? `${nestedFieldName}__` : ''}${nestedField.name}` : undefined;
|
|
const getFieldSchema = fieldToSchemaMap({
|
|
nestedFieldName,
|
|
parentName
|
|
})[nestedField.type];
|
|
if (getFieldSchema) {
|
|
const fieldSchema = getFieldSchema({
|
|
...nestedField,
|
|
name: nestedPathName
|
|
});
|
|
if (Array.isArray(fieldSchema)) {
|
|
return [
|
|
...nestedFields,
|
|
...fieldSchema
|
|
];
|
|
}
|
|
return [
|
|
...nestedFields,
|
|
{
|
|
type: fieldSchema,
|
|
key: nestedPathName
|
|
}
|
|
];
|
|
}
|
|
}
|
|
return nestedFields;
|
|
}, []);
|
|
return nestedPaths;
|
|
};
|
|
|
|
//# sourceMappingURL=recursivelyBuildNestedPaths.js.map |