123 lines
9.2 KiB
JavaScript
123 lines
9.2 KiB
JavaScript
|
'use strict';
|
|||
|
|
|||
|
exports.__esModule = true;
|
|||
|
|
|||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|||
|
|
|||
|
/**
|
|||
|
* Represents a plugin’s warning. It can be created using {@link Node#warn}.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* if ( decl.important ) {
|
|||
|
* decl.warn(result, 'Avoid !important', { word: '!important' });
|
|||
|
* }
|
|||
|
*/
|
|||
|
var Warning = function () {
|
|||
|
|
|||
|
/**
|
|||
|
* @param {string} text - warning message
|
|||
|
* @param {Object} [opts] - warning options
|
|||
|
* @param {Node} opts.node - CSS node that caused the warning
|
|||
|
* @param {string} opts.word - word in CSS source that caused the warning
|
|||
|
* @param {number} opts.index - index in CSS node string that caused
|
|||
|
* the warning
|
|||
|
* @param {string} opts.plugin - name of the plugin that created
|
|||
|
* this warning. {@link Result#warn} fills
|
|||
|
* this property automatically.
|
|||
|
*/
|
|||
|
function Warning(text) {
|
|||
|
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|||
|
|
|||
|
_classCallCheck(this, Warning);
|
|||
|
|
|||
|
/**
|
|||
|
* @member {string} - Type to filter warnings from
|
|||
|
* {@link Result#messages}. Always equal
|
|||
|
* to `"warning"`.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* const nonWarning = result.messages.filter(i => i.type !== 'warning')
|
|||
|
*/
|
|||
|
this.type = 'warning';
|
|||
|
/**
|
|||
|
* @member {string} - The warning message.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* warning.text //=> 'Try to avoid !important'
|
|||
|
*/
|
|||
|
this.text = text;
|
|||
|
|
|||
|
if (opts.node && opts.node.source) {
|
|||
|
var pos = opts.node.positionBy(opts);
|
|||
|
/**
|
|||
|
* @member {number} - Line in the input file
|
|||
|
* with this warning’s source
|
|||
|
*
|
|||
|
* @example
|
|||
|
* warning.line //=> 5
|
|||
|
*/
|
|||
|
this.line = pos.line;
|
|||
|
/**
|
|||
|
* @member {number} - Column in the input file
|
|||
|
* with this warning’s source.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* warning.column //=> 6
|
|||
|
*/
|
|||
|
this.column = pos.column;
|
|||
|
}
|
|||
|
|
|||
|
for (var opt in opts) {
|
|||
|
this[opt] = opts[opt];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Returns a warning position and message.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important'
|
|||
|
*
|
|||
|
* @return {string} warning position and message
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
Warning.prototype.toString = function toString() {
|
|||
|
if (this.node) {
|
|||
|
return this.node.error(this.text, {
|
|||
|
plugin: this.plugin,
|
|||
|
index: this.index,
|
|||
|
word: this.word
|
|||
|
}).message;
|
|||
|
} else if (this.plugin) {
|
|||
|
return this.plugin + ': ' + this.text;
|
|||
|
} else {
|
|||
|
return this.text;
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
/**
|
|||
|
* @memberof Warning#
|
|||
|
* @member {string} plugin - The name of the plugin that created
|
|||
|
* it will fill this property automatically.
|
|||
|
* this warning. When you call {@link Node#warn}
|
|||
|
*
|
|||
|
* @example
|
|||
|
* warning.plugin //=> 'postcss-important'
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @memberof Warning#
|
|||
|
* @member {Node} node - Contains the CSS node that caused the warning.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* warning.node.toString() //=> 'color: white !important'
|
|||
|
*/
|
|||
|
|
|||
|
return Warning;
|
|||
|
}();
|
|||
|
|
|||
|
exports.default = Warning;
|
|||
|
module.exports = exports['default'];
|
|||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndhcm5pbmcuZXM2Il0sIm5hbWVzIjpbIldhcm5pbmciLCJ0ZXh0Iiwib3B0cyIsInR5cGUiLCJub2RlIiwic291cmNlIiwicG9zIiwicG9zaXRpb25CeSIsImxpbmUiLCJjb2x1bW4iLCJvcHQiLCJ0b1N0cmluZyIsImVycm9yIiwicGx1Z2luIiwiaW5kZXgiLCJ3b3JkIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7Ozs7O0lBUU1BLE87O0FBRUY7Ozs7Ozs7Ozs7O0FBV0EsbUJBQVlDLElBQVosRUFBOEI7QUFBQSxRQUFaQyxJQUFZLHVFQUFMLEVBQUs7O0FBQUE7O0FBQzFCOzs7Ozs7OztBQVFBLFNBQUtDLElBQUwsR0FBWSxTQUFaO0FBQ0E7Ozs7OztBQU1BLFNBQUtGLElBQUwsR0FBWUEsSUFBWjs7QUFFQSxRQUFLQyxLQUFLRSxJQUFMLElBQWFGLEtBQUtFLElBQUwsQ0FBVUMsTUFBNUIsRUFBcUM7QUFDakMsVUFBSUMsTUFBVUosS0FBS0UsSUFBTCxDQUFVRyxVQUFWLENBQXFCTCxJQUFyQixDQUFkO0FBQ0E7Ozs7Ozs7QUFPQSxXQUFLTSxJQUFMLEdBQWNGLElBQUlFLElBQWxCO0FBQ0E7Ozs7Ozs7QUFPQSxXQUFLQyxNQUFMLEdBQWNILElBQUlHLE1BQWxCO0FBQ0g7O0FBRUQsU0FBTSxJQUFJQyxHQUFWLElBQWlCUixJQUFqQjtBQUF3QixXQUFLUSxHQUFMLElBQVlSLEtBQUtRLEdBQUwsQ0FBWjtBQUF4QjtBQUNIOztBQUVEOzs7Ozs7Ozs7O29CQVFBQyxRLHVCQUFXO0FBQ1AsUUFBSyxLQUFLUCxJQUFWLEVBQWlCO0FBQ2IsYUFBTyxLQUFLQSxJQUFMLENBQVVRLEtBQVYsQ0FBZ0IsS0FBS1gsSUFBckIsRUFBMkI7QUFDOUJZLGdCQUFRLEtBQUtBLE1BRGlCO0FBRTlCQyxlQUFRLEtBQUtBLEtBRmlCO0FBRzlCQyxjQUFRLEtBQUtBO0FBSGlCLE9BQTNCLEVBSUpDLE9BSkg7QUFLSCxLQU5ELE1BTU8sSUFBSyxLQUFLSCxNQUFWLEVBQW1CO0FBQ3RCLGFBQU8sS0FBS0EsTUFBTCxHQUFjLElBQWQsR0FBcUIsS0FBS1osSUFBakM7QUFDSCxLQUZNLE1BRUE7QUFDSCxhQUFPLEtBQUtBLElBQVo7QUFDSDtBQUNKLEc7O0FBRUQ7Ozs7Ozs7Ozs7QUFVQTs7Ozs7Ozs7Ozs7a0JBVVdELE8iLCJmaWxlIjoid2FybmluZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwcmVzZW50cyBhIHBsdWdpbuKAmXMgd2FybmluZy4gSXQgY2FuIGJlIGNyZWF0ZWQgdXNpbmcge0BsaW5rIE5vZGUjd2Fybn0uXG4gKlxuICogQGV4YW1wbGVcbiAqIGlmICggZGVjbC5pbXBvcnRhbnQgKSB7XG4gKiAgICAgZGVjbC53YXJuKHJlc3VsdCwgJ0F2b2lkICFpbXBvcnRhbnQnLCB7IHdvcmQ6ICchaW1wb3J0YW50JyB9KTtcbiAqIH1cbiAqL1xuY2xhc3MgV2FybmluZyB7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAgICAgICAgLSB3YXJuaW5nIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdICAgICAgLSB3YXJuaW5nIG9wdGlvbnNcbiAgICAgKiBAcGFyYW0ge05vZGV9ICAgb3B0cy5ub2RlICAgLSBDU1Mgbm9kZSB0aGF0IGNhdXNlZCB0aGUgd2FybmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLndvcmQgICAtIHdvcmQgaW4gQ1NTIHNvdXJjZSB0aGF0IGNhdXNlZCB0aGUgd2FybmluZ1xuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLmluZGV4ICAtIGluZGV4IGluIENTUyBub2RlIHN0cmluZyB0aGF0IGNhdXNlZFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB3YXJuaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMucGx1Z2luIC0gbmFtZSBvZiB0aGUgcGx1Z2luIHRoYXQgY3JlYXRlZFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgd2FybmluZy4ge0BsaW5rIFJlc3VsdCN3YXJufSBmaWxsc1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgcHJvcGVydHkgYXV0b21hdGljYWxseS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcih0ZXh0LCBvcHRzID0geyB9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWVtYmVyIHtzdHJpbmd9IC0gVHlwZSB0byBmaWx0ZXIgd2FybmluZ3MgZnJvbVxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAge0BsaW5rIFJlc3VsdCNtZXNzYWdlc30uIEFsd2F5cyBlcXVhbFxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgdG8gYFwid2FybmluZ1wiYC5cbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogY29uc3Qgbm9uV2FybmluZyA9IHJlc3VsdC5tZXNzYWdlcy5maWx0ZXIoaSA9PiBpLnR5cGUgIT09ICd3YXJuaW5nJylcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9ICd3YXJuaW5nJztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZW1iZXIge3N0cmluZ30gLSBUaGUgd2FybmluZyBtZXNzYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKiB3YXJuaW5nLnRleHQgLy89PiAnVHJ5IHRvIGF2b2lkICFpbXBvcnRhbnQnXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnRleHQgPSB0ZXh0O1xuXG4gICAgICAgIGlmICggb3B0cy5ub2RlICYmIG9wdHMubm9kZS5zb3VyY2UgKSB7XG4gICAgICAgICAgICBsZXQgcG9zICAgICA9IG9wdHMubm9kZS5wb3NpdGlvbkJ5KG9wdHMpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAbWVtYmVyIHtudW1iZXJ9IC0gTGluZSBpbiB0aGUgaW5wdXQgZmlsZVxuICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgIHdpdGggdGhpcyB3YXJuaW5n4oCZcyBzb3VyY2VcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgICAgICogd2FybmluZy5saW5lIC8vPT4gNVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmxpbmUgICA9IHBvcy5saW5lO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAbWVtYmVyIHtudW1iZXJ9IC0gQ29sdW1uIGluIHRoZSBpbnB1dCBmaWxlXG4gICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGlzIHdhcm5pbmfi
|