dc075d1c109914d75ca4b8e02e4bfc5886bbd275647f02cd179360e304a6ea3241fd9c4f09d2167d599b0091dcea52924341795c17b181a4df6cdfd2893b7b 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = deprecationWarning;
  6. const warnings = new Set();
  7. function deprecationWarning(oldName, newName, prefix = "", cacheKey = oldName) {
  8. if (warnings.has(cacheKey)) return;
  9. warnings.add(cacheKey);
  10. const {
  11. internal,
  12. trace
  13. } = captureShortStackTrace(1, 2);
  14. if (internal) {
  15. return;
  16. }
  17. console.warn(`${prefix}\`${oldName}\` has been deprecated, please migrate to \`${newName}\`\n${trace}`);
  18. }
  19. function captureShortStackTrace(skip, length) {
  20. const {
  21. stackTraceLimit,
  22. prepareStackTrace
  23. } = Error;
  24. let stackTrace;
  25. Error.stackTraceLimit = 1 + skip + length;
  26. Error.prepareStackTrace = function (err, stack) {
  27. stackTrace = stack;
  28. };
  29. new Error().stack;
  30. Error.stackTraceLimit = stackTraceLimit;
  31. Error.prepareStackTrace = prepareStackTrace;
  32. if (!stackTrace) return {
  33. internal: false,
  34. trace: ""
  35. };
  36. const shortStackTrace = stackTrace.slice(1 + skip, 1 + skip + length);
  37. return {
  38. internal: /[\\/]@babel[\\/]/.test(shortStackTrace[1].getFileName()),
  39. trace: shortStackTrace.map(frame => ` at ${frame}`).join("\n")
  40. };
  41. }
  42. //# sourceMappingURL=deprecationWarning.js.map