@jcm/nexus-plugin-datetime
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

@jcm/nexus-plugin-datetime

Patreon Logo
Discord Logo

This plugin adds the field method dateTime(fieldName, fieldConfig) to the Nexus Schema Builder, which can be used to create date-time fields with a few helpful methods.

Sample usage:

const User = objectType({
  name: 'User',
  definition(t) {
    // ...
    t.dateTime('createdAt')
    // ...
  },
})

With the above code, the following schema will be generated:

"""
Represents an ISO datetime that can be formatted in other formats
"""
type DateTimeField implements DateTimeFieldInterface {
  formatted(
    format: String!

    """
    Timezone to format the ISO date, defaults to UTC
    """
    timezone: String
  ): String!
  isAfter(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
  isBefore(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
  isBetween(
    """
    Defaults to the end of the current day if not provided
    """
    isoEnd: String

    """
    Defaults to the start of the current day if not provided
    """
    isoStart: String
  ): Boolean!
  iso: String!
  isSame(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
  isSameOrAfter(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
  isSameOrBefore(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
}

"""
A object that represents an ISO datetime
"""
interface DateTimeFieldInterface {
  formatted(
    format: String!

    """
    Timezone to format the ISO date, defaults to UTC
    """
    timezone: String
  ): String!
  isAfter(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
  isBefore(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
  isBetween(
    """
    Defaults to the end of the current day if not provided
    """
    isoEnd: String

    """
    Defaults to the start of the current day if not provided
    """
    isoStart: String
  ): Boolean!
  iso: String!
  isSame(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
  isSameOrAfter(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
  isSameOrBefore(
    """
    Defaults to the current time if not provided
    """
    iso: String
  ): Boolean!
}

type User {
  # ...
  createdAt: DateTimeField!
}

# ...

Dependencies (1)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i @jcm/nexus-plugin-datetime

    Weekly Downloads

    1

    Version

    0.2.0

    License

    MIT

    Unpacked Size

    39.3 kB

    Total Files

    11

    Last publish

    Collaborators

    • jonathancardoso