summaryrefslogtreecommitdiff
path: root/node_modules/moment/src/lib/create/check-overflow.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/moment/src/lib/create/check-overflow.js')
-rw-r--r--node_modules/moment/src/lib/create/check-overflow.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/node_modules/moment/src/lib/create/check-overflow.js b/node_modules/moment/src/lib/create/check-overflow.js
new file mode 100644
index 0000000..ee08812
--- /dev/null
+++ b/node_modules/moment/src/lib/create/check-overflow.js
@@ -0,0 +1,57 @@
+import { daysInMonth } from '../units/month';
+import {
+ YEAR,
+ MONTH,
+ DATE,
+ HOUR,
+ MINUTE,
+ SECOND,
+ MILLISECOND,
+ WEEK,
+ WEEKDAY,
+} from '../units/constants';
+import getParsingFlags from '../create/parsing-flags';
+
+export default function checkOverflow(m) {
+ var overflow,
+ a = m._a;
+
+ if (a && getParsingFlags(m).overflow === -2) {
+ overflow =
+ a[MONTH] < 0 || a[MONTH] > 11
+ ? MONTH
+ : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])
+ ? DATE
+ : a[HOUR] < 0 ||
+ a[HOUR] > 24 ||
+ (a[HOUR] === 24 &&
+ (a[MINUTE] !== 0 ||
+ a[SECOND] !== 0 ||
+ a[MILLISECOND] !== 0))
+ ? HOUR
+ : a[MINUTE] < 0 || a[MINUTE] > 59
+ ? MINUTE
+ : a[SECOND] < 0 || a[SECOND] > 59
+ ? SECOND
+ : a[MILLISECOND] < 0 || a[MILLISECOND] > 999
+ ? MILLISECOND
+ : -1;
+
+ if (
+ getParsingFlags(m)._overflowDayOfYear &&
+ (overflow < YEAR || overflow > DATE)
+ ) {
+ overflow = DATE;
+ }
+ if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
+ overflow = WEEK;
+ }
+ if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
+ overflow = WEEKDAY;
+ }
+
+ getParsingFlags(m).overflow = overflow;
+ }
+
+ return m;
+}