Sha256: 8f767e7f9533f79ddc3cdf6dd7ccc9637f62520b650ffa686e3ec4880119fd84
Contents?: true
Size: 1.13 KB
Versions: 19
Compression:
Stored size: 1.13 KB
Contents
import hasOwnProp from '../utils/has-own-prop'; import toInt from '../utils/to-int'; import indexOf from '../utils/index-of'; import { createDuration } from './create'; var ordering = [ 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond', ]; export default function isDurationValid(m) { var key, unitHasDecimal = false, i; for (key in m) { if ( hasOwnProp(m, key) && !( indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])) ) ) { return false; } } for (i = 0; i < ordering.length; ++i) { if (m[ordering[i]]) { if (unitHasDecimal) { return false; // only allow non-integers for smallest unit } if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { unitHasDecimal = true; } } } return true; } export function isValid() { return this._isValid; } export function createInvalid() { return createDuration(NaN); }
Version data entries
19 entries across 19 versions & 1 rubygems