Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gql2dts

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gql2dts

A tool to parse graphql schema to typescript defs.

  • 1.0.11
  • unpublished
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
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

Package last updated on 27 Aug 2019

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc