UNPKG

jok

Version:

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

66 lines (65 loc) 3.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var buildVariablesDeclarationString_1 = require("../../domain/buildVariablesDeclarationString"); var buildVariablesPassString_1 = require("../../domain/buildVariablesPassString"); var getGraphqlTypeString_1 = require("../../domain/getGraphqlTypeString"); var getTypescriptPropsTypeName_1 = require("../../domain/getTypescriptPropsTypeName"); var uncapitalizeFirstLetter_1 = require("../../utils/uncapitalizeFirstLetter"); var generatePropsType_1 = require("../helper/generatePropsType"); var generateResultTypeFields_1 = require("../helper/generateResultTypeFields"); var cacheWriteQuery_1 = require("../render/cacheWriteQuery"); var renderFragment_1 = require("../render/renderFragment"); var renderMethod_1 = require("../render/renderMethod"); var renderOptions_1 = require("../render/renderOptions"); var renderQuery_1 = require("../render/renderQuery"); function default_1(field, types, generateDefaultFragments) { var queryName = field.name; var propsType = (0, getTypescriptPropsTypeName_1.default)('Query', queryName); var inputs = field.args || []; var methodName = (0, uncapitalizeFirstLetter_1.default)(queryName); var hasInputs = !!inputs.length; var returnClassName = (0, getGraphqlTypeString_1.default)({ type: field.type, capitalizeName: true, onlyName: true, }); var returnGraphqlTypeName = returnClassName; var fragmentName = returnClassName + 'Data'; var props = (0, generatePropsType_1.default)(propsType, inputs); var resultTypeFields = (0, generateResultTypeFields_1.default)(field.type, types); var hasResultType = !!resultTypeFields; var variablesDeclarationString = (0, buildVariablesDeclarationString_1.default)(inputs); var variablesString = (0, buildVariablesPassString_1.default)(inputs); var type = (types.find(function (x) { return x.name === returnGraphqlTypeName; })); var method = (0, renderMethod_1.default)({ rootType: 'cacheWriteQuery', methodName: methodName, generateDefaultFragments: generateDefaultFragments, hasProps: hasInputs, propsType: propsType, hasResultType: hasResultType, returnClassFullname: '', renderContent: function () { // Render Query return (0, renderOptions_1.default)(fragmentName, hasResultType, true) + (hasResultType ? (0, renderFragment_1.default)(type, generateDefaultFragments, returnGraphqlTypeName) : '') + (0, renderQuery_1.default)({ hasFragment: hasResultType, queryName: queryName, variablesDeclarationString: variablesDeclarationString, variablesString: variablesString, }) + (0, cacheWriteQuery_1.default)({ hasProps: hasInputs, queryName: queryName, }); }, }); return { method: method, props: props, }; } exports.default = default_1;