| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 'use strict'
- let Container = require('./container')
- let { my } = require('./symbols')
- class Warning {
- constructor(text, opts = {}) {
- this.type = 'warning'
- this.text = text
- if (opts.node && opts.node.source) {
- if (!opts.node[my]) {
- // The node comes from another PostCSS copy in node_modules, so it does
- // not have this copy’s methods. Container#normalize() rebuilds such
- // nodes on insert, but a node passed straight to Result#warn() never
- // goes through it.
- Container.rebuild(opts.node)
- }
- 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
|