Sha256: 652e4e315e5b64801f20dbf77f5c528d4f8bf54f0fd44e17b003b450cf85e4cd

Contents?: true

Size: 1.83 KB

Versions: 19

Compression:

Stored size: 1.83 KB

Contents

import { get, set } from './get-set';
import { setMonth } from '../units/month';
import { createDuration } from '../duration/create';
import { deprecateSimple } from '../utils/deprecate';
import { hooks } from '../utils/hooks';
import absRound from '../utils/abs-round';

// TODO: remove 'name' arg after deprecation is removed
function createAdder(direction, name) {
    return function (val, period) {
        var dur, tmp;
        //invert the arguments, but complain about it
        if (period !== null && !isNaN(+period)) {
            deprecateSimple(
                name,
                'moment().' +
                    name +
                    '(period, number) is deprecated. Please use moment().' +
                    name +
                    '(number, period). ' +
                    'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
            );
            tmp = val;
            val = period;
            period = tmp;
        }

        dur = createDuration(val, period);
        addSubtract(this, dur, direction);
        return this;
    };
}

export function addSubtract(mom, duration, isAdding, updateOffset) {
    var milliseconds = duration._milliseconds,
        days = absRound(duration._days),
        months = absRound(duration._months);

    if (!mom.isValid()) {
        // No op
        return;
    }

    updateOffset = updateOffset == null ? true : updateOffset;

    if (months) {
        setMonth(mom, get(mom, 'Month') + months * isAdding);
    }
    if (days) {
        set(mom, 'Date', get(mom, 'Date') + days * isAdding);
    }
    if (milliseconds) {
        mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
    }
    if (updateOffset) {
        hooks.updateOffset(mom, days || months);
    }
}

export var add = createAdder(1, 'add'),
    subtract = createAdder(-1, 'subtract');

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
card-mod-date-0.15.6 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.15.0 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.14.2 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.14.1 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.14.0 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.13.4 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.13.3 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.13.2 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.13.1 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.13.0 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.11.7 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.12.0 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.11.6 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.11.5 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.11.4 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.11.3 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.11.2 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.11.1 vendor/moment/src/lib/moment/add-subtract.js
card-mod-date-0.11.0 vendor/moment/src/lib/moment/add-subtract.js