/
get-error-formater.js
49 lines (40 loc) · 1.3 KB
/
get-error-formater.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.getErrorFormatter = getErrorFormatter;
var _prettyError = _interopRequireDefault(require("pretty-error"));
function getErrorFormatter() {
const prettyError = new _prettyError.default();
const baseRender = prettyError.render;
prettyError.skipNodeFiles();
prettyError.skipPackage(`regenerator-runtime`, `graphql`, `core-js` // `static-site-generator-webpack-plugin`,
// `tapable`, // webpack
); // @ts-ignore the type defs in prettyError are wrong
prettyError.skip(traceLine => {
if (traceLine && traceLine.file === `asyncToGenerator.js`) return true;
return false;
});
prettyError.appendStyle({
"pretty-error": {
marginTop: 1
},
"pretty-error > header": {
background: `red`
},
"pretty-error > header > colon": {
color: `white`
}
});
if (process.env.FORCE_COLOR === `0`) {
prettyError.withoutColors();
}
prettyError.render = err => {
if (Array.isArray(err)) {
return err.map(e => prettyError.render(e)).join(`\n`);
}
let rendered = baseRender.call(prettyError, err);
if (`codeFrame` in err) rendered = `\n${err.codeFrame}\n${rendered}`;
return rendered;
};
return prettyError;
}