orm/src/schema/types/Date.js

/**
 * @module flitter-orm/src/schema/types/Date
 */

const Type = require('../Type')

/**
 * Schema type representing an ISODate value.
 * @extends {module:flitter-orm/src/schema/Type~Type}
 */
class DateType extends Type {
    /**
     * Determine if the specified value can be cast
     * to a JavaScript Date instance.
     * @param {*} value
     * @returns {boolean}
     */
    static validate(value) {
        if ( value instanceof Date ) return true
        else return (new Date(value)).toString() !== 'Invalid Date'
    }

    /**
     * Casts the specified value to a JavaScript Date instance.
     * @param {*} value
     * @returns {Date}
     */
    static cast(value) {
        return new Date(value)
    }
}

module.exports = exports = DateType