1.2.5 • Published 5 years ago

@react-app/graphql-typings-loader v1.2.5

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

graphql-typings-loader

Webpack loader to generate TS typings of graphql files as d.ts file alongside source file. Uses apollo-codegen under the hood. Supports #import syntax. If d.ts file contains GraphQL enums, they are also extracted to filename.types.ts file so they can be used in TS code.

npm i @react-app/graphql-typings-loader
{
  test: /\.graphql$/,
  use: [
    'graphql-tag/loader'
    'graphql-typings-loader',
  ],
}

By default it tries to read './schema.json' in the current working directory (directory from which webpack was run). If it does not exist, it outputs nothing.

Configuration

You can create .graphqltypings.js config file in the current working directory or pass options object via loader options. It supports following:

{
    schema: "string | filename to read schema from,
        default: ./schema.json",

    legacy: "boolean | uses apollo-codegen-typescript-legacy when true instead of apollo-codegen-typescript,
        default: false,

    options: "object | options for apollo-codegen-typescript,
        default: {
            addTypename: true,
            mergeInFieldsFromFragmentSpreads: true,
            passthroughCustomScalars: true,
            customScalarsPrefix: 'GraphQLScalar'," 
        }
}

Scalars

By default custom graphql scalars have prefix 'GraphQLScalar'. You can that create graphql-scalars.d.ts file in your root directory with mappings to ts(js) types.

graphql-scalars.d.ts

type GraphQLScalarUpload = File | Blob; 
type GraphQLScalarDateTime = string;