Package Exports
- json-to-graphql-query
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (json-to-graphql-query) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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
- Full support for nested query nodes and arguments
- Support for Enum values
- Supports JSON input types for arguments
See usage examples 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