Skip to content

Simple module that converts JavaScript objects to GraphQL query syntax

License

Notifications You must be signed in to change notification settings

douglaseggleton/json-to-graphql-query

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

json-to-graphql-query

This is a simple module that takes a JavaScript object and turns it into a GraphQL query to be sent to a GraphQL server.

Mainly useful for applications that need to generate graphql queries dynamically.

Installation

npm install json-to-graphql-query

Features

  • Converts a JavaScript object to a GraphQL Query
  • Supports nested objects & arguments
  • Supports JSON input types for arguments (see arguments example below)

Usage

jsonToGraphQLQuery( queryObject: object, options?: object )

Supported options:

  • pretty: boolean - Set to true to enable pretty-printed output

Simple Query

import { jsonToGraphQLQuery } from 'json-to-graphql-query';

const query = {
    query: {
        Posts: {
            id: true,
            title: true,
            post_date: true
        }
    }
};
const graphql_query = jsonToGraphQLQuery(query, { pretty: true });

Resulting graphql_query

query {
    Posts {
        id
        title
        post_date
    }
}

Query with arguments

import { jsonToGraphQLQuery, EnumType } from 'json-to-graphql-query';

const query = {
    query: {
        Posts: {
            __args: {
                where: { id: 2 }
                orderBy: 'post_date',
                status: new EnumType('PUBLISHED')
            },
            id: true,
            title: true,
            post_date: true
        }
    }
};
const graphql_query = jsonToGraphQLQuery(query, { pretty: true });

Resulting graphql_query

query {
    Posts (where: {id: 2}, orderBy: "post_date", status: PUBLISHED) {
        id
        title
        post_date
    }
}

Query with nested objects

import { jsonToGraphQLQuery } from 'json-to-graphql-query';

const query = {
    query: {
        Posts: {
            id: true,
            title: true,
            comments: {
                id: true,
                comment: true,
                user: true
            }
        }
    }
};
const graphql_query = jsonToGraphQLQuery(query, { pretty: true });

Resulting graphql_query

query {
    Posts {
        id
        title
        comments {
            id
            comment
            user
        }
    }
}

TO-DO List

  • Fragments
  • Probably some other things!...

Pull requests welcome!

License

MIT

About

Simple module that converts JavaScript objects to GraphQL query syntax

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%