UNPKG

foop

Version:

interfaces that describe their intentions.

39 lines (37 loc) 3.63 kB
var isNil = require('../is/nullOrUndefined') var isDate = require('../is/date') var isNumber = require('../is/number') var isString = require('../is/string') var isArray = require('../is/array') var newDate = require('../construct/date') /** * convert values to dates * @since 5.0.0-beta.7 * * @param {Date | number | string | Array<*> | *} date value to cast to a Date * @return {Date} it's a date! * * @example * toDate() * //=> new Date() * * toDate('october-31-1960') * //=> Date.parse('october-31-1960') * * toDate(1000000) * //=> new Date(1000000) * * // year, month [, date, hours, minutes, seconds, milliseconds] * toDate([2014, 1, 1]) * //=> new Date(2014, 1, 1) */ module.exports = function toDate(date) { // this is fallback too // if (isNil(date)) return newDate() if (isDate(date)) { return date } if (isNumber(date)) { return newDate(date) } if (isString(date)) { return Date.parse(date) } if (isArray(date)) { return newDate.apply(this, date) } else { return newDate() } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9EYXRlLmpzIiwic291cmNlcyI6WyJ0b0RhdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNOaWwgPSByZXF1aXJlKCcuLi9pcy9udWxsT3JVbmRlZmluZWQnKVxuY29uc3QgaXNEYXRlID0gcmVxdWlyZSgnLi4vaXMvZGF0ZScpXG5jb25zdCBpc051bWJlciA9IHJlcXVpcmUoJy4uL2lzL251bWJlcicpXG5jb25zdCBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2lzL3N0cmluZycpXG5jb25zdCBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaXMvYXJyYXknKVxuY29uc3QgbmV3RGF0ZSA9IHJlcXVpcmUoJy4uL2NvbnN0cnVjdC9kYXRlJylcblxuLyoqXG4gKiBjb252ZXJ0IHZhbHVlcyB0byBkYXRlc1xuICogQHNpbmNlIDUuMC4wLWJldGEuN1xuICpcbiAqIEBwYXJhbSB7RGF0ZSB8IG51bWJlciB8IHN0cmluZyB8IEFycmF5PCo+IHwgKn0gZGF0ZSB2YWx1ZSB0byBjYXN0IHRvIGEgRGF0ZVxuICogQHJldHVybiB7RGF0ZX0gaXQncyBhIGRhdGUhXG4gKlxuICogQGV4YW1wbGVcbiAqICAgIHRvRGF0ZSgpXG4gKiAgICAvLz0+IG5ldyBEYXRlKClcbiAqXG4gKiAgICB0b0RhdGUoJ29jdG9iZXItMzEtMTk2MCcpXG4gKiAgICAvLz0+IERhdGUucGFyc2UoJ29jdG9iZXItMzEtMTk2MCcpXG4gKlxuICogICAgdG9EYXRlKDEwMDAwMDApXG4gKiAgICAvLz0+IG5ldyBEYXRlKDEwMDAwMDApXG4gKlxuICogICAgLy8geWVhciwgbW9udGggWywgZGF0ZSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1pbGxpc2Vjb25kc11cbiAqICAgIHRvRGF0ZShbMjAxNCwgMSwgMV0pXG4gKiAgICAvLz0+IG5ldyBEYXRlKDIwMTQsIDEsIDEpXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gdG9EYXRlKGRhdGUpIHtcbiAgLy8gdGhpcyBpcyBmYWxsYmFjayB0b29cbiAgLy8gaWYgKGlzTmlsKGRhdGUpKSByZXR1cm4gbmV3RGF0ZSgpXG4gIGlmIChpc0RhdGUoZGF0ZSkpIHJldHVybiBkYXRlXG4gIGlmIChpc051bWJlcihkYXRlKSkgcmV0dXJuIG5ld0RhdGUoZGF0ZSlcbiAgaWYgKGlzU3RyaW5nKGRhdGUpKSByZXR1cm4gRGF0ZS5wYXJzZShkYXRlKVxuICBpZiAoaXNBcnJheShkYXRlKSkgcmV0dXJuIG5ld0RhdGUuYXBwbHkodGhpcywgZGF0ZSlcbiAgZWxzZSByZXR1cm4gbmV3RGF0ZSgpXG59XG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQztBQUM5Q0EsR0FBSyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3BDQSxHQUFLLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7QUFDeENBLEdBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUN4Q0EsR0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0FBQ3RDQSxHQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QjVDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxNQUFNLENBQUMsSUFBSSxFQUFFOzs7RUFHckMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQSxPQUFPLElBQUksRUFBQTtFQUM3QixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFBLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFBO0VBQ3hDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFBO0VBQzNDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUEsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBQTtPQUM5QyxFQUFBLE9BQU8sT0FBTyxFQUFFLEVBQUE7Q0FDdEI7In0=