Package Exports
- format-graphql
- format-graphql/dist/index.js
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 (format-graphql) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
format-graphql
Formats GraphQL schema definition language (SDL) document.
Motivation
As schema grows in size, it becomes desirable to automate schema organisation. The primary function of format-graphql is to sort definitions and fields in an alphabetical order, therefore enabling predictable discovery and grouping of related schema entities.
Behaviour
Alphabetically sorts definitions, fields and arguments.
Example
Input:
type Query {
bananas: [Banana!]!
apples: [Apple!]!
}
type Apple {
name: String!
id: ID!
}
type Banana {
name: String!
id: ID!
}
Output:
type Apple {
id: ID!
name: String!
}
type Banana {
id: ID!
name: String!
}
type Query {
apples: [Apple!]!
bananas: [Banana!]!
}
Usage
Command Line
$ format-graphql --help
Sort GraphQL schema definition language (SDL) document.
Positionals:
sdl-path Path to the GraphQL schema definition (SDL) document. [string]
Options:
--version Show version number [boolean]
--help Show help [boolean]
--sort-arguments Sort on arguments [boolean] [default: true]
--sort-definitions Sort on definitions [boolean] [default: true]
--sort-enums Sort on enums [boolean] [default: true]
--sort-fields Sort on fields [boolean] [default: true]
--write Overrides contents of the SDL document.
[boolean] [default: false]
$ # Prints formatted schema.
$ format-graphql ./schema.graphql
$
$ # Overrides target schema.
$ format-graphql --write=true ./schema.graphql
Node API
formatSdl(schema, options)
Returns a formatted GraphQL SDL String.
Parameters
schema: stringoptions(optional): object:{ sortDefinitions?: boolean, sortEnums?: boolean, sortFields?: boolean, sortArguments?: boolean, }
Example
import {formatSdl} from 'format-graphql';
formatGraphql('type Foo { bar: String }');Hooks
I recommend using husky to setup a pre-commit hook that would format the schema, e.g.
"husky": {
"hooks": {
"pre-commit": "format-graphql --write true src/schema.graphql"
}
},