graphql-datetime-with-offset
graphql-datetime-with-offset is a scalar type to be used with graphQL.js. From the client it accepts Dates in ISO 8601 format and parses them to { date: Date, offset: Number } format. It uses Luxon under the hood, and any ISO 8601 date specified should work with this scalar.
A basic understanding of GraphQL and of the graphQL.js implementation is needed to provide context for this library.
Getting started
Install graphql-datetime-with-offset
using yarn
yarn add graphql-datetime-with-offset
Or using npm
npm install --save graphql-datetime-with-offset
v2
Added option of using Luxon instance directly as GraphQLDateTimeLuxon
. Also means there's a breaking change where you have to require GraphQLDateTimeWithOffset
like this now:
const { GraphQLDateTimeWithOffset } = require('graphql-datetime-with-offset');
and if you want to use the Luxon instance directly:
const { GraphQLDateTimeLuxon } = require('graphql-datetime-with-offset');
Examples
This is an example of how to use it, also available in the /examples folder:
const ApolloServer gql = GraphQLDateTimeWithOffset = ; const data = events: title: 'Meeting with Singapore Office' dateWithOffset: date: '2019-07-18T08:00:00.000Z' offset: 480 title: 'Meeting with New York Office' dateWithOffset: date: '2019-07-18T16:00:00.000Z' offset: -300 ; const typeDefs = gql` scalar GraphQLDateTimeWithOffset type Event { title: String dateWithOffset: GraphQLDateTimeWithOffset } type Query { events: [Event] } type Mutation { addEvent( title: String dateWithOffset: GraphQLDateTimeWithOffset ): Event }`; const resolvers = GraphQLDateTimeWithOffset Query: dataevents Mutation: { dataevents = ...dataevents args ; return args; } ; const server = typeDefs resolvers ; server;