@paroicms/server
Version:
The ParoiCMS server
40 lines • 1.73 kB
JavaScript
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