"use strict";

const either = require("@validatem/either");
const isString = require("@validatem/is-string");
const isDate = require("@validatem/is-date");
const isBoolean = require("@validatem/is-boolean");
const isNumber = require("@validatem/is-number");
const wrapError = require("@validatem/wrap-error");

// FIXME: Add null, but not undefined
module.exports = wrapError("Must be a literal value", either([
	isString,
	isNumber, // FIXME: Disallow Infinity?
	isBoolean,
	isDate
]));
