Files
klz-cables.com/.pnpm-store/v10/files/23/5e24288f6d9ca0e2dd5cc6e3bab7934d38a75451abdeb9057a77b5381c6954574498c6753768f346a9973d4d20b325c36138e572559a3d610829dd9d9b703c
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
7.3 KiB
Plaintext

{"version":3,"sources":["../../src/utilities/select.ts"],"sourcesContent":["import type { GraphQLObjectType, GraphQLResolveInfo, SelectionSetNode } from 'graphql'\nimport type { FieldBase, JoinField, RelationshipField, TypedCollectionSelect } from 'payload'\n\nimport { getNamedType, isInterfaceType, isObjectType, isUnionType, Kind } from 'graphql'\n\nexport function buildSelectForCollection(info: GraphQLResolveInfo): SelectType {\n return buildSelect(info)\n}\nexport function buildSelectForCollectionMany(info: GraphQLResolveInfo): SelectType {\n return buildSelect(info).docs as SelectType\n}\n\nexport function resolveSelect(info: GraphQLResolveInfo, select: SelectType): SelectType {\n if (select) {\n const traversePath: string[] = []\n const traverseTree = (path: GraphQLResolveInfo['path']) => {\n const pathKey = path.key\n const pathType = info.schema.getType(path.typename) as GraphQLObjectType\n\n if (pathType) {\n const field = pathType?.getFields()?.[pathKey]?.extensions?.field as\n | JoinField\n | RelationshipField\n\n if (field?.type === 'join') {\n path = path.prev\n traversePath.unshift('docs')\n }\n if (field?.type === 'relationship' && Array.isArray(field.relationTo)) {\n path = path.prev\n traversePath.unshift('value')\n }\n if (field) {\n traversePath.unshift(field.name)\n }\n }\n\n if (path.prev) {\n traverseTree(path.prev)\n }\n }\n\n traverseTree(info.path)\n traversePath.forEach((key) => {\n select = select?.[key] as SelectType\n })\n }\n\n return select\n}\n\nfunction buildSelect(info: GraphQLResolveInfo) {\n const returnType = getNamedType(info.returnType) as GraphQLObjectType\n const selectionSet = info.fieldNodes[0].selectionSet\n\n if (!returnType) {return}\n\n return buildSelectTree(info, selectionSet, returnType)\n}\nfunction buildSelectTree(\n info: GraphQLResolveInfo,\n selectionSet: SelectionSetNode,\n type: GraphQLObjectType,\n): SelectType {\n const fieldMap = type.getFields?.()\n const fieldTree: SelectType = {}\n\n for (const selection of selectionSet.selections) {\n switch (selection.kind) {\n case Kind.FIELD: {\n const fieldName = selection.name.value\n const fieldSchema = fieldMap?.[fieldName]\n\n const field = fieldSchema?.extensions?.field as FieldBase\n const fieldNameOriginal = field?.name || fieldName\n\n if (fieldName === '__typename') {continue}\n if (fieldSchema == undefined) {continue}\n\n if (selection.selectionSet) {\n const type = getNamedType(fieldSchema.type) as GraphQLObjectType\n\n if (isObjectType(type) || isInterfaceType(type) || isUnionType(type)) {\n fieldTree[fieldNameOriginal] = buildSelectTree(info, selection.selectionSet, type)\n continue\n }\n }\n\n fieldTree[fieldNameOriginal] = true\n break\n }\n\n case Kind.FRAGMENT_SPREAD: {\n const fragmentName = selection.name.value\n const fragment = info.fragments[fragmentName]\n const fragmentType =\n fragment && (info.schema.getType(fragment.typeCondition.name.value) as GraphQLObjectType)\n\n if (fragmentType) {\n Object.assign(fieldTree, buildSelectTree(info, fragment.selectionSet, fragmentType))\n }\n break\n }\n\n case Kind.INLINE_FRAGMENT: {\n const fragmentType = selection.typeCondition\n ? (info.schema.getType(selection.typeCondition.name.value) as GraphQLObjectType)\n : type\n\n if (fragmentType) {\n // Block types in unions need selections nested under their slug\n const blockSlug = fragmentType.extensions?.blockSlug as string | undefined\n\n if (blockSlug && isUnionType(type)) {\n fieldTree[blockSlug] = buildSelectTree(info, selection.selectionSet, fragmentType)\n } else {\n Object.assign(fieldTree, buildSelectTree(info, selection.selectionSet, fragmentType))\n }\n }\n break\n }\n }\n }\n\n return fieldTree\n}\n\ntype SelectType = TypedCollectionSelect['any']\n"],"names":["getNamedType","isInterfaceType","isObjectType","isUnionType","Kind","buildSelectForCollection","info","buildSelect","buildSelectForCollectionMany","docs","resolveSelect","select","traversePath","traverseTree","path","pathKey","key","pathType","schema","getType","typename","field","getFields","extensions","type","prev","unshift","Array","isArray","relationTo","name","forEach","returnType","selectionSet","fieldNodes","buildSelectTree","fieldMap","fieldTree","selection","selections","kind","FIELD","fieldName","value","fieldSchema","fieldNameOriginal","undefined","FRAGMENT_SPREAD","fragmentName","fragment","fragments","fragmentType","typeCondition","Object","assign","INLINE_FRAGMENT","blockSlug"],"mappings":"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"}