1 import extend from '../utils/extend';
2 import { createUTC } from './utc';
3 import getParsingFlags from '../create/parsing-flags';
4 import some from '../utils/some';
6 export function isValid(m) {
7 if (m._isValid == null) {
8 var flags = getParsingFlags(m);
9 var parsedParts = some.call(flags.parsedDateParts, function (i) {
12 m._isValid = !isNaN(m._d.getTime()) &&
15 !flags.invalidMonth &&
16 !flags.invalidWeekday &&
18 !flags.invalidFormat &&
19 !flags.userInvalidated &&
20 (!flags.meridiem || (flags.meridiem && parsedParts));
23 m._isValid = m._isValid &&
24 flags.charsLeftOver === 0 &&
25 flags.unusedTokens.length === 0 &&
26 flags.bigHour === undefined;
32 export function createInvalid (flags) {
33 var m = createUTC(NaN);
35 extend(getParsingFlags(m), flags);
38 getParsingFlags(m).userInvalidated = true;