Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evargast/gql-string-to-object
https://github.com/evargast/gql-string-to-object
Last synced: 23 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/evargast/gql-string-to-object
- Owner: evargast
- License: mit
- Created: 2020-10-29T16:19:54.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T15:47:28.000Z (almost 2 years ago)
- Last Synced: 2024-04-25T18:00:35.993Z (8 months ago)
- Language: TypeScript
- Size: 1.07 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GraphQL string to object
Helper function that will convert GraphQL strings into objects.
Intended to allow easier navigation through the implemented schema. Could be for testing, parsing, you name it!
## Installation
```shell
npm install -D gql-string-to-object
```## Example implementations
### gqlToObject
```javascript
import { gqlToObject } from "gql-string-to-object";const FRAGMENT_EXAMPLE = `
fragment ProductDetails on Character {
name
sku
price {
currency
symbol
}
}
`;const QUERY_EXAMPLE = `
query ProductFinder($first: Int = 3) {
location
availability
details {
...ProductDetails
}
}
${FRAGMENT_EXAMPLE}
`;const gqlAsObject = gqlToObject(QUERY_EXAMPLE, [FRAGMENT_EXAMPLE]);
console.log(JSON.stringify(gqlAsObject));
```Response
```json
{
"location": {},
"availability": {},
"details": {
"name": {},
"sku": {},
"price": {
"currency": {},
"symbol": {}
}
}
}
```
### schemaToObject
```javascript
import { getIntrospectionQuery, schemaToObject } from "gql-string-to-object";const response = await fetch(YOUR - URL - HERE, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ query: getIntrospectionQuery() }),
});const data = await response.json();
console.log(schemaToObject(data.__schema, "sale_tag"));
```Output :
```json
{
"sale_tag": {
"amount": "Int",
"label": "String"
}
}
```Raw schema example
```json
...
{
"kind": "OBJECT",
"name": "sale_tag",
"description": "A description for the SaleTag",
"fields": [
{
"name": "amount",
"description": "A description for the amount field",
"args": [],
"type": {
"kind": "SCALAR",
"name": "Int",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "label",
"description": "Some label description",
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null
}
...
```
## Contributing
Got ideas on how to improve this?? Lets make it happen 🚂
[PRs](https://github.com/evargast/GQL-string-to-object/pulls) here!
[Issues](https://github.com/evargast/GQL-string-to-object/issues) over here!