get-graphql-from-jsonschema
get-graphql-from-jsonschema gets a GraphQL schema from a JSON schema.
Status
Category | Status |
---|
Version | |
Dependencies | |
Dev dependencies | |
Build | |
License | |
Installation
$ npm install get-graphql-from-jsonschema
Quick Start
First you need to add a reference to get-graphql-from-jsonschema to your application:
const { getGraphqlFromJsonSchema } = require('get-graphql-from-jsonschema');
If you use TypeScript, use the following code instead:
import { getGraphqlFromJsonSchema } from 'get-graphql-from-jsonschema';
To get a GraphQL schema from a JSON schema, call the getGraphqlFromJsonSchema
function and hand over the root name of the schema you want to convert as well as the schema itself. As a result, you get back the root GraphQL type name and, if needed, additional GraphQL type definitions:
const { typeName, typeDefinitions } = getGraphqlFromJsonSchema({
rootName: 'person',
schema: {
type: 'object',
properties: {
firstName: { type: 'string' },
lastName: { type: 'string' },
coordinates: {
type: 'object',
properties: {
latitude: { type: 'number' },
longitude: { type: 'number' }
},
required: [ 'latitude', 'longitude' ],
additionalProperties: false
},
tags: {
type: 'array',
items: {
type: 'object',
properties: {
key: { type: 'string' },
value: { type: 'string' }
},
required: [ 'key', 'value' ],
additionalProperties: false
}
}
},
required: [ 'firstName', 'tags' ],
additionalProperties: false
}
});
console.log(typeName);
console.log(typeDefinitions);
If you want to use the generated types as input types for a mutation, additionally provide the direction
option to the call to getGraphqlFromJsonSchema
and set its value to input
:
const { typeName, typeDefinitions } = getGraphqlFromJsonSchema({
rootName: 'person',
schema: {
},
direction: 'input'
});
Running the build
To build this module use roboter.
$ npx roboter