9feafa8023c9ed285d76a0f9cdc3b3d3fb27c1654327cb281d51aa9e72c13ea55c2630c83b9595456f6739dee642c626181c629dd4966e7ace62b5396f5d38 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import extend from './extend';
  2. import { hooks } from './hooks';
  3. import isUndefined from './is-undefined';
  4. function warn(msg) {
  5. if (hooks.suppressDeprecationWarnings === false &&
  6. (typeof console !== 'undefined') && console.warn) {
  7. console.warn('Deprecation warning: ' + msg);
  8. }
  9. }
  10. export function deprecate(msg, fn) {
  11. var firstTime = true;
  12. return extend(function () {
  13. if (hooks.deprecationHandler != null) {
  14. hooks.deprecationHandler(null, msg);
  15. }
  16. if (firstTime) {
  17. warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack);
  18. firstTime = false;
  19. }
  20. return fn.apply(this, arguments);
  21. }, fn);
  22. }
  23. var deprecations = {};
  24. export function deprecateSimple(name, msg) {
  25. if (hooks.deprecationHandler != null) {
  26. hooks.deprecationHandler(name, msg);
  27. }
  28. if (!deprecations[name]) {
  29. warn(msg);
  30. deprecations[name] = true;
  31. }
  32. }
  33. hooks.suppressDeprecationWarnings = false;
  34. hooks.deprecationHandler = null;