38 lines
		
	
	
		
			739 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			739 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict'
 | |
| 
 | |
| class Warning {
 | |
|   constructor(text, opts = {}) {
 | |
|     this.type = 'warning'
 | |
|     this.text = text
 | |
| 
 | |
|     if (opts.node && opts.node.source) {
 | |
|       let range = opts.node.rangeBy(opts)
 | |
|       this.line = range.start.line
 | |
|       this.column = range.start.column
 | |
|       this.endLine = range.end.line
 | |
|       this.endColumn = range.end.column
 | |
|     }
 | |
| 
 | |
|     for (let opt in opts) this[opt] = opts[opt]
 | |
|   }
 | |
| 
 | |
|   toString() {
 | |
|     if (this.node) {
 | |
|       return this.node.error(this.text, {
 | |
|         index: this.index,
 | |
|         plugin: this.plugin,
 | |
|         word: this.word
 | |
|       }).message
 | |
|     }
 | |
| 
 | |
|     if (this.plugin) {
 | |
|       return this.plugin + ': ' + this.text
 | |
|     }
 | |
| 
 | |
|     return this.text
 | |
|   }
 | |
| }
 | |
| 
 | |
| module.exports = Warning
 | |
| Warning.default = Warning
 |