import extend from '../utils/extend';
|
import { createUTC } from './utc';
|
import getParsingFlags from '../create/parsing-flags';
|
import some from '../utils/some';
|
|
export function isValid(m) {
|
if (m._isValid == null) {
|
var flags = getParsingFlags(m),
|
parsedParts = some.call(flags.parsedDateParts, function (i) {
|
return i != null;
|
}),
|
isNowValid =
|
!isNaN(m._d.getTime()) &&
|
flags.overflow < 0 &&
|
!flags.empty &&
|
!flags.invalidEra &&
|
!flags.invalidMonth &&
|
!flags.invalidWeekday &&
|
!flags.weekdayMismatch &&
|
!flags.nullInput &&
|
!flags.invalidFormat &&
|
!flags.userInvalidated &&
|
(!flags.meridiem || (flags.meridiem && parsedParts));
|
|
if (m._strict) {
|
isNowValid =
|
isNowValid &&
|
flags.charsLeftOver === 0 &&
|
flags.unusedTokens.length === 0 &&
|
flags.bigHour === undefined;
|
}
|
|
if (Object.isFrozen == null || !Object.isFrozen(m)) {
|
m._isValid = isNowValid;
|
} else {
|
return isNowValid;
|
}
|
}
|
return m._isValid;
|
}
|
|
export function createInvalid(flags) {
|
var m = createUTC(NaN);
|
if (flags != null) {
|
extend(getParsingFlags(m), flags);
|
} else {
|
getParsingFlags(m).userInvalidated = true;
|
}
|
|
return m;
|
}
|