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.
GraphQLDateTimeGraphQLEmailGraphQLIPv4GraphQLLimitedString(min, max, alphabet)GraphQLMacAddressGraphQLPassword(min, max, alphabet, complexity)GraphQLURLGraphQLUUID
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 --saveor
yarn add graphql graphql-extra-scalarsUse 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