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
 |