Skip to content
This repository has been archived by the owner on Mar 7, 2023. It is now read-only.

A collection of custom GraphQL types like Email, URL and password.

License

Notifications You must be signed in to change notification settings

stekycz/graphql-extra-scalars

 
 

Repository files navigation

GraphQL Extra scalars

npm version Build Status Dependency Status devDependencies Status peerDependencies Status

This is a collection of extra GraphQL scalar types.

Available 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,
}

Installation

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

Usage

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)
};

Development

Contributions are very welcome, please feel free to submit a type. If you do so make sure there are test cases in place.

Testing

The test suite may be invoked by running:

npm test

About

A collection of custom GraphQL types like Email, URL and password.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 98.4%
  • Shell 1.6%