1.0.2 • Published 3 years ago

gql-generator-ts v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

gql-generator

Generate queries from graphql schema, used for writing api test.

Fork

This repository is forked from https://github.com/timqian/gql-generator

Changes

New Option: --includeRecursiveFields

Add new option -R, --includeRecursiveFields [value] to indicate Flag to include recursive fields (The default is to exclude)

Example:

# Schema: the two fields of type 'UserRecursive' contains same recursive field: 'type2.type3.type3Value'

type Query {
    userRecursive(id: Int!): UserRecursive!
}

type UserRecursive {
    id: Int!
    type1: Type1!
    anotherType1: Type1!
}

type Type1 {
    type2: Type2!
}

type Type2 {
    type3: Type3!
}

type Type3 {
    type3Value: String!
}
# Schema query generated:

# without '-R' (default) (the recursive field will be generated only once, e.g. 'anotherType1' will not be generated)
query userRecursive($id: Int!){
    userRecursive(id: $id){
        id
        type1{
            type2{
                type3{
                    type3Value
                }
            }
        }
    }
}

# with '-R' (the recursive field will be generated multiple times, e.g. 'anotherType1' will also be generated)
query userRecursive($id: Int!){
    userRecursive(id: $id){
        id
        type1{
            type2{
                type3{
                    type3Value
                }
            }
        }
        anotherType1{
            type2{
                type3{
                    type3Value
                }
            }
        }
    }
}

New Option: --duplicateArgName

  • Add new option -D, --duplicateArgName [value] to indicate Flag to generate duplicate argument name instead of using different index as suffix to generate argument name (The default is using different index as suffix)

Example:

# Schema: the type 'Config' has duplicated argument name 'domain'

type Mutation {
    setConfig(
        prefs: PrefsInput
    ): Config!
}

type Config {
    language: String!
    level(domain: String!): Int!
    lastSeen(domain: String!): Int!
    theme(domain: String!): Int!
}
# Schema mutation generated:

# without '-D' (default) (the argument name will has index as suffix, e.g. 'domain', 'domain1', 'domain2')
mutation setConfig($domain: String!, $domain1: String!, $domain2: String!, $prefs: PrefsInput){
    setConfig(prefs: $prefs){
        language
        level(domain: $domain)
        lastSeen(domain: $domain1)
        theme(domain: $domain2)
    }
}

# with '-D' (the argument name is duplicated, e.g. 'domain')
mutation setConfig($domain: String!, $prefs: PrefsInput){
    setConfig(prefs: $prefs){
        language
        level(domain: $domain)
        lastSeen(domain: $domain)
        theme(domain: $domain)
    }
}

Upgrade npm dependencies to fix vulnerabilities

npm audit fix --force