Skip to content

Commit b130031

Browse files
refactor: move CssLoaderError into own file
1 parent c012f9b commit b130031

File tree

2 files changed

+42
-39
lines changed

2 files changed

+42
-39
lines changed

lib/CssLoaderError.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var formatCodeFrame = require("babel-code-frame");
2+
3+
function formatMessage(message, loc, source) {
4+
var formatted = message;
5+
if (loc) {
6+
formatted = formatted + " (" + loc.line + ":" + loc.column + ")";
7+
}
8+
if (loc && source) {
9+
formatted =
10+
formatted + "\n\n" + formatCodeFrame(source, loc.line, loc.column) + "\n";
11+
}
12+
return formatted;
13+
}
14+
15+
function CssLoaderError(name, message, loc, source, error) {
16+
Error.call(this);
17+
Error.captureStackTrace(this, CssLoaderError);
18+
this.name = name;
19+
this.error = error;
20+
this.message = formatMessage(message, loc, source);
21+
this.hideStack = true;
22+
}
23+
24+
CssLoaderError.prototype = Object.create(Error.prototype);
25+
CssLoaderError.prototype.constructor = CssLoaderError;
26+
27+
module.exports = CssLoaderError;

lib/processCss.js

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
MIT License http://www.opensource.org/licenses/mit-license.php
33
Author Tobias Koppers @sokra
44
*/
5-
var formatCodeFrame = require("babel-code-frame");
65
var postcss = require("postcss");
76
var plugin = require("./plugin");
7+
var CssLoaderError = require("./CssLoaderError");
88

99
module.exports = function processCss(inputSource, inputMap, options, callback) {
1010
var query = options.query;
@@ -41,43 +41,19 @@ module.exports = function processCss(inputSource, inputMap, options, callback) {
4141
urlItemRegExp: /___CSS_LOADER_URL___([0-9]+)___/
4242
});
4343
})
44-
.catch(function(err) {
45-
if (err.name === "CssSyntaxError") {
46-
var wrappedError = new CSSLoaderError(
47-
"Syntax Error",
48-
err.reason,
49-
err.line != null && err.column != null
50-
? { line: err.line, column: err.column }
51-
: null,
52-
err.input.source
53-
);
54-
callback(wrappedError);
55-
} else {
56-
callback(err);
57-
}
44+
.catch(function(error) {
45+
const preparedError =
46+
error.name === "CssSyntaxError"
47+
? new CssLoaderError(
48+
"Syntax Error",
49+
error.reason,
50+
error.line != null && error.column != null
51+
? { line: error.line, column: error.column }
52+
: null,
53+
error.input.source
54+
)
55+
: error;
56+
57+
callback(preparedError);
5858
});
5959
};
60-
61-
function formatMessage(message, loc, source) {
62-
var formatted = message;
63-
if (loc) {
64-
formatted = formatted + " (" + loc.line + ":" + loc.column + ")";
65-
}
66-
if (loc && source) {
67-
formatted =
68-
formatted + "\n\n" + formatCodeFrame(source, loc.line, loc.column) + "\n";
69-
}
70-
return formatted;
71-
}
72-
73-
function CSSLoaderError(name, message, loc, source, error) {
74-
Error.call(this);
75-
Error.captureStackTrace(this, CSSLoaderError);
76-
this.name = name;
77-
this.error = error;
78-
this.message = formatMessage(message, loc, source);
79-
this.hideStack = true;
80-
}
81-
82-
CSSLoaderError.prototype = Object.create(Error.prototype);
83-
CSSLoaderError.prototype.constructor = CSSLoaderError;

0 commit comments

Comments
 (0)