Socket
Socket
Sign inDemoInstall

gql2dts

Package Overview
Dependencies
155
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    gql2dts

A tool to parse graphql schema to typescript defs.


Version published
Maintainers
1
Install size
11.3 MB
Created

Readme

Source

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

//when 'declare'
declare namespace gql{}
//when 'export'
export namespace gql{}
//when 'none'
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?

// {object: type=>type+' | null' }
interface User {
	id: ID
	name: String
	gender: Gender | null
}
// {object: type=>type }
interface User {
	id: ID
	name: String
	gender: Gender
}

Keywords

FAQs

Last updated on 27 Aug 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc