corrade-nucleus-nucleons
/pack-rat/003_pack_rat/pack-rat/node_modules/moment/src/lib/utils/deprecate.js |
@@ -0,0 +1,55 @@ |
import extend from './extend'; |
import { hooks } from './hooks'; |
import isUndefined from './is-undefined'; |
|
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 = []; |
var arg; |
for (var i = 0; i < arguments.length; i++) { |
arg = ''; |
if (typeof arguments[i] === 'object') { |
arg += '\n[' + i + '] '; |
for (var key in arguments[0]) { |
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; |