@graphql-codegen/typescript-vue-apollo
Version:
GraphQL Code Generator plugin for generating ready-to-use Vue-Apollo composition functions based on GraphQL operations
103 lines (102 loc) • 3.32 kB
TypeScript
import { RawClientSideBasePluginConfig } from '@graphql-codegen/visitor-plugin-common';
/**
* @description This plugin generates @vue/apollo-composable composition functions with TypeScript typings.
*
* It extends the basic TypeScript plugins: `@graphql-codegen/typescript`, `@graphql-codegen/typescript-operations` - and thus shares a similar configuration.
*
*/
export interface VueApolloRawPluginConfig extends RawClientSideBasePluginConfig {
/**
* @description Customized the output by enabling/disabling the generated Vue composition functions.
* @default true
*
* @exampleMarkdown
* ```ts filename="codegen.ts"
* import type { CodegenConfig } from '@graphql-codegen/cli';
*
* const config: CodegenConfig = {
* // ...
* generates: {
* 'path/to/file.ts': {
* plugins: ['typescript', 'typescript-operations', 'typescript-vue-apollo'],
* config: {
* withCompositionFunctions: true
* },
* },
* },
* };
* export default config;
* ```
*/
withCompositionFunctions?: boolean;
/**
* @name vueApolloComposableImportFrom
* @default @vue/apollo-composable
*
* @exampleMarkdown
* ```ts filename="codegen.ts"
* import type { CodegenConfig } from '@graphql-codegen/cli';
*
* const config: CodegenConfig = {
* // ...
* generates: {
* 'path/to/file.ts': {
* plugins: ['typescript', 'typescript-operations', 'typescript-vue-apollo'],
* config: {
* vueApolloComposableImportFrom: 'vue'
* },
* },
* },
* };
* export default config;
* ```
*/
vueApolloComposableImportFrom?: 'vue' | '@vue/apollo-composable' | string;
/**
* @name vueCompositionApiImportFrom
* @default @vue/composition-api
*
* @exampleMarkdown
* ```ts filename="codegen.ts"
* import type { CodegenConfig } from '@graphql-codegen/cli';
*
* const config: CodegenConfig = {
* // ...
* generates: {
* 'path/to/file.ts': {
* plugins: ['typescript', 'typescript-operations', 'typescript-vue-apollo'],
* config: {
* vueCompositionApiImportFrom: 'vue'
* },
* },
* },
* };
* export default config;
* ```
*/
vueCompositionApiImportFrom?: 'vue' | '@vue/composition-api' | string;
/**
* @description Allows you to enable/disable the generation of docblocks in generated code.
* Some IDE's (like VSCode) add extra inline information with docblocks, you can disable this feature if your preferred IDE does not.
* @default true
*
* @exampleMarkdown
* ```ts filename="codegen.ts"
* import type { CodegenConfig } from '@graphql-codegen/cli';
*
* const config: CodegenConfig = {
* // ...
* generates: {
* 'path/to/file.ts': {
* plugins: ['typescript', 'typescript-operations', 'typescript-vue-apollo'],
* config: {
* addDocBlocks: true
* },
* },
* },
* };
* export default config;
* ```
*/
addDocBlocks?: boolean;
}