Neatly Punctuated Musings

    @jwdotjs/graphql-custom-datetype

    0.3.1 • Public • Published

    Custom Date Type for GraphQL

    This is a custom date type implementation for GraphQL. GraphQL does not contain a native date type but it does allow you to specify custom scalar types that serializes to strings, or other scalar types, but conforms to certain standards.

    This date type accepts and outputs this format: '2015-07-24T13:15:34.814Z' which is commonly used in JSON since it is the default format used by JavaScript when serializing dates to JSON.

    npm version Build Status

    Usage

    To use this type you in your GraphQL schema you simply install this module with npm install --save graphql-custom-datetype and use it. In the minimal example below we expose the query now that simply returns the current date and time.

    The important part is that your resolve function needs to return a JavaScript Date object.

    // examples/now.js
    
    import {
      graphql,
      GraphQLSchema,
      GraphQLObjectType,
    } from 'graphql';
    import CustomGraphQLDateType from '..';
    
    let schema = new GraphQLSchema({
      query: new GraphQLObjectType({
        name: 'Query',
        fields: {
          now: {
            type: CustomGraphQLDateType,
            // Resolve fields with the custom date type to a valid Date object
            resolve: () => new Date()
          }
        }
      })
    });
    
    graphql(schema, "{ now }")
      .then(console.log)
      .catch(console.error);

    Running this prints the current date:

    $ babel-node examples/now.js
    { data: { now: '2015-07-24T13:23:15.580Z' } }

    Keywords

    none

    Install

    npm i @jwdotjs/graphql-custom-datetype

    DownloadsWeekly Downloads

    3

    Version

    0.3.1

    License

    MIT

    Last publish

    Collaborators

    • jwdotjs