/** * Extends interfaces in Nuxt */ import { VueApolloComponentOptions } from 'vue-apollo/types/options' import { ApolloProvider } from 'vue-apollo/types/apollo-provider' import { ApolloClientClientConfig } from 'vue-cli-plugin-apollo/graphql-client' import Vue, { ComponentOptions } from 'vue' import { ApolloHelpers, CookieAttributes } from '.' export interface ApolloClientConfig extends ApolloClientClientConfig { httpEndpoint: string websocketsOnly?: boolean } interface NuxtApolloConfiguration { tokenName?: string cookieAttributes?: CookieAttributes tokenExpires?: number includeNodeModules?: boolean authenticationType?: string errorHandler?: string watchLoading?: string defaultOptions?: VueApolloComponentOptions clientConfigs: { default: ApolloClientConfig | string [key: string]: ApolloClientConfig | string } } declare module '@nuxt/config' { interface NuxtConfiguration { apollo?: NuxtApolloConfiguration } } declare module '@nuxt/vue-app' { interface NuxtAppOptions extends ComponentOptions { $apolloHelpers: ApolloHelpers } } // Nuxt 2.9+ declare module '@nuxt/types' { interface Configuration { apollo?: NuxtApolloConfiguration } interface NuxtAppOptions extends ComponentOptions { $apolloHelpers: ApolloHelpers apolloProvider: ApolloProvider } interface Context { $apolloHelpers: ApolloHelpers } }