44 lines
		
	
	
		
			815 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			815 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "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; |