gql2dts
A tool to parse graphql schema to typescript defs.
Installation
npm install gql2dts
Usage
import gql2dts from 'gql2dts'
import fs from 'fs'
const dts = gql2dts.parse(graphqlSchema, option)
fs.writeFileSync('/path/to/gql.d.ts', dts)
Options
using option argument, you can set your code style.
now, there is a graphql file like:
enum Gender{
male
female
unknown
}
type User{
id: ID!
name: String!
gender: Gender
}
type Query{
user(id:ID!): User
users: [User!]!
}
enumType
tell parser program how to parse graphql enum type, default 'type'.
when enum
const enum Gender {
male = 'male',
female = 'female'
unknown = 'unknown'
}
when type
type Gender = 'male' | 'female' | 'unknown'
objectType
tell parser how to parse graphql object type, default 'interface'.
when interface
:
interface User {
id: ID
name: String
gender: Gender | null | undefined
}
when type
type User = {
id: ID
name: String
gender: Gender | null | undefined
}
namespaceName
set namespace name of ts defs, default 'gql'
namespace gql{
}
outputType
eh, this is only a string before namespace
declare namespace gql{}
export namespace gql{}
namespace gql{}
argument2interface
to parse argument to interface ?
when true
interface IUserOnQueryArguments {
id: ID
}
interface Query {
user:GQLFunction<IUserOnQueryArguments, User|null|undefined>
users: Array<User>
}
and when false
interface Query {
user:GQLFunction<{ id: ID }, User|null|undefined>
users: Array<User>
}
customscalarTypes
set types for graphql scalar types, such as:
{Int: 'number', String:'string', ... ...}
nullableType
when get nullable type, how to parse it?
interface User {
id: ID
name: String
gender: Gender | null
}
interface User {
id: ID
name: String
gender: Gender
}