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:
{
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:
npm install graphql graphql-extra-scalars --save
or
yarn add graphql graphql-extra-scalars
Use it in your GraphQLSchema
as you would use any other type.
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:
npm test