UNPKG

@paroicms/server

Version:
40 lines 1.73 kB
import { getDocumentTypeByName, getPartTypeByName } from "@paroicms/internal-anywhere-lib"; import { siteReadyGuard } from "../../graphql/graphql.types.js"; import { authGuard } from "../auth/auth.helper.js"; import { getTypeNameOf } from "../node/node.queries.js"; import { readPartSeedsOf } from "./part.queries.js"; export const extendLNodeWrapWithPartResolvers = { LNodeWrap: { parts: async ({ nodeId, language }, _args, { siteContext, httpContext }) => { authGuard(httpContext); siteReadyGuard(siteContext); const typeName = await getTypeNameOf(siteContext, nodeId); const documentType = getDocumentTypeByName(siteContext.siteSchema, typeName); const listNames = documentType.lists?.map((l) => l.listName) ?? []; if (listNames.length === 0) return null; return await readPartSeedsOf(siteContext, { documentNodeId: nodeId, language, }); }, }, Part: { parts: async ({ nodeId, language }, _args, { siteContext, httpContext }) => { authGuard(httpContext); siteReadyGuard(siteContext); const typeName = await getTypeNameOf(siteContext, nodeId); const partType = getPartTypeByName(siteContext.siteSchema, typeName); if (!partType.list) return null; return await readPartSeedsOf(siteContext, { documentNodeId: nodeId, language, }); }, }, PartOrPlaceholder: { __resolveType: (value) => ("partId" in value ? "Part" : "PartPlaceholder"), }, }; //# sourceMappingURL=part.resolver.extend.js.map