Files
klz-cables.com/.pnpm-store/v10/files/e0/632c0f40d9cffcb7331c5e7070f147c970e20dbaa16e7abc361064d61ee853c6e907e32358835b6118e6547e9ed6efa0650f09c982270968c4a96d3c4ab9d4
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

1 line
6.1 KiB
Plaintext

{"version":3,"sources":["../../../src/folders/utils/getFolderData.ts"],"sourcesContent":["import type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { FolderOrDocument, FolderSortKeys, GetFolderDataResult } from '../types.js'\n\nimport { parseDocumentID } from '../../index.js'\nimport { getFolderBreadcrumbs } from './getFolderBreadcrumbs.js'\nimport { queryDocumentsAndFoldersFromJoin } from './getFoldersAndDocumentsFromJoin.js'\nimport { getOrphanedDocs } from './getOrphanedDocs.js'\n\ntype Args = {\n /**\n * Specify to query documents from a specific collection\n * @default undefined\n * @example 'posts'\n */\n collectionSlug?: CollectionSlug\n /**\n * Optional where clause to filter documents by\n * @default undefined\n */\n documentWhere?: Where\n /**\n * The ID of the folder to query documents from\n * @default undefined\n */\n folderID?: number | string\n /** Optional where clause to filter subfolders by\n * @default undefined\n */\n folderWhere?: Where\n req: PayloadRequest\n sort: FolderSortKeys\n}\n/**\n * Query for documents, subfolders and breadcrumbs for a given folder\n */\nexport const getFolderData = async ({\n collectionSlug,\n documentWhere,\n folderID: _folderID,\n folderWhere,\n req,\n sort = 'name',\n}: Args): Promise<GetFolderDataResult> => {\n const { payload } = req\n\n if (payload.config.folders === false) {\n throw new Error('Folders are not enabled')\n }\n\n const parentFolderID = parseDocumentID({\n id: _folderID,\n collectionSlug: payload.config.folders.slug,\n payload,\n })\n\n const breadcrumbsPromise = getFolderBreadcrumbs({\n folderID: parentFolderID,\n req,\n })\n\n if (parentFolderID) {\n // subfolders and documents are queried together\n const documentAndSubfolderPromise = queryDocumentsAndFoldersFromJoin({\n documentWhere,\n folderWhere,\n parentFolderID,\n req,\n })\n const [breadcrumbs, result] = await Promise.all([\n breadcrumbsPromise,\n documentAndSubfolderPromise,\n ])\n\n return {\n breadcrumbs,\n documents: sortDocs({ docs: result.documents, sort }),\n folderAssignedCollections: result.folderAssignedCollections,\n subfolders: sortDocs({ docs: result.subfolders, sort }),\n }\n } else {\n const subfoldersPromise = getOrphanedDocs({\n collectionSlug: payload.config.folders.slug,\n folderFieldName: payload.config.folders.fieldName,\n req,\n where: folderWhere,\n })\n const [breadcrumbs, subfolders] = await Promise.all([breadcrumbsPromise, subfoldersPromise])\n\n return {\n breadcrumbs,\n documents: [],\n folderAssignedCollections: collectionSlug ? [collectionSlug] : undefined,\n subfolders: sortDocs({ docs: subfolders, sort }),\n }\n }\n}\n\nfunction sortDocs({\n docs,\n sort,\n}: {\n docs: FolderOrDocument[]\n sort?: FolderSortKeys\n}): FolderOrDocument[] {\n if (!sort) {\n return docs\n }\n const isDesc = typeof sort === 'string' && sort.startsWith('-')\n const sortKey = (isDesc ? sort.slice(1) : sort) as FolderSortKeys\n\n return docs.sort((a, b) => {\n let result = 0\n if (sortKey === 'name') {\n result = a.value._folderOrDocumentTitle.localeCompare(b.value._folderOrDocumentTitle)\n } else if (sortKey === 'createdAt') {\n result =\n new Date(a.value.createdAt || '').getTime() - new Date(b.value.createdAt || '').getTime()\n } else if (sortKey === 'updatedAt') {\n result =\n new Date(a.value.updatedAt || '').getTime() - new Date(b.value.updatedAt || '').getTime()\n }\n return isDesc ? -result : result\n })\n}\n"],"names":["parseDocumentID","getFolderBreadcrumbs","queryDocumentsAndFoldersFromJoin","getOrphanedDocs","getFolderData","collectionSlug","documentWhere","folderID","_folderID","folderWhere","req","sort","payload","config","folders","Error","parentFolderID","id","slug","breadcrumbsPromise","documentAndSubfolderPromise","breadcrumbs","result","Promise","all","documents","sortDocs","docs","folderAssignedCollections","subfolders","subfoldersPromise","folderFieldName","fieldName","where","undefined","isDesc","startsWith","sortKey","slice","a","b","value","_folderOrDocumentTitle","localeCompare","Date","createdAt","getTime","updatedAt"],"mappings":"AAIA,SAASA,eAAe,QAAQ,iBAAgB;AAChD,SAASC,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,gCAAgC,QAAQ,sCAAqC;AACtF,SAASC,eAAe,QAAQ,uBAAsB;AA0BtD;;CAEC,GACD,OAAO,MAAMC,gBAAgB,OAAO,EAClCC,cAAc,EACdC,aAAa,EACbC,UAAUC,SAAS,EACnBC,WAAW,EACXC,GAAG,EACHC,OAAO,MAAM,EACR;IACL,MAAM,EAAEC,OAAO,EAAE,GAAGF;IAEpB,IAAIE,QAAQC,MAAM,CAACC,OAAO,KAAK,OAAO;QACpC,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,iBAAiBhB,gBAAgB;QACrCiB,IAAIT;QACJH,gBAAgBO,QAAQC,MAAM,CAACC,OAAO,CAACI,IAAI;QAC3CN;IACF;IAEA,MAAMO,qBAAqBlB,qBAAqB;QAC9CM,UAAUS;QACVN;IACF;IAEA,IAAIM,gBAAgB;QAClB,gDAAgD;QAChD,MAAMI,8BAA8BlB,iCAAiC;YACnEI;YACAG;YACAO;YACAN;QACF;QACA,MAAM,CAACW,aAAaC,OAAO,GAAG,MAAMC,QAAQC,GAAG,CAAC;YAC9CL;YACAC;SACD;QAED,OAAO;YACLC;YACAI,WAAWC,SAAS;gBAAEC,MAAML,OAAOG,SAAS;gBAAEd;YAAK;YACnDiB,2BAA2BN,OAAOM,yBAAyB;YAC3DC,YAAYH,SAAS;gBAAEC,MAAML,OAAOO,UAAU;gBAAElB;YAAK;QACvD;IACF,OAAO;QACL,MAAMmB,oBAAoB3B,gBAAgB;YACxCE,gBAAgBO,QAAQC,MAAM,CAACC,OAAO,CAACI,IAAI;YAC3Ca,iBAAiBnB,QAAQC,MAAM,CAACC,OAAO,CAACkB,SAAS;YACjDtB;YACAuB,OAAOxB;QACT;QACA,MAAM,CAACY,aAAaQ,WAAW,GAAG,MAAMN,QAAQC,GAAG,CAAC;YAACL;YAAoBW;SAAkB;QAE3F,OAAO;YACLT;YACAI,WAAW,EAAE;YACbG,2BAA2BvB,iBAAiB;gBAACA;aAAe,GAAG6B;YAC/DL,YAAYH,SAAS;gBAAEC,MAAME;gBAAYlB;YAAK;QAChD;IACF;AACF,EAAC;AAED,SAASe,SAAS,EAChBC,IAAI,EACJhB,IAAI,EAIL;IACC,IAAI,CAACA,MAAM;QACT,OAAOgB;IACT;IACA,MAAMQ,SAAS,OAAOxB,SAAS,YAAYA,KAAKyB,UAAU,CAAC;IAC3D,MAAMC,UAAWF,SAASxB,KAAK2B,KAAK,CAAC,KAAK3B;IAE1C,OAAOgB,KAAKhB,IAAI,CAAC,CAAC4B,GAAGC;QACnB,IAAIlB,SAAS;QACb,IAAIe,YAAY,QAAQ;YACtBf,SAASiB,EAAEE,KAAK,CAACC,sBAAsB,CAACC,aAAa,CAACH,EAAEC,KAAK,CAACC,sBAAsB;QACtF,OAAO,IAAIL,YAAY,aAAa;YAClCf,SACE,IAAIsB,KAAKL,EAAEE,KAAK,CAACI,SAAS,IAAI,IAAIC,OAAO,KAAK,IAAIF,KAAKJ,EAAEC,KAAK,CAACI,SAAS,IAAI,IAAIC,OAAO;QAC3F,OAAO,IAAIT,YAAY,aAAa;YAClCf,SACE,IAAIsB,KAAKL,EAAEE,KAAK,CAACM,SAAS,IAAI,IAAID,OAAO,KAAK,IAAIF,KAAKJ,EAAEC,KAAK,CAACM,SAAS,IAAI,IAAID,OAAO;QAC3F;QACA,OAAOX,SAAS,CAACb,SAASA;IAC5B;AACF"}