You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
216 lines
14 KiB
216 lines
14 KiB
4 years ago
|
"use strict";
|
||
|
|
||
|
exports.__esModule = true;
|
||
|
exports.default = void 0;
|
||
|
|
||
|
var _warning = _interopRequireDefault(require("./warning"));
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
|
||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
/**
|
||
|
* Provides the result of the PostCSS transformations.
|
||
|
*
|
||
|
* A Result instance is returned by {@link LazyResult#then}
|
||
|
* or {@link Root#toResult} methods.
|
||
|
*
|
||
|
* @example
|
||
|
* postcss([autoprefixer]).process(css).then(result => {
|
||
|
* console.log(result.css)
|
||
|
* })
|
||
|
*
|
||
|
* @example
|
||
|
* const result2 = postcss.parse(css).toResult()
|
||
|
*/
|
||
|
var Result =
|
||
|
/*#__PURE__*/
|
||
|
function () {
|
||
|
/**
|
||
|
* @param {Processor} processor Processor used for this transformation.
|
||
|
* @param {Root} root Root node after all transformations.
|
||
|
* @param {processOptions} opts Options from the {@link Processor#process}
|
||
|
* or {@link Root#toResult}.
|
||
|
*/
|
||
|
function Result(processor, root, opts) {
|
||
|
/**
|
||
|
* The Processor instance used for this transformation.
|
||
|
*
|
||
|
* @type {Processor}
|
||
|
*
|
||
|
* @example
|
||
|
* for (const plugin of result.processor.plugins) {
|
||
|
* if (plugin.postcssPlugin === 'postcss-bad') {
|
||
|
* throw 'postcss-good is incompatible with postcss-bad'
|
||
|
* }
|
||
|
* })
|
||
|
*/
|
||
|
this.processor = processor;
|
||
|
/**
|
||
|
* Contains messages from plugins (e.g., warnings or custom messages).
|
||
|
* Each message should have type and plugin properties.
|
||
|
*
|
||
|
* @type {Message[]}
|
||
|
*
|
||
|
* @example
|
||
|
* postcss.plugin('postcss-min-browser', () => {
|
||
|
* return (root, result) => {
|
||
|
* const browsers = detectMinBrowsersByCanIUse(root)
|
||
|
* result.messages.push({
|
||
|
* type: 'min-browser',
|
||
|
* plugin: 'postcss-min-browser',
|
||
|
* browsers
|
||
|
* })
|
||
|
* }
|
||
|
* })
|
||
|
*/
|
||
|
|
||
|
this.messages = [];
|
||
|
/**
|
||
|
* Root node after all transformations.
|
||
|
*
|
||
|
* @type {Root}
|
||
|
*
|
||
|
* @example
|
||
|
* root.toResult().root === root
|
||
|
*/
|
||
|
|
||
|
this.root = root;
|
||
|
/**
|
||
|
* Options from the {@link Processor#process} or {@link Root#toResult} call
|
||
|
* that produced this Result instance.
|
||
|
*
|
||
|
* @type {processOptions}
|
||
|
*
|
||
|
* @example
|
||
|
* root.toResult(opts).opts === opts
|
||
|
*/
|
||
|
|
||
|
this.opts = opts;
|
||
|
/**
|
||
|
* A CSS string representing of {@link Result#root}.
|
||
|
*
|
||
|
* @type {string}
|
||
|
*
|
||
|
* @example
|
||
|
* postcss.parse('a{}').toResult().css //=> "a{}"
|
||
|
*/
|
||
|
|
||
|
this.css = undefined;
|
||
|
/**
|
||
|
* An instance of `SourceMapGenerator` class from the `source-map` library,
|
||
|
* representing changes to the {@link Result#root} instance.
|
||
|
*
|
||
|
* @type {SourceMapGenerator}
|
||
|
*
|
||
|
* @example
|
||
|
* result.map.toJSON() //=> { version: 3, file: 'a.css', … }
|
||
|
*
|
||
|
* @example
|
||
|
* if (result.map) {
|
||
|
* fs.writeFileSync(result.opts.to + '.map', result.map.toString())
|
||
|
* }
|
||
|
*/
|
||
|
|
||
|
this.map = undefined;
|
||
|
}
|
||
|
/**
|
||
|
* Returns for @{link Result#css} content.
|
||
|
*
|
||
|
* @example
|
||
|
* result + '' === result.css
|
||
|
*
|
||
|
* @return {string} String representing of {@link Result#root}.
|
||
|
*/
|
||
|
|
||
|
|
||
|
var _proto = Result.prototype;
|
||
|
|
||
|
_proto.toString = function toString() {
|
||
|
return this.css;
|
||
|
}
|
||
|
/**
|
||
|
* Creates an instance of {@link Warning} and adds it
|
||
|
* to {@link Result#messages}.
|
||
|
*
|
||
|
* @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.
|
||
|
*
|
||
|
* @return {Warning} Created warning.
|
||
|
*/
|
||
|
;
|
||
|
|
||
|
_proto.warn = function warn(text, opts) {
|
||
|
if (opts === void 0) {
|
||
|
opts = {};
|
||
|
}
|
||
|
|
||
|
if (!opts.plugin) {
|
||
|
if (this.lastPlugin && this.lastPlugin.postcssPlugin) {
|
||
|
opts.plugin = this.lastPlugin.postcssPlugin;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var warning = new _warning.default(text, opts);
|
||
|
this.messages.push(warning);
|
||
|
return warning;
|
||
|
}
|
||
|
/**
|
||
|
* Returns warnings from plugins. Filters {@link Warning} instances
|
||
|
* from {@link Result#messages}.
|
||
|
*
|
||
|
* @example
|
||
|
* result.warnings().forEach(warn => {
|
||
|
* console.warn(warn.toString())
|
||
|
* })
|
||
|
*
|
||
|
* @return {Warning[]} Warnings from plugins.
|
||
|
*/
|
||
|
;
|
||
|
|
||
|
_proto.warnings = function warnings() {
|
||
|
return this.messages.filter(function (i) {
|
||
|
return i.type === 'warning';
|
||
|
});
|
||
|
}
|
||
|
/**
|
||
|
* An alias for the {@link Result#css} property.
|
||
|
* Use it with syntaxes that generate non-CSS output.
|
||
|
*
|
||
|
* @type {string}
|
||
|
*
|
||
|
* @example
|
||
|
* result.css === result.content
|
||
|
*/
|
||
|
;
|
||
|
|
||
|
_createClass(Result, [{
|
||
|
key: "content",
|
||
|
get: function get() {
|
||
|
return this.css;
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return Result;
|
||
|
}();
|
||
|
|
||
|
var _default = Result;
|
||
|
/**
|
||
|
* @typedef {object} Message
|
||
|
* @property {string} type Message type.
|
||
|
* @property {string} plugin Source PostCSS plugin name.
|
||
|
*/
|
||
|
|
||
|
exports.default = _default;
|
||
|
module.exports = exports.default;
|
||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlc3VsdC5lczYiXSwibmFtZXMiOlsiUmVzdWx0IiwicHJvY2Vzc29yIiwicm9vdCIsIm9wdHMiLCJtZXNzYWdlcyIsImNzcyIsInVuZGVmaW5lZCIsIm1hcCIsInRvU3RyaW5nIiwid2FybiIsInRleHQiLCJwbHVnaW4iLCJsYXN0UGx1Z2luIiwicG9zdGNzc1BsdWdpbiIsIndhcm5pbmciLCJXYXJuaW5nIiwicHVzaCIsIndhcm5pbmdzIiwiZmlsdGVyIiwiaSIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O0lBY01BLE07OztBQUNKOzs7Ozs7QUFNQSxrQkFBYUMsU0FBYixFQUF3QkMsSUFBeEIsRUFBOEJDLElBQTlCLEVBQW9DO0FBQ2xDOzs7Ozs7Ozs7Ozs7QUFZQSxTQUFLRixTQUFMLEdBQWlCQSxTQUFqQjtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLFNBQUtHLFFBQUwsR0FBZ0IsRUFBaEI7QUFDQTs7Ozs7Ozs7O0FBUUEsU0FBS0YsSUFBTCxHQUFZQSxJQUFaO0FBQ0E7Ozs7Ozs7Ozs7QUFTQSxTQUFLQyxJQUFMLEdBQVlBLElBQVo7QUFDQTs7Ozs7Ozs7O0FBUUEsU0FBS0UsR0FBTCxHQUFXQyxTQUFYO0FBQ0E7Ozs7Ozs7Ozs7Ozs7OztBQWNBLFNBQUtDLEdBQUwsR0FBV0QsU0FBWDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7OztTQVFBRSxRLEdBQUEsb0JBQVk7QUFDVixXQUFPLEtBQUtILEdBQVo7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQkFJLEksR0FBQSxjQUFNQyxJQUFOLEVBQVlQLElBQVosRUFBd0I7QUFBQSxRQUFaQSxJQUFZO0FBQVpBLE1BQUFBLElBQVksR0FBTCxFQUFLO0FBQUE7O0FBQ3RCLFFBQUksQ0FBQ0EsSUFBSSxDQUFDUSxNQUFWLEVBQWtCO0FBQ2hCLFVBQUksS0FBS0MsVUFBTCxJQUFtQixLQUFLQSxVQUFMLENBQWdCQyxhQUF2QyxFQUFzRDtBQUNwRFYsUUFBQUEsSUFBSSxDQUFDUSxNQUFMLEdBQWMsS0FBS0MsVUFBTCxDQUFnQkMsYUFBOUI7QUFDRDtBQUNGOztBQUVELFFBQUlDLE9BQU8sR0FBRyxJQUFJQyxnQkFBSixDQUFZTCxJQUFaLEVBQWtCUCxJQUFsQixDQUFkO0FBQ0EsU0FBS0MsUUFBTCxDQUFjWSxJQUFkLENBQW1CRixPQUFuQjtBQUVBLFdBQU9BLE9BQVA7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7O1NBV0FHLFEsR0FBQSxvQkFBWTtBQUNWLFdBQU8sS0FBS2IsUUFBTCxDQUFjYyxNQUFkLENBQXFCLFVBQUFDLENBQUM7QUFBQSxhQUFJQSxDQUFDLENBQUNDLElBQUYsS0FBVyxTQUFmO0FBQUEsS0FBdEIsQ0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7d0JBU2U7QUFDYixhQUFPLEtBQUtmLEdBQVo7QUFDRDs7Ozs7O2VBR1lMLE07QUFFZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXYXJuaW5nIGZyb20gJy4vd2FybmluZydcblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgcmVzdWx0IG9mIHRoZSBQb3N0Q1NTIHRyYW5zZm9ybWF0aW9ucy5cbiAqXG4gKiBBIFJlc3VsdCBpbnN0YW5jZSBpcyByZXR1cm5lZCBieSB7QGxpbmsgTGF6eVJlc3VsdCN0aGVufVxuICogb3Ige0BsaW5rIFJvb3QjdG9SZXN1bHR9IG1ldGhvZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIHBvc3Rjc3MoW2F1dG9wcmVmaXhlcl0pLnByb2Nlc3MoY3NzKS50aGVuKHJlc3VsdCA9PiB7XG4gKiAgY29uc29sZS5sb2cocmVzdWx0LmNzcylcbiAqIH0pXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlc3VsdDIgPSBwb3N0Y3NzLnBhcnNlKGNzcykudG9SZXN1bHQoKVxuICovXG5jbGFzcyBSZXN1bHQge1xuICAvKipcbiAgICogQHBhcmFtIHtQcm9jZXNzb3J9IHByb2Nlc3NvciBQcm9jZXNzb3IgdXNlZCBmb3IgdGhpcyB0cmFuc2Zvcm1hdGlvbi5cbiAgICogQHBhcmFtIHtSb290fSAgICAgIHJvb3QgICAgICBSb290IG5vZGUgYWZ0ZXIgYWxsIHRyYW5zZm9ybWF0aW9ucy5cbiAgICogQHBhcmFtIHtwcm9jZXNzT3B0aW9uc30gb3B0cyBPcHRpb25zIGZyb20gdGhlIHtAbGluayBQcm9jZXNzb3IjcHJvY2Vzc31cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciB7QGxpbmsgUm9vdCN0b1Jlc3VsdH0uXG4gICAqL1xuICBjb25zdHJ1Y3RvciAocHJvY2Vzc29yLCByb290LCBvcHRzKSB7XG4gICAgLyoqXG4gICAgICogVGhlIFByb2Nlc3NvciBpbnN0YW5jZSB1c2VkIGZvciB0aGlzIHRyYW5zZm9ybWF0aW9uLlxuICAgICAqXG4gICAgICogQHR5cGUge1Byb2Nlc3Nvcn1cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogZm9yIChjb25zdCBwbHVnaW4gb2YgcmVzdWx0LnByb2Nlc3Nvci5wbHVnaW5zKSB7XG4gICAgICogICBpZiAocGx1Z2luLnBvc3Rjc3NQbHVnaW4gPT09ICdwb3N0Y3NzLWJhZCcpIHtcbiAgICAgKiAgICAgdGhyb3cgJ3Bvc3Rjc3MtZ29vZCBpcyBpbmNvbXBhdGlibGUgd2l0aCBwb3N0Y3NzLWJhZCdcbiAgICAgKiAgIH1cbiAgICAgKiB9KVxuICAgICAqL1xuICAgIHRoaXMucHJvY2Vzc29yID0gcHJvY2Vzc29yXG4gICAgLyoqXG4gICAgICogQ29udGFpbnMgbWVzc2FnZXMgZnJvbSBwbHVnaW5zIChlLmcuLCB3YXJuaW5ncyBvciBjdXN0b20gbWVzc2FnZXMpLlxuICAgICAqIEVhY2ggbWVzc2FnZSBzaG91bGQgaGF2ZSB0eXBlIGFuZCBwbHVnaW4gcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtNZXNzYWdlW119XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHBvc3Rjc3MucGx1Z2luKCdwb3N0Y3NzLW1pbi1icm93c2VyJywgKCkgPT4ge1xuICAgICAqICAgcmV0dXJuIChyb290LCByZXN1bHQpID0+IHtcbiAgICAgKiAgICAgY29uc3QgYnJvd3NlcnMgPSBkZXRlY3RNaW5Ccm93c2Vyc0J5Q2FuSVVzZShyb290KVxuICAgICAqICAgICByZXN1bHQubWVzc2FnZXMucHVzaCh7XG4gICAgICogICAgICAgdHlwZTogJ21pbi1icm93c2VyJyxcbiAgICAgKiAgICAgICBwbHVnaW46ICdwb3N0Y3NzLW1pbi1icm93c2VyJyxcbiAgICAgKiAgICAgICBicm93c2Vyc1xuICAgICAqICAgICB9KVxuICAgICAqICAgfVxuICAgICAqIH0pXG4gICAgICovXG4gICAgdGhpcy5tZXNzYWdlcyA9IFtdXG4gICAgLyoqXG4gICAgICogUm9vdCBub2RlIGFm
|