Neophobe Plebeian Mumpsimus

    @graphql-ez/plugin-codegen
    TypeScript icon, indicating that this package has built-in type declarations

    0.8.0 • Public • Published

    @graphql-ez/plugin-codegen

    Integration with GraphQL Code Generator

    Usage

    import { ezCodegen } from '@graphql-ez/plugin-codegen';
    
    const ezApp = CreateApp({
      ez: {
        plugins: [
          ezCodegen({
            // Options
          }),
          // ...
        ],
      },
      // ...
    });

    Options

    The config property extends the options of:

    export interface CodegenConfig
      extends TypeScriptPluginConfig,
        TypeScriptResolversPluginConfig,
        TypeScriptDocumentsPluginConfig,
        TypeScriptTypedDocumentNodesConfig {
      /**
       * @description
       * Will use import type {} rather than import {} when importing only types.
       *
       * This gives also add compatibility with TypeScript's "importsNotUsedAsValues": "error" option
       *
       * @default true
       */
      useTypeImports?: boolean;
    
      /**
       * Enable deep partial type resolvers
       *
       * @default true
       */
      deepPartialResolvers?: boolean;
    
      /**
       * Generated target path
       *
       * @default "./src/ez.generated.ts"
       */
      targetPath?: string;
    
      /**
       * Add arbitrary code at the beginning of the generated code
       */
      preImportCode?: string;
    
      /**
       * Handle Code Generation errors
       * @default console.error
       */
      onError?: (err: unknown) => void;
    
      /**
       * Custom Code Generation finish callback
       */
      onFinish?: () => void;
    
      /**
       * GraphQL Codegen plugin context
       */
      pluginContext?: Record<string, any>;
    
      /**
       * Extra plugins map
       */
      extraPluginsMap?: Record<string, CodegenPlugin<any>>;
    
      /**
       * Extra plugins config
       */
      extraPluginsConfig?: Types.ConfiguredPlugin[];
    
      /**
       * Asynchronously loads executable documents (i.e. operations and fragments) from
       * the provided pointers. The pointers may be individual files or a glob pattern.
       * The files themselves may be `.graphql` files or `.js` and `.ts` (in which
       * case they will be parsed using graphql-tag-pluck).
       */
      documents?: UnnormalizedTypeDefPointer | UnnormalizedTypeDefPointer[];
    
      /**
       * Documents config
       */
      documentsConfig?: {
        /**
         * @default true
         */
        useTypedDocumentNode?: boolean;
    
        /**
         * Configuration used while loading the documents
         */
        loadDocuments?: Partial<LoadTypedefsOptions>;
      };
    
      /**
       * Skip documents validation
       */
      skipDocumentsValidation?: boolean;
    
      /**
       * Transform the generated code
       */
      transformGenerated?: (code: string) => string | Promise<string>;
    
      /**
       * Custom document loaders
       */
      documentsLoaders?: Loader<string, SingleFileOptions>[];
    }
    
    export interface CodegenOptions {
      /**
       * Enable code generation, by default is enabled if `NODE_ENV` is not `production` nor `test`
       *
       * @default process.env.NODE_ENV !== "production" && process.env.NODE_ENV !== "test"
       */
      enableCodegen?: boolean;
    
      /**
       * Add custom codegen config
       */
      config?: CodegenConfig;
    
      /**
       * Output schema target path or flag
       *
       * If `true`, defaults to `"./schema.gql"`
       * You have to specify a `.gql`, `.graphql` or `.json` extension
       *
       * @default false
       */
      outputSchema?: boolean | string | string[];
    }

    Keywords

    none

    Install

    npm i @graphql-ez/plugin-codegen

    DownloadsWeekly Downloads

    684

    Version

    0.8.0

    License

    MIT

    Unpacked Size

    28.2 kB

    Total Files

    18

    Last publish

    Collaborators

    • pablosz