UNPKG

2.38 kBJavaScriptView Raw
1"use strict";
2
3const reporter = require(`gatsby-cli/lib/reporter`);
4
5const stageCodeToReadableLabel = {
6 "build-javascript": `Generating JavaScript bundles`,
7 "build-html": `Generating SSR bundle`,
8 develop: `Generating development JavaScript bundle`
9};
10
11const transformWebpackError = (stage, webpackError) => {
12 var _webpackError$module, _webpackError$module2, _webpackError$error, _webpackError$error2;
13
14 return {
15 id: `98123`,
16 filePath: webpackError === null || webpackError === void 0 ? void 0 : (_webpackError$module = webpackError.module) === null || _webpackError$module === void 0 ? void 0 : _webpackError$module.resource,
17 location: (webpackError === null || webpackError === void 0 ? void 0 : (_webpackError$module2 = webpackError.module) === null || _webpackError$module2 === void 0 ? void 0 : _webpackError$module2.resource) && (webpackError === null || webpackError === void 0 ? void 0 : (_webpackError$error = webpackError.error) === null || _webpackError$error === void 0 ? void 0 : _webpackError$error.loc) ? {
18 start: webpackError.error.loc
19 } : undefined,
20 context: {
21 stage,
22 stageLabel: stageCodeToReadableLabel[stage],
23 message: (webpackError === null || webpackError === void 0 ? void 0 : (_webpackError$error2 = webpackError.error) === null || _webpackError$error2 === void 0 ? void 0 : _webpackError$error2.message) || (webpackError === null || webpackError === void 0 ? void 0 : webpackError.message)
24 } // We use original error to display stack trace for the most part.
25 // In case of webpack error stack will include internals of webpack
26 // or one of loaders (for example babel-loader) and doesn't provide
27 // much value to user, so it's purposely omitted.
28 // error: webpackError?.error || webpackError,
29
30 };
31};
32
33exports.structureWebpackErrors = (stage, webpackError) => {
34 if (Array.isArray(webpackError)) {
35 return webpackError.map(e => transformWebpackError(stage, e));
36 }
37
38 return transformWebpackError(stage, webpackError);
39};
40
41exports.reportWebpackWarnings = stats => {
42 stats.compilation.warnings.forEach(webpackWarning => {
43 if (webpackWarning.warning) {
44 // grab inner Exception if it exists
45 reporter.warn(webpackWarning.warning.toString());
46 } else {
47 reporter.warn(webpackWarning.message);
48 }
49 });
50};
51//# sourceMappingURL=webpack-error-utils.js.map
\No newline at end of file