UNPKG

sugar

Version:

A Javascript utility library for working with native objects.

32 lines (25 loc) 927 B
'use strict'; var DateUnitIndexes = require('../var/DateUnitIndexes'), isDefined = require('../../common/internal/isDefined'), getDateParam = require('./getDateParam'), iterateOverDateUnits = require('./iterateOverDateUnits'); var DAY_INDEX = DateUnitIndexes.DAY_INDEX; function iterateOverDateParams(params, fn, startIndex, endIndex) { function run(name, unit, i) { var val = getDateParam(params, name); if (isDefined(val)) { fn(name, val, unit, i); } } iterateOverDateUnits(function (unit, i) { var result = run(unit.name, unit, i); if (result !== false && i === DAY_INDEX) { // Check for "weekday", which has a distinct meaning // in the context of setting a date, but has the same // meaning as "day" as a unit of time. result = run('weekday', unit, i); } return result; }, startIndex, endIndex); } module.exports = iterateOverDateParams;