Files
klz-cables.com/.pnpm-store/v10/files/ed/ce54cf01725c160540c401289d3dfd9a54b8f8bcbff87f7efc29f8f37b88337dc57f82258ffa1ba8e10db9cae4973b036f96b3856cc57e8732c3669b249529
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

64 lines
2.7 KiB
Plaintext

import toSnakeCase from 'to-snake-case';
export const traverseFields = (args)=>{
args.fields.forEach((field)=>{
switch(field.type){
case 'array':
{
const newTableName = args.adapter.tableNameMap.get(`${args.newTableName}_${toSnakeCase(field.name)}`);
return traverseFields({
...args,
columnPrefix: '',
fields: field.flattenedFields,
newTableName,
parentTableName: newTableName,
path: `${args.path ? `${args.path}.` : ''}${field.name}.%`
});
}
case 'blocks':
{
return field.blocks.forEach((block)=>{
// Can ignore string blocks, as those were added in v3 and don't need to be migrated
if (typeof block === 'string') {
return;
}
const newTableName = args.adapter.tableNameMap.get(`${args.rootTableName}_blocks_${toSnakeCase(block.slug)}`);
traverseFields({
...args,
columnPrefix: '',
fields: block.flattenedFields,
newTableName,
parentTableName: newTableName,
path: `${args.path ? `${args.path}.` : ''}${field.name}.%`
});
});
}
case 'group':
case 'tab':
{
let newTableName = `${args.newTableName}_${toSnakeCase(field.name)}`;
if (field.localized && args.payload.config.localization) {
newTableName += args.adapter.localesSuffix;
}
return traverseFields({
...args,
columnPrefix: `${args.columnPrefix}${toSnakeCase(field.name)}_`,
fields: field.flattenedFields,
newTableName,
path: `${args.path ? `${args.path}.` : ''}${field.name}`
});
}
case 'relationship':
case 'upload':
{
if (typeof field.relationTo === 'string') {
if (field.type === 'upload' || !field.hasMany) {
args.pathsToQuery.add(`${args.path ? `${args.path}.` : ''}${field.name}`);
}
}
return null;
}
}
});
};
//# sourceMappingURL=traverseFields.js.map