Collection of extra GraphQL scalar types like Email, URL, Password and more
npm install graphql-extra-scalars> This is a collection of extra GraphQL scalar types.
Let me give you an overview of the available types. If you need more detail about how to use them, check tests/schema.js.
The primitive types, aka everything that may be represented as a string. The ones with parameters you need to instantiate with new and pass according parameters, the others may be used as are.
* GraphQLDateTime
* GraphQLEmail
* GraphQLIPv4
* GraphQLLimitedString(min, max, alphabet)
* GraphQLMacAddress
* GraphQLPassword(min, max, alphabet, complexity)
* GraphQLURL
* GraphQLUUID
complexity options:
``javascript`
{
alphaNumeric: false,
mixedCase: false,
specialChars: false,
}
Most likely you already will have it, but do not forget to also install graphql, since it is required as peer dependency:
`sh`
npm install graphql graphql-extra-scalars --save
or
`sh`
yarn add graphql graphql-extra-scalars
Use it in your GraphQLSchema as you would use any other type.
`typescript
import {
GraphQLDateTime,
GraphQLEmail,
GraphQLIPv4,
GraphQLLimitedString,
GraphQLMacAddress,
GraphQLPassword,
GraphQLURL,
GraphQLUUID
} from 'graphql-extra-scalars';
import {DocumentNode} from 'graphql';
import {gql} from 'graphql-tag';
const schema: DocumentNode = gql
scalar DateTime;
const resolvers = {
DateTime: GraphQLDateTime,
Password: new GraphQLPassword(8)
};
`
Contributions are very welcome, please feel free to submit a type. If you do so make sure there are test cases in place.
The test suite may be invoked by running:
`sh``
npm test