mvom
Version:
Multivalue Object Mapper
40 lines (36 loc) • 1.16 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _dateFns = require("date-fns");
var _constants = require("../constants");
var _dataTransformers = require("../dataTransformers");
var _BaseScalarType = _interopRequireDefault(require("./BaseScalarType"));
/** ISOTime Schema Type */
class ISOTimeType extends _BaseScalarType.default {
/** Data transformer */
constructor(definition, options = {}) {
super(definition, options);
const {
dbFormat
} = definition;
this.dataTransformer = new _dataTransformers.ISOTimeDataTransformer(dbFormat);
}
/** ISOTimeType data type validator */
validateType = value => {
if (value == null) {
return true;
}
if (typeof value !== 'string') {
return false;
}
return (0, _dateFns.isValid)(this.parseISOTime(value));
};
/** Parse ISOTime string into date */
parseISOTime(value) {
return (0, _dateFns.parse)(value, _constants.ISOTimeFormat, new Date());
}
}
var _default = exports.default = ISOTimeType;