The Wayback Machine - https://web.archive.org/web/20201001122816/https://github.com/adriano-di-giovanni/graphql-scalars
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

graphql-scalars

Custom scalars for GraphQL.

Currently available scalars:

Installation

npm install graphql-scalars --save

GraphQLDate

This custom scalar for GraphQL parses any integer, float, string or date value to javascript dates.

GraphQLDate uses new Date() to parse values so, please refer to the documentation for more details.

GraphQLDate serializes dates to ISO 8601 strings.

Usage

import {
  graphql,
  GraphQLObjectType,
  GraphQLSchema
} from 'graphql'

import { GraphQLDate } from 'graphql-scalars'

const schema = new GraphQLSchema({
  query: new GraphQLObjectType({
    name: 'RootQuery',
    fields: {
      createdAt: {
        type: GraphQLDate,
        resolve () {
          // Resolver can return an integer, string or date value.
          // The following return values all resolve to the same date.
          // `return 262915200000`
          // `return '1978-05-02'`
          // `return '1978-05-02T00:00:00.000Z'`
          return new Date('1978-05-02')
        }
      }
    }
  }),
  mutation: new GraphQLObjectType({
    name: 'RootMutation',
    fields: {
      setCreatedAt: {
        type: GraphQLDate,
        args: {
          createdAt: {
            type: GraphQLDate
          }
        },
        resolve (source, { createdAt }) {
          // `createdAt` is a javascript date
          return createdAt
        }
      }
    }
  })
})

const query = `
  {
    createdAt
  }
`

graphql(schema, query)
  .then(result => {
    const isoString = result.data.createdAt
    console.log(isoString) // 1978-05-02T00:00:00.000Z
  })

// literals for GraphQLDate can be any integer or string value
// `setCreatedAt(createdAt:262915200000)`
// `setCreatedAt(createdAt:"1978-05-02")`
// `setCreatedAt(createdAt:"1978-05-02T00:00:00.000Z")`
const mutation = `
  mutation {
    setCreatedAt(createdAt:"1978-05-02")
  }
`

graphql(schema, query)
  .then(result => {
    const isoString = result.data.createdAt
    console.log(isoString) // 1978-05-02T00:00:00.000Z
  })

GraphQLEmailAddress

GraphQLEmailAddress uses the regular expression as per HTML5 specification to validate input email addresses.

GraphQLURL

GraphQLURL uses the regular expression by Diego Perini.

License

graphql-scalars is MIT-licensed.

You can’t perform that action at this time.