You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
815 B
44 lines
815 B
3 years ago
|
"use strict";
|
||
|
|
||
|
/**
|
||
|
* **PostCSS Syntax Error**
|
||
|
*
|
||
|
* Loader wrapper for postcss syntax errors
|
||
|
*
|
||
|
* @class SyntaxError
|
||
|
* @extends Error
|
||
|
*
|
||
|
* @param {Object} err CssSyntaxError
|
||
|
*/
|
||
|
class SyntaxError extends Error {
|
||
|
constructor(error) {
|
||
|
super(error);
|
||
|
const {
|
||
|
line,
|
||
|
column,
|
||
|
reason,
|
||
|
plugin,
|
||
|
file
|
||
|
} = error;
|
||
|
this.name = "SyntaxError";
|
||
|
this.message = `${this.name}\n\n`;
|
||
|
|
||
|
if (typeof line !== "undefined") {
|
||
|
this.message += `(${line}:${column}) `;
|
||
|
}
|
||
|
|
||
|
this.message += plugin ? `${plugin}: ` : "";
|
||
|
this.message += file ? `${file} ` : "<css input> ";
|
||
|
this.message += `${reason}`;
|
||
|
const code = error.showSourceCode();
|
||
|
|
||
|
if (code) {
|
||
|
this.message += `\n\n${code}\n`;
|
||
|
}
|
||
|
|
||
|
this.stack = false;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
module.exports = SyntaxError;
|