json-to-graphql-cli

0.2.0 • Public • Published

graphql-schema-generator

Generate GraphQL Schema from JSON source

Usage

	Generate GraphQL Schema from JSON source

	$ schema [flags]

	-h --help                     # Display this message
	-v --version                  # Output the version [0.1.1]

	-s --source <path/url>        # Local JSON / API URl
	-o --out <out>                # Output file
	-t --token <token>            # Access toke if api requires auth

	Warning!
	Do not use --file and --url at the same time!

Installation

	$ npm install --global json-to-graphql-cli

or via yarn

	$ yarn global add json-to-graphql-cli

Sample source

Example taken from json-to-graphql module.

	{
	"name": "brandon",
	"id": 1,
	"favorite_color": "teal",
	"job": {
		"type": "web developer",
		"years": 1
	},
	"dogs": ["minnie", "navi"]
	}
	const {
		GraphQLBoolean,
		GraphQLString,
		GraphQLInt,
		GraphQLFloat,
		GraphQLObjectType,
		GraphQLSchema,
		GraphQLID,
		GraphQLNonNull
	} = require('graphql')


	const JobType = new GraphQLObjectType({
		name: 'job',
		fields: {
			type: {
				description: 'enter your description',
				type: new GraphQLNonNull(GraphQLString),
				// TODO: Implement resolver for type
				resolve: () => null,
			},
			years: {
				description: 'enter your description',
				type: new GraphQLNonNull(GraphQLInt),
				// TODO: Implement resolver for years
				resolve: () => null,
			}
		},
	});


	module.exports = new GraphQLSchema({
		query: new GraphQLObjectType({
			name: 'RootQueryType',
			fields: () => ({
				name: {
					description: 'enter your description',
					type: new GraphQLNonNull(GraphQLString),
					// TODO: Implement resolver for name
					resolve: () => null,
				},
				id: {
					description: 'enter your description',
					type: new GraphQLNonNull(GraphQLID),
					// TODO: Implement resolver for id
					resolve: () => null,
				},
				favorite_color: {
					description: 'enter your description',
					type: new GraphQLNonNull(GraphQLString),
					// TODO: Implement resolver for favorite_color
					resolve: () => null,
				},
				job: {
					description: 'enter your description',
					type: new GraphQLNonNull(JobType),
					// TODO: Implement resolver for job
					resolve: () => null,
				},
				dogs: {
					description: 'enter your description',
					type: new GraphQLNonNull(new GraphQLList(GraphQLString)),
					// TODO: Implement resolver for dogs
					resolve: () => null,
				}
			})
		})
	})

For API and more infos check out json-to-graphql

Related

License

MIT © Federico Vitale

Readme

Keywords

none

Package Sidebar

Install

npm i json-to-graphql-cli

Weekly Downloads

2

Version

0.2.0

License

MIT

Last publish

Collaborators

  • rawnly