Skip to content

meetuparchive/graphql-joda-types

Repository files navigation

graphql-joda-types

npm main Coverage Status

This is a small JavaScript library allowing you to use the date/time types from js-joda in your GraphQL resolvers.

(We recommend js-joda for all JavaScript date/time code, but if you disagree, consider graphql-iso-date instead of this package.)

Supported Types

The following js-joda types are currently supported:

Usage

Installation is straightforward:

yarn add graphql-joda-types   # or use npm

You can then write something like the following in your schema:

scalar LocalDate
scalar ZonedDateTime
scalar ZoneId

type User {
  id: ID!
  name: String
  birthday: LocalDate
  timezone: ZoneId
  createdAt: ZonedDateTime
  updatedAt: ZonedDateTime
}

And then in your GraphQL server:

import { LocalDate, ZonedDateTime, ZoneId } from 'graphql-joda-types';
import { makeExecutableSchema } from '@graphql-tools/schema';

const schema = makeExecutableSchema({
  resolvers: {
    LocalDate,
    ZonedDateTime,
    ZoneId,
    // ...
  },
});

You will then be able to use js-joda date and time types as you expect in your other resolvers: input types will automatically be parsed to the appropriate object types, and when your resolvers return these types to clients, they will be stringified properly.