jok
Version:
Bundle of utility functions for code generation related to nodejs and graphql
25 lines (24 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var rootType_1 = require("../../utils/rootType");
function default_1(_a) {
var _b;
var rootType = _a.rootType, methodName = _a.methodName, generateDefaultFragments = _a.generateDefaultFragments, hasProps = _a.hasProps, propsType = _a.propsType, renderContent = _a.renderContent, hasResultType = _a.hasResultType, returnClassFullname = _a.returnClassFullname;
var omittedOptionsType = (_b = {},
_b[rootType_1.RootType.Query] = 'OmittedQueryOptions',
_b.watchQuery = "OmittedWatchQueryOptions & SubscribeToMoreOptions<{ " + methodName + " : " + returnClassFullname + "}>",
_b.cacheWriteQuery = 'OmittedQueryOptions',
_b[rootType_1.RootType.Mutation] = 'OmittedMutationOptions',
_b[rootType_1.RootType.Subscription] = 'OmittedSubscriptionOptions',
_b)[rootType];
var isCacheWriteQueryMode = rootType === 'cacheWriteQuery';
var fragmentRequiredSymbol = generateDefaultFragments ? '?' : '';
var fragmentProp = hasResultType
? "fragment" + fragmentRequiredSymbol + ": string | DocumentNode,"
: '';
var fragmentType = hasResultType ? 'FragmentOptions' : '';
return "\n\t" + methodName + "(\n\t\t" + (hasProps ? "props: " + propsType + "," : "") + "\n\t\t" + (isCacheWriteQueryMode
? "data: any,\n\t\t\t" + fragmentProp
: "\n\t\t\t" + fragmentProp + "\n\t\t\toptions?: GraphqlCallOptions " + (fragmentType ? "& " + fragmentType : '') + " & " + omittedOptionsType + ",") + "\n\t) {\n\t" + renderContent() + "\n\t}";
}
exports.default = default_1;