graphile-build
Version:
Build a GraphQL schema from plugins
45 lines (44 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = resolveNode;
async function resolveNode(nodeId, build, {
getDataFromParsedResolveInfoFragment
}, data, context, resolveInfo) {
const {
$$isQuery,
$$nodeType,
parseResolveInfo,
nodeFetcherByTypeName,
getTypeAndIdentifiersFromNodeId,
graphql: {
getNamedType
}
} = build;
if (nodeId === "query") {
return $$isQuery;
}
try {
const {
Type,
identifiers
} = getTypeAndIdentifiersFromNodeId(nodeId);
if (!Type) {
throw new Error("Type not found");
}
const resolver = nodeFetcherByTypeName[getNamedType(Type).name];
const parsedResolveInfoFragment = parseResolveInfo(resolveInfo, {}, Type);
const resolveData = getDataFromParsedResolveInfoFragment(parsedResolveInfoFragment, getNamedType(Type));
const node = await resolver(data, identifiers, context, parsedResolveInfoFragment, resolveInfo.returnType, resolveData, resolveInfo);
Object.defineProperty(node, $$nodeType, {
enumerable: false,
configurable: false,
value: Type
});
return node;
} catch (e) {
return null;
}
}
//# sourceMappingURL=resolveNode.js.map