Sha256: 6408d3af5f6fb6d2c905cf5db189fd406bf3fdd707d25c223d090d1782b5ea55

Contents?: true

Size: 1.87 KB

Versions: 19

Compression:

Stored size: 1.87 KB

Contents

import extend from './extend';
import { hooks } from './hooks';
import hasOwnProp from './has-own-prop';

function warn(msg) {
    if (
        hooks.suppressDeprecationWarnings === false &&
        typeof console !== 'undefined' &&
        console.warn
    ) {
        console.warn('Deprecation warning: ' + msg);
    }
}

export function deprecate(msg, fn) {
    var firstTime = true;

    return extend(function () {
        if (hooks.deprecationHandler != null) {
            hooks.deprecationHandler(null, msg);
        }
        if (firstTime) {
            var args = [],
                arg,
                i,
                key;
            for (i = 0; i < arguments.length; i++) {
                arg = '';
                if (typeof arguments[i] === 'object') {
                    arg += '\n[' + i + '] ';
                    for (key in arguments[0]) {
                        if (hasOwnProp(arguments[0], key)) {
                            arg += key + ': ' + arguments[0][key] + ', ';
                        }
                    }
                    arg = arg.slice(0, -2); // Remove trailing comma and space
                } else {
                    arg = arguments[i];
                }
                args.push(arg);
            }
            warn(
                msg +
                    '\nArguments: ' +
                    Array.prototype.slice.call(args).join('') +
                    '\n' +
                    new Error().stack
            );
            firstTime = false;
        }
        return fn.apply(this, arguments);
    }, fn);
}

var deprecations = {};

export function deprecateSimple(name, msg) {
    if (hooks.deprecationHandler != null) {
        hooks.deprecationHandler(name, msg);
    }
    if (!deprecations[name]) {
        warn(msg);
        deprecations[name] = true;
    }
}

hooks.suppressDeprecationWarnings = false;
hooks.deprecationHandler = null;

Version data entries

19 entries across 19 versions & 1 rubygems

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