UNPKG

@cran/gql.core

Version:

Cran/GraphQL Core Utilities

48 lines (47 loc) 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TstzScalar = exports.DateScalar = void 0; const createScalar_1 = require("../utilities/createScalar"); const allowed = { epoch: true, infinity: true, "-infinity": true, now: true, today: true, tomorrow: true, yesterday: true, }; function asDate(value, invalid) { const date = new Date(value); if (isNaN(date.valueOf())) { invalid(); } return `${date.getUTCFullYear()}-${date.getUTCMonth().toString().padStart(2, "0")}-${date.getDate().toString().padStart(2, "0")}`; } exports.DateScalar = (0, createScalar_1.createScalar)("date", "date (no time of day)", { string(value, invalid) { if (allowed[value.toLowerCase()]) { return value; } return asDate(value, invalid); }, number: asDate, } // serialized as YYYY-MM-DD ); function asTstz(value, invalid) { const date = new Date(value); if (isNaN(date.valueOf())) { return invalid(); } return date.toISOString(); } exports.TstzScalar = (0, createScalar_1.createScalar)("tstz", "times of day only, with time zone", { string(value, invalid) { if (allowed[value.toLowerCase()]) { return value; } return asTstz(value, invalid); }, number: asTstz, });