GraphQL Normalized Types :cocktail:
The gin-n-tonic of GraphQL types: simple, final, clean. Normalize your common data with GraphQL Scalar types.
Usage
$ npm install --save gnt
and then add to your schema:
const { Phone, UnixDate, CreditCard, State, ZipCode, DriversLicense } = require('gnt')
const { makeExecutableSchema } = require('graphql-tools');
makeExecutableSchema({
typeDefs: schemaString,
resolvers: {
Phone,
UnixDate,
CreditCard,
USState: State,
ZipCode,
DriversLicense
}
});
Examples
Each of these types can be installed individually using there 'Package Name' shown below
Type | Package Name | Input Example | Output Example |
---|---|---|---|
Phone | graphql-types-phone |
'(817) 569-8900' |
'+18175698900' |
Zipcode | graphql-types-zipcode |
'55902' , 00000 |
'55902' , null |
UnixDate | graphql-types-unix-timestamp |
2017-05-07T14:47:59.438 , Date |
1494186489 |
CreditCard | graphql-types-credit-card |
'4111111111111111' |
{ number: '4111111111111111', cardType: 'VISA', validCVV: false, validExpiryMonth: false, validExpiryYear: false, isExpired: true } |
NonEmptyString | graphql-types-non-empty-string |
'' |
null |
Drivers License | graphql-types-drivers-license |
{ state: 'CA', license: 'B2347354' } |
{ state: 'CA', license: 'B2347354' } OR null |
Enum Types
Type | Package Name | Input Example |
---|---|---|
USState | graphql-types-us-state |
US , CA , DE ... |
Contributing
Contributions are more than welcome! This repo is not meant to be owned by me (and if there is a more suitable owner please let me know), but rather by the commuity.
Creating a new type
First run:
$ npm run generate -- '<your type name>'
to get started. A folder with index.js
, index.spec.js
(your test), and a package.json
will be created for you!
Then run npm run link
and you should be on your way.
If you have any idea for new types, please submit an issue or PR!