{"id":22733304,"url":"https://github.com/evargast/gql-string-to-object","last_synced_at":"2025-03-30T01:45:11.700Z","repository":{"id":42693582,"uuid":"308384438","full_name":"evargast/GQL-string-to-object","owner":"evargast","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-06T15:47:28.000Z","size":1117,"stargazers_count":0,"open_issues_count":12,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-25T18:00:35.993Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evargast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-29T16:19:54.000Z","updated_at":"2020-11-03T20:51:17.000Z","dependencies_parsed_at":"2023-02-06T06:00:43.733Z","dependency_job_id":null,"html_url":"https://github.com/evargast/GQL-string-to-object","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":"evargast/simple-npm-module","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evargast%2FGQL-string-to-object","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evargast%2FGQL-string-to-object/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evargast%2FGQL-string-to-object/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evargast%2FGQL-string-to-object/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evargast","download_url":"https://codeload.github.com/evargast/GQL-string-to-object/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246266250,"owners_count":20749754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-10T20:13:40.165Z","updated_at":"2025-03-30T01:45:11.678Z","avatar_url":"https://github.com/evargast.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GraphQL string to object\n\n\u003ca href=\"https://www.npmjs.com/package/gql-string-to-object\"\u003e\n    \u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/v/gql-string-to-object.svg?style=flat-square\"\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://www.npmjs.com/package/gql-string-to-object\"\u003e\n    \u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/dt/gql-string-to-object?style=flat-square\"\u003e\n\u003c/a\u003e\n\nHelper function that will convert GraphQL strings into objects.\n\nIntended to allow easier navigation through the implemented schema. Could be for testing, parsing, you name it!\n\n## Installation\n\n```shell\nnpm install -D gql-string-to-object\n```\n\n## Example implementations\n\n### gqlToObject\n\n```javascript\nimport { gqlToObject } from \"gql-string-to-object\";\n\nconst FRAGMENT_EXAMPLE = `\n    fragment ProductDetails on Character {\n        name\n        sku\n        price {\n            currency\n            symbol\n        }\n    }\n    `;\n\nconst QUERY_EXAMPLE = `\n    query ProductFinder($first: Int = 3) {\n        location\n        availability\n        details {\n            ...ProductDetails\n        }\n    }\n    ${FRAGMENT_EXAMPLE}\n`;\n\nconst gqlAsObject = gqlToObject(QUERY_EXAMPLE, [FRAGMENT_EXAMPLE]);\n\nconsole.log(JSON.stringify(gqlAsObject));\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eResponse\u003c/b\u003e\u003c/summary\u003e\n\n```json\n{\n  \"location\": {},\n  \"availability\": {},\n  \"details\": {\n    \"name\": {},\n    \"sku\": {},\n    \"price\": {\n      \"currency\": {},\n      \"symbol\": {}\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cbr/\u003e\n\n### schemaToObject\n\n```javascript\nimport { getIntrospectionQuery, schemaToObject } from \"gql-string-to-object\";\n\nconst response = await fetch(YOUR - URL - HERE, {\n  method: \"POST\",\n  headers: {\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({ query: getIntrospectionQuery() }),\n});\n\nconst data = await response.json();\n\nconsole.log(schemaToObject(data.__schema, \"sale_tag\"));\n```\n\nOutput :\n\n```json\n{\n  \"sale_tag\": {\n    \"amount\": \"Int\",\n    \"label\": \"String\"\n  }\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eRaw schema example\u003c/b\u003e\u003c/summary\u003e\n\n```json\n...\n{\n  \"kind\": \"OBJECT\",\n  \"name\": \"sale_tag\",\n  \"description\": \"A description for the SaleTag\",\n  \"fields\": [\n    {\n      \"name\": \"amount\",\n      \"description\": \"A description for the amount field\",\n      \"args\": [],\n      \"type\": {\n        \"kind\": \"SCALAR\",\n        \"name\": \"Int\",\n        \"ofType\": null\n      },\n      \"isDeprecated\": false,\n      \"deprecationReason\": null\n    },\n    {\n      \"name\": \"label\",\n      \"description\": \"Some label description\",\n      \"args\": [],\n      \"type\": {\n        \"kind\": \"SCALAR\",\n        \"name\": \"String\",\n        \"ofType\": null\n      },\n      \"isDeprecated\": false,\n      \"deprecationReason\": null\n    }\n  ],\n  \"inputFields\": null,\n  \"interfaces\": [],\n  \"enumValues\": null,\n  \"possibleTypes\": null\n}\n...\n```\n\n\u003c/details\u003e\n\n\u003cbr/\u003e\n\n## Contributing\n\nGot ideas on how to improve this?? Lets make it happen 🚂\n\n[PRs](https://github.com/evargast/GQL-string-to-object/pulls) here!\n\n[Issues](https://github.com/evargast/GQL-string-to-object/issues) over here!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevargast%2Fgql-string-to-object","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevargast%2Fgql-string-to-object","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevargast%2Fgql-string-to-object/lists"}