UNPKG

jok

Version:

Bundle of utility functions for code generation related to nodejs and graphql

69 lines (68 loc) 3.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var rootType_1 = require("../utils/rootType"); var generateRootType_1 = require("./generateRootType"); var generateType_1 = require("./helper/generateType"); var renderProxy_1 = require("./render/renderProxy"); var renderQueryTypesEnum_1 = require("./render/renderQueryTypesEnum"); function default_1(introspectionSchema, generateDefaultFragments, useApolloClientV3, includeTypeName, typeNamePrefix, typeNamePostfix) { var queryTypeName = introspectionSchema.queryType.name, types = introspectionSchema.types; var mutationTypeName = introspectionSchema.mutationType ? introspectionSchema.mutationType.name : null; var subscriptionTypeName = introspectionSchema.subscriptionType ? introspectionSchema.subscriptionType.name : null; var queryType = (types.find(function (x) { return x.name === queryTypeName; })); var mutationType = (types.find(function (x) { return x.name === mutationTypeName; })); var subscriptionType = (types.find(function (x) { return x.name === subscriptionTypeName; })); var otherTypes = types.filter(function (x) { return x !== queryType && x !== mutationType && x !== subscriptionType; }); var objectTypes = otherTypes.filter(function (x) { return x.kind === 'OBJECT'; }); // start generation var generatedQuery = (0, generateRootType_1.default)(rootType_1.RootType.Query, otherTypes, generateDefaultFragments)(queryType); var generatedWatchQuery = (0, generateRootType_1.default)('watchQuery', otherTypes, generateDefaultFragments)(queryType); var generatedRefetchQuery = (0, generateRootType_1.default)('refetchQuery', otherTypes, generateDefaultFragments)(queryType); var generatedCacheWriteQuery = (0, generateRootType_1.default)('cacheWriteQuery', otherTypes, generateDefaultFragments)(queryType); var generatedMutation = (0, generateRootType_1.default)(rootType_1.RootType.Mutation, otherTypes, generateDefaultFragments)(mutationType); var generatedSubscription = (0, generateRootType_1.default)(rootType_1.RootType.Subscription, otherTypes, generateDefaultFragments)(subscriptionType); var generatedSubscriptionDocument = (0, generateRootType_1.default)(rootType_1.RootType.Subscription, otherTypes, generateDefaultFragments, true)(subscriptionType); var generatedOtherTypes = otherTypes .sort(sortTypesByKind) .map((0, generateType_1.default)(includeTypeName, typeNamePrefix, typeNamePostfix)) .filter(function (x) { return !!x; }) .join('\n'); var generatedQueryTypesEnum = (0, renderQueryTypesEnum_1.default)(objectTypes); return (0, renderProxy_1.default)({ generatedQuery: generatedQuery, generatedWatchQuery: generatedWatchQuery, generatedRefetchQuery: generatedRefetchQuery, generatedCacheWriteQuery: generatedCacheWriteQuery, generatedMutation: generatedMutation, generatedSubscription: generatedSubscription, generatedSubscriptionDocument: generatedSubscriptionDocument, generatedOtherTypes: generatedOtherTypes, generatedQueryTypesEnum: generatedQueryTypesEnum, }, useApolloClientV3); } exports.default = default_1; function sortTypesByKind(a, b) { return getSortValue(b) - getSortValue(a); } function getSortValue(x) { switch (x.kind) { case 'SCALAR': return 10; case 'UNION': return 9; case 'ENUM': return 8; case 'INPUT_OBJECT': return 7; case 'OBJECT': return 6; default: return 0; } }