Package Exports
- get-graphql-from-jsonschema
- get-graphql-from-jsonschema/build/lib/scalarTypes
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 (get-graphql-from-jsonschema) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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-jsonschemaQuick 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);
// => Person
console.log(typeDefinitions);
// => [
// 'type PersonCoordinates {
// latitude: Float!
// longitude: Float!
// }',
// 'type PersonTags {
// key: String!
// value: String!
// }',
// 'type Person {
// firstName: String!
// lastName: String
// coordinates: PersonCoordinates
// tags: [PersonTags]!
// }'
// ]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