UNPKG

nuxt-apollo

Version:
72 lines (68 loc) 1.79 kB
import { defineNuxtModule, logger, createResolver, addPlugin, addImports } from '@nuxt/kit'; import { defu } from 'defu'; const name = "nuxt-apollo"; const version = "0.2.1"; const module = defineNuxtModule({ meta: { name, version, configKey: "apollo", compatibility: { nuxt: "^3.0.0" } }, defaults: { httpEndpoint: "", credentials: "same-origin", proxyCookies: true }, setup(options, nuxt) { if (!options.httpEndpoint) { logger.warn("[nuxt-apollo] Please make sure to set httpEndpoint"); } const { resolve } = createResolver(import.meta.url); if (options.wsEndpoint) { addPlugin(resolve("./runtime/plugins/apolloWithWs.client")); addPlugin(resolve("./runtime/plugins/apolloWithWs.server")); } else { addPlugin(resolve("./runtime/plugins/apolloWithoutWs")); } nuxt.options.runtimeConfig.public = defu( nuxt.options.runtimeConfig.public, { apollo: { httpEndpoint: options.httpEndpoint, wsEndpoint: options.wsEndpoint, credentials: options.credentials, proxyCookies: options.proxyCookies } } ); const apolloComposables = [ "useQuery", "useMutation", "useSubscription", "useLazyQuery", "useApolloClient", "useQueryLoading", "useMutationLoading", "useSubscriptionLoading", "useGlobalQueryLoading", "useGlobalMutationLoading", "useGlobalSubscriptionLoading" ]; apolloComposables.forEach((name2) => { addImports({ name: name2, as: name2, from: "@vue/apollo-composable" }); }); addImports({ name: "gql", as: "gql", from: "graphql-tag" }); } }); export { module as default };