@nuxt3/graphql-codegen-module

Nuxt module for Graphql code generator

Usage no npm install needed!

<script type="module">
  import nuxt3GraphqlCodegenModule from 'https://cdn.skypack.dev/@nuxt3/graphql-codegen-module';
</script>

README

@nuxt3/graphql-codegen-module

Nuxt3 module for graphql code generator

Installation

npm i -D @nuxt3/graphql-codegen-module @graphql-codegen/cli graphql

install graphql code generator plugin like @graphql-codegen/typescript @graphql-codegen/typescript-operations @graphql-codegen/typescript-vue-apollo

Configuration

// nuxt.config.js
import '@nuxt3/graphql-codegen-module' // import to remove config warning, not necessary
export default {
  buildModules: [
    '@nuxt3/graphql-codegen-module'
  ],
  graphqlCodegen: {
  }
}

Usage

write codegen.yml in root folder For example:

schema: generated/schema.graphql
documents: graphql/**/*.graphql
generates:
  generated/schema.d.ts:
    plugins:
      - typescript
  generated/operations.ts:
    config:
      documentMode: documentNode
    plugins:
      - typescript
      - typescript-operations
      - typescript-vue-apollo

Code will be generated to generated/operations.ts:

// types
// operation code
// like:
/**
 * __useCountryQuery__
 *
 * To run a query within a Vue component, call `useCountryQuery` and pass it any options that fit your needs.
 * When your component renders, `useCountryQuery` returns an object from Apollo Client that contains result, loading and error properties
 * you can use to render your UI.
 *
 * @param options that will be passed into the query, supported options are listed on: https://v4.apollo.vuejs.org/guide-composable/query.html#options;
 *
 * @example
 * const { result, loading, error } = useCountryQuery();
 */
export function useCountryQuery(options: VueApolloComposable.UseQueryOptions<CountryQuery, CountryQueryVariables> | VueCompositionApi.Ref<VueApolloComposable.UseQueryOptions<CountryQuery, CountryQueryVariables>> | ReactiveFunction<VueApolloComposable.UseQueryOptions<CountryQuery, CountryQueryVariables>> = {}) {
  return VueApolloComposable.useQuery<CountryQuery, CountryQueryVariables>(CountryDocument, {}, options);
}
export type CountryQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn<CountryQuery, CountryQueryVariables>;


you can use it with @nuxt3/apollo-module like this:

import { useCountryQuery } from '@/generated/operations'
const { result, loading, error } = await useCountryQuery()

Dev

pnpm i
pnpm run build

License

MIT License © 2021-PRESENT Phil xu