@cran/lib.gql.core
Version:
GQL Core Functionality
32 lines (31 loc) • 862 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DateScalar = void 0;
const utilities_1 = require("../utilities");
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, utilities_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
);