UNPKG

jok

Version:

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

35 lines (34 loc) 5.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var renderImports_1 = require("./renderImports"); function default_1(_a, useApolloClientV3) { var generatedOtherTypes = _a.generatedOtherTypes, generatedQuery = _a.generatedQuery, generatedWatchQuery = _a.generatedWatchQuery, generatedRefetchQuery = _a.generatedRefetchQuery, generatedCacheWriteQuery = _a.generatedCacheWriteQuery, generatedMutation = _a.generatedMutation, generatedSubscription = _a.generatedSubscription, generatedSubscriptionDocument = _a.generatedSubscriptionDocument, generatedQueryTypesEnum = _a.generatedQueryTypesEnum; return (0, renderImports_1.default)(useApolloClientV3) + "\n\n// tslint:disable\n\n// types enum\n" + (generatedQueryTypesEnum || '') + "\n\n// types\n" + generatedOtherTypes + "\n\n" + (generatedQuery || '') + "\n" + (generatedWatchQuery || '') + "\n" + (generatedRefetchQuery || '') + "\n" + (generatedCacheWriteQuery || '') + "\n" + (generatedMutation || '') + "\n" + (generatedSubscription || '') + "\n" + (generatedSubscriptionDocument || 'class SubscriptionDocument { }') + "\n\n// helper types\ntype Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>\n" + (generatedQuery ? "\ntype OmittedQueryOptions = Omit<Partial<QueryOptions<OperationVariables>>, 'query' | 'variables'>\ntype OmittedWatchQueryOptions = Omit<Partial<WatchQueryOptions<OperationVariables>>, 'variables' | 'query'>\n\ntype SubscribeToMoreOptions<T> = {\n\tsubscribeToMore?:\n\t {\n\t\tgraphqlDocument: { document: any, variables?: any } |\n\t\t\t((subscription: SubscriptionDocument) => { document: any, variables?: any }),\n\t\tupdateQuery: UpdateQueryFn<T, any, any>\n\t }[]\n}\n\n" : '') + "\n" + (generatedMutation ? "\ntype OmittedMutationOptions = Omit<Partial<MutationOptions<OperationVariables>>, 'mutation' | 'variables'>" : '') + "\n" + (generatedSubscription ? "\ntype OmittedSubscriptionOptions = Omit<Partial<SubscriptionOptions<OperationVariables>>, 'query' | 'variables'>" : '') + "\n\n\ninterface FragmentOptions {\n\tfragmentName?: string\n}\n\ninterface GraphqlCallOptions {\n\tfetchPolicy?: FetchPolicy\n\terrorPolicy?: ErrorPolicy\n}\n\ninterface DefaultOptions {\n\t" + (generatedQuery ? 'query?: GraphqlCallOptions' : '') + "\n\t" + (generatedWatchQuery ? 'watchQuery?: GraphqlCallOptions' : '') + "\n\t" + (generatedMutation ? "mutation?: Omit<GraphqlCallOptions, 'fetchPolicy'>" : '') + "\n\t" + (generatedSubscription ? "subscription?: Omit<GraphqlCallOptions, 'errorPolicy'>" : '') + "\n}\n\nexport interface Client {\n\t" + (generatedQuery ? 'query: Query' : '') + "\n\t" + (generatedWatchQuery ? 'watchQuery: WatchQuery' : '') + "\n\t" + (generatedRefetchQuery ? 'refetchQuery: RefetchQuery' : '') + "\n\t" + (generatedCacheWriteQuery ? 'cacheWriteQuery: CacheWriteQuery' : '') + "\n\t" + (generatedMutation ? 'mutation: Mutation' : '') + "\n\t" + (generatedSubscription ? 'subscription: Subscription' : '') + "\n}\n\nexport default function (client: ApolloClient<any>, defaultOptions: DefaultOptions = {}): Client {\n\t" + (generatedSubscriptionDocument ? 'const subscriptionDocument = new SubscriptionDocument(client, defaultOptions.subscription || {})' : '') + "\n\treturn {\n\t\t" + (generatedQuery ? 'query: new Query(client, defaultOptions.query || {}),' : '') + "\n\t\t" + (generatedWatchQuery ? "watchQuery: new WatchQuery(client, defaultOptions.query || {}, " + (generatedSubscriptionDocument ? 'subscriptionDocument' : 'null') + ")," : '') + "\n\t\t" + (generatedRefetchQuery ? 'refetchQuery: new RefetchQuery(client, defaultOptions.query || {}),' : '') + "\n\t\t" + (generatedCacheWriteQuery ? 'cacheWriteQuery: new CacheWriteQuery(client, defaultOptions.query || {}),' : '') + "\n\t\t" + (generatedMutation ? 'mutation: new Mutation(client, defaultOptions.mutation || {}),' : '') + "\n\t\t" + (generatedSubscription ? 'subscription: new Subscription(client, defaultOptions.subscription || {}),' : '') + "\n\t}\n}\n\nfunction fixObservable(obs: any) {\n\t(obs as any)[observable] = () => obs\n\treturn obs\n}\n\nfunction getResultData<T>(result: any, dataFieldName: any) {\n\t// if error, throw it\n\tif (result.errors) {\n\t\tthrow new Error(<any>result.errors)\n\t}\n\n\tif (!result.data) {\n\t\treturn <T><any>null\n\t}\n\n\t// cast the result and return (need any for scalar types, to avoid compilation error)\n\treturn <T><any>result.data[dataFieldName]\n}\n\nfunction getFirstFragmentName(fragmentParam: string | Object | undefined) {\n\n if (typeof fragmentParam !== 'object') { return }\n const fragment = fragmentParam as any\n\n\tif (\n\t\t!fragment ||\n\t\t!fragment['definitions'] ||\n\t\t!fragment['definitions'][0] ||\n\t\t!fragment['definitions'][0].name ||\n\t\t!fragment['definitions'][0].name.value\n\t) { return }\n\n\treturn fragment['definitions'][0].name.value\n}\n"; } exports.default = default_1;