Files
klz-cables.com/.pnpm-store/v10/files/99/1aa78c4f0068b968ca0385d2cad8aaf7023440e0e01aed0e49448d63fb1f36ef5e6832d86933c547cc47bf7ceaa7399ed08ff1571c033bfcf3f890446d4bb4
Marc Mintel 5397309103
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
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

36 lines
1.9 KiB
Plaintext

import { InvalidConfiguration } from '../../errors/InvalidConfiguration.js';
import { fieldAffectsData } from '../../fields/config/types.js';
import { flattenTopLevelFields } from '../../utilities/flattenTopLevelFields.js';
/**
* Validate useAsTitle for collections.
*/ export const validateUseAsTitle = (config)=>{
if (config.admin?.useAsTitle?.includes('.')) {
throw new InvalidConfiguration(`"useAsTitle" cannot be a nested field. Please specify a top-level field in the collection "${config.slug}"`);
}
if (config?.admin && config.admin?.useAsTitle && config.admin.useAsTitle !== 'id') {
const fields = flattenTopLevelFields(config.fields);
const useAsTitleField = fields.find((field)=>{
if (fieldAffectsData(field) && config.admin) {
return field.name === config.admin.useAsTitle;
}
return false;
});
// If auth is enabled then we don't need to
if (config.auth) {
if (config.admin.useAsTitle !== 'email') {
if (!useAsTitleField) {
throw new InvalidConfiguration(`The field "${config.admin.useAsTitle}" specified in "admin.useAsTitle" does not exist in the collection "${config.slug}"`);
}
}
} else {
if (useAsTitleField && 'virtual' in useAsTitleField && useAsTitleField.virtual === true) {
throw new InvalidConfiguration(`The field "${config.admin.useAsTitle}" specified in "admin.useAsTitle" in the collection "${config.slug}" is virtual. A virtual field can be used as the title only when linked to a relationship field.`);
}
if (!useAsTitleField) {
throw new InvalidConfiguration(`The field "${config.admin.useAsTitle}" specified in "admin.useAsTitle" does not exist in the collection "${config.slug}"`);
}
}
}
};
//# sourceMappingURL=useAsTitle.js.map