gql-generator-ts
v1.0.2
Published
Generate queries from graphql schema, used for writing api test.
Downloads
15
Readme
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 indicateFlag 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