Error.js 781 B

1234567891011121314151617181920212223242526272829
  1. const STRIP_FILENAME_RE = /^[^:]+: /;
  2. const format = err => {
  3. if (err instanceof SyntaxError) {
  4. err.name = "SyntaxError";
  5. err.message = err.message.replace(STRIP_FILENAME_RE, "");
  6. err.hideStack = true;
  7. } else if (err instanceof TypeError) {
  8. err.name = null;
  9. err.message = err.message.replace(STRIP_FILENAME_RE, "");
  10. err.hideStack = true;
  11. }
  12. return err;
  13. };
  14. class LoaderError extends Error {
  15. constructor(err) {
  16. super();
  17. const {
  18. name,
  19. message,
  20. codeFrame,
  21. hideStack
  22. } = format(err);
  23. this.name = "BabelLoaderError";
  24. this.message = `${name ? `${name}: ` : ""}${message}\n\n${codeFrame}\n`;
  25. this.hideStack = hideStack;
  26. Error.captureStackTrace(this, this.constructor);
  27. }
  28. }
  29. module.exports = LoaderError;