265 lines
25 KiB
JavaScript
265 lines
25 KiB
JavaScript
|
"use strict";
|
|||
|
|
|||
|
exports.__esModule = true;
|
|||
|
exports.default = void 0;
|
|||
|
|
|||
|
var _lazyResult = _interopRequireDefault(require("./lazy-result"));
|
|||
|
|
|||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|||
|
|
|||
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); }
|
|||
|
|
|||
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|||
|
|
|||
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|||
|
|
|||
|
/**
|
|||
|
* Contains plugins to process CSS. Create one `Processor` instance,
|
|||
|
* initialize its plugins, and then use that instance on numerous CSS files.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* const processor = postcss([autoprefixer, precss])
|
|||
|
* processor.process(css1).then(result => console.log(result.css))
|
|||
|
* processor.process(css2).then(result => console.log(result.css))
|
|||
|
*/
|
|||
|
var Processor = /*#__PURE__*/function () {
|
|||
|
/**
|
|||
|
* @param {Array.<Plugin|pluginFunction>|Processor} plugins PostCSS plugins.
|
|||
|
* See {@link Processor#use} for plugin format.
|
|||
|
*/
|
|||
|
function Processor(plugins) {
|
|||
|
if (plugins === void 0) {
|
|||
|
plugins = [];
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Current PostCSS version.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*
|
|||
|
* @example
|
|||
|
* if (result.processor.version.split('.')[0] !== '6') {
|
|||
|
* throw new Error('This plugin works only with PostCSS 6')
|
|||
|
* }
|
|||
|
*/
|
|||
|
this.version = '7.0.35';
|
|||
|
/**
|
|||
|
* Plugins added to this processor.
|
|||
|
*
|
|||
|
* @type {pluginFunction[]}
|
|||
|
*
|
|||
|
* @example
|
|||
|
* const processor = postcss([autoprefixer, precss])
|
|||
|
* processor.plugins.length //=> 2
|
|||
|
*/
|
|||
|
|
|||
|
this.plugins = this.normalize(plugins);
|
|||
|
}
|
|||
|
/**
|
|||
|
* Adds a plugin to be used as a CSS processor.
|
|||
|
*
|
|||
|
* PostCSS plugin can be in 4 formats:
|
|||
|
* * A plugin created by {@link postcss.plugin} method.
|
|||
|
* * A function. PostCSS will pass the function a @{link Root}
|
|||
|
* as the first argument and current {@link Result} instance
|
|||
|
* as the second.
|
|||
|
* * An object with a `postcss` method. PostCSS will use that method
|
|||
|
* as described in #2.
|
|||
|
* * Another {@link Processor} instance. PostCSS will copy plugins
|
|||
|
* from that instance into this one.
|
|||
|
*
|
|||
|
* Plugins can also be added by passing them as arguments when creating
|
|||
|
* a `postcss` instance (see [`postcss(plugins)`]).
|
|||
|
*
|
|||
|
* Asynchronous plugins should return a `Promise` instance.
|
|||
|
*
|
|||
|
* @param {Plugin|pluginFunction|Processor} plugin PostCSS plugin
|
|||
|
* or {@link Processor}
|
|||
|
* with plugins.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* const processor = postcss()
|
|||
|
* .use(autoprefixer)
|
|||
|
* .use(precss)
|
|||
|
*
|
|||
|
* @return {Processes} Current processor to make methods chain.
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
var _proto = Processor.prototype;
|
|||
|
|
|||
|
_proto.use = function use(plugin) {
|
|||
|
this.plugins = this.plugins.concat(this.normalize([plugin]));
|
|||
|
return this;
|
|||
|
}
|
|||
|
/**
|
|||
|
* Parses source CSS and returns a {@link LazyResult} Promise proxy.
|
|||
|
* Because some plugins can be asynchronous it doesn’t make
|
|||
|
* any transformations. Transformations will be applied
|
|||
|
* in the {@link LazyResult} methods.
|
|||
|
*
|
|||
|
* @param {string|toString|Result} css String with input CSS or any object
|
|||
|
* with a `toString()` method,
|
|||
|
* like a Buffer. Optionally, send
|
|||
|
* a {@link Result} instance
|
|||
|
* and the processor will take
|
|||
|
* the {@link Root} from it.
|
|||
|
* @param {processOptions} [opts] Options.
|
|||
|
*
|
|||
|
* @return {LazyResult} Promise proxy.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* processor.process(css, { from: 'a.css', to: 'a.out.css' })
|
|||
|
* .then(result => {
|
|||
|
* console.log(result.css)
|
|||
|
* })
|
|||
|
*/
|
|||
|
;
|
|||
|
|
|||
|
_proto.process = function (_process) {
|
|||
|
function process(_x) {
|
|||
|
return _process.apply(this, arguments);
|
|||
|
}
|
|||
|
|
|||
|
process.toString = function () {
|
|||
|
return _process.toString();
|
|||
|
};
|
|||
|
|
|||
|
return process;
|
|||
|
}(function (css, opts) {
|
|||
|
if (opts === void 0) {
|
|||
|
opts = {};
|
|||
|
}
|
|||
|
|
|||
|
if (this.plugins.length === 0 && opts.parser === opts.stringifier) {
|
|||
|
if (process.env.NODE_ENV !== 'production') {
|
|||
|
if (typeof console !== 'undefined' && console.warn) {
|
|||
|
console.warn('You did not set any plugins, parser, or stringifier. ' + 'Right now, PostCSS does nothing. Pick plugins for your case ' + 'on https://www.postcss.parts/ and use them in postcss.config.js.');
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return new _lazyResult.default(this, css, opts);
|
|||
|
});
|
|||
|
|
|||
|
_proto.normalize = function normalize(plugins) {
|
|||
|
var normalized = [];
|
|||
|
|
|||
|
for (var _iterator = _createForOfIteratorHelperLoose(plugins), _step; !(_step = _iterator()).done;) {
|
|||
|
var i = _step.value;
|
|||
|
|
|||
|
if (i.postcss === true) {
|
|||
|
var plugin = i();
|
|||
|
throw new Error('PostCSS plugin ' + plugin.postcssPlugin + ' requires PostCSS 8.\n' + 'Migration guide for end-users:\n' + 'https://github.com/postcss/postcss/wiki/PostCSS-8-for-end-users');
|
|||
|
}
|
|||
|
|
|||
|
if (i.postcss) i = i.postcss;
|
|||
|
|
|||
|
if (typeof i === 'object' && Array.isArray(i.plugins)) {
|
|||
|
normalized = normalized.concat(i.plugins);
|
|||
|
} else if (typeof i === 'function') {
|
|||
|
normalized.push(i);
|
|||
|
} else if (typeof i === 'object' && (i.parse || i.stringify)) {
|
|||
|
if (process.env.NODE_ENV !== 'production') {
|
|||
|
throw new Error('PostCSS syntaxes cannot be used as plugins. Instead, please use ' + 'one of the syntax/parser/stringifier options as outlined ' + 'in your PostCSS runner documentation.');
|
|||
|
}
|
|||
|
} else if (typeof i === 'object' && i.postcssPlugin) {
|
|||
|
throw new Error('PostCSS plugin ' + i.postcssPlugin + ' requires PostCSS 8.\n' + 'Migration guide for end-users:\n' + 'https://github.com/postcss/postcss/wiki/PostCSS-8-for-end-users');
|
|||
|
} else {
|
|||
|
throw new Error(i + ' is not a PostCSS plugin');
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return normalized;
|
|||
|
};
|
|||
|
|
|||
|
return Processor;
|
|||
|
}();
|
|||
|
|
|||
|
var _default = Processor;
|
|||
|
/**
|
|||
|
* @callback builder
|
|||
|
* @param {string} part Part of generated CSS connected to this node.
|
|||
|
* @param {Node} node AST node.
|
|||
|
* @param {"start"|"end"} [type] Node’s part type.
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @callback parser
|
|||
|
*
|
|||
|
* @param {string|toString} css String with input CSS or any object
|
|||
|
* with toString() method, like a Buffer.
|
|||
|
* @param {processOptions} [opts] Options with only `from` and `map` keys.
|
|||
|
*
|
|||
|
* @return {Root} PostCSS AST
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @callback stringifier
|
|||
|
*
|
|||
|
* @param {Node} node Start node for stringifing. Usually {@link Root}.
|
|||
|
* @param {builder} builder Function to concatenate CSS from node’s parts
|
|||
|
* or generate string and source map.
|
|||
|
*
|
|||
|
* @return {void}
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @typedef {object} syntax
|
|||
|
* @property {parser} parse Function to generate AST by string.
|
|||
|
* @property {stringifier} stringify Function to generate string by AST.
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @typedef {object} toString
|
|||
|
* @property {function} toString
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @callback pluginFunction
|
|||
|
* @param {Root} root Parsed input CSS.
|
|||
|
* @param {Result} result Result to set warnings or check other plugins.
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @typedef {object} Plugin
|
|||
|
* @property {function} postcss PostCSS plugin function.
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @typedef {object} processOptions
|
|||
|
* @property {string} from The path of the CSS source file.
|
|||
|
* You should always set `from`,
|
|||
|
* because it is used in source map
|
|||
|
* generation and syntax error messages.
|
|||
|
* @property {string} to The path where you’ll put the output
|
|||
|
* CSS file. You should always set `to`
|
|||
|
* to generate correct source maps.
|
|||
|
* @property {parser} parser Function to generate AST by string.
|
|||
|
* @property {stringifier} stringifier Class to generate string by AST.
|
|||
|
* @property {syntax} syntax Object with `parse` and `stringify`.
|
|||
|
* @property {object} map Source map options.
|
|||
|
* @property {boolean} map.inline Does source map should
|
|||
|
* be embedded in the output
|
|||
|
* CSS as a base64-encoded
|
|||
|
* comment.
|
|||
|
* @property {string|object|false|function} map.prev Source map content
|
|||
|
* from a previous
|
|||
|
* processing step
|
|||
|
* (for example, Sass).
|
|||
|
* PostCSS will try to find
|
|||
|
* previous map automatically,
|
|||
|
* so you could disable it by
|
|||
|
* `false` value.
|
|||
|
* @property {boolean} map.sourcesContent Does PostCSS should set
|
|||
|
* the origin content to map.
|
|||
|
* @property {string|false} map.annotation Does PostCSS should set
|
|||
|
* annotation comment to map.
|
|||
|
* @property {string} map.from Override `from` in map’s
|
|||
|
* sources`.
|
|||
|
*/
|
|||
|
|
|||
|
exports.default = _default;
|
|||
|
module.exports = exports.default;
|
|||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2Nlc3Nvci5lczYiXSwibmFtZXMiOlsiUHJvY2Vzc29yIiwicGx1Z2lucyIsInZlcnNpb24iLCJub3JtYWxpemUiLCJ1c2UiLCJwbHVnaW4iLCJjb25jYXQiLCJwcm9jZXNzIiwiY3NzIiwib3B0cyIsImxlbmd0aCIsInBhcnNlciIsInN0cmluZ2lmaWVyIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsIkxhenlSZXN1bHQiLCJub3JtYWxpemVkIiwiaSIsInBvc3Rjc3MiLCJFcnJvciIsInBvc3Rjc3NQbHVnaW4iLCJBcnJheSIsImlzQXJyYXkiLCJwdXNoIiwicGFyc2UiLCJzdHJpbmdpZnkiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7Ozs7QUFFQTs7Ozs7Ozs7O0lBU01BLFM7QUFDSjs7OztBQUlBLHFCQUFhQyxPQUFiLEVBQTJCO0FBQUEsUUFBZEEsT0FBYztBQUFkQSxNQUFBQSxPQUFjLEdBQUosRUFBSTtBQUFBOztBQUN6Qjs7Ozs7Ozs7OztBQVVBLFNBQUtDLE9BQUwsR0FBZSxRQUFmO0FBQ0E7Ozs7Ozs7Ozs7QUFTQSxTQUFLRCxPQUFMLEdBQWUsS0FBS0UsU0FBTCxDQUFlRixPQUFmLENBQWY7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E2QkFHLEcsR0FBQSxhQUFLQyxNQUFMLEVBQWE7QUFDWCxTQUFLSixPQUFMLEdBQWUsS0FBS0EsT0FBTCxDQUFhSyxNQUFiLENBQW9CLEtBQUtILFNBQUwsQ0FBZSxDQUFDRSxNQUFELENBQWYsQ0FBcEIsQ0FBZjtBQUNBLFdBQU8sSUFBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQXNCQUUsTzs7Ozs7Ozs7OztJQUFBLFVBQVNDLEdBQVQsRUFBY0MsSUFBZCxFQUEwQjtBQUFBLFFBQVpBLElBQVk7QUFBWkEsTUFBQUEsSUFBWSxHQUFMLEVBQUs7QUFBQTs7QUFDeEIsUUFBSSxLQUFLUixPQUFMLENBQWFTLE1BQWIsS0FBd0IsQ0FBeEIsSUFBNkJELElBQUksQ0FBQ0UsTUFBTCxLQUFnQkYsSUFBSSxDQUFDRyxXQUF0RCxFQUFtRTtBQUNqRSxVQUFJTCxPQUFPLENBQUNNLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6QyxZQUFJLE9BQU9DLE9BQVAsS0FBbUIsV0FBbkIsSUFBa0NBLE9BQU8sQ0FBQ0MsSUFBOUMsRUFBb0Q7QUFDbERELFVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUNFLDBEQUNBLDhEQURBLEdBRUEsa0VBSEY7QUFLRDtBQUNGO0FBQ0Y7O0FBQ0QsV0FBTyxJQUFJQyxtQkFBSixDQUFlLElBQWYsRUFBcUJULEdBQXJCLEVBQTBCQyxJQUExQixDQUFQO0FBQ0QsRzs7U0FFRE4sUyxHQUFBLG1CQUFXRixPQUFYLEVBQW9CO0FBQ2xCLFFBQUlpQixVQUFVLEdBQUcsRUFBakI7O0FBQ0EseURBQWNqQixPQUFkLHdDQUF1QjtBQUFBLFVBQWRrQixDQUFjOztBQUNyQixVQUFJQSxDQUFDLENBQUNDLE9BQUYsS0FBYyxJQUFsQixFQUF3QjtBQUN0QixZQUFJZixNQUFNLEdBQUdjLENBQUMsRUFBZDtBQUNBLGNBQU0sSUFBSUUsS0FBSixDQUNKLG9CQUFvQmhCLE1BQU0sQ0FBQ2lCLGFBQTNCLEdBQTJDLHdCQUEzQyxHQUNBLGtDQURBLEdBRUEsaUVBSEksQ0FBTjtBQUtEOztBQUVELFVBQUlILENBQUMsQ0FBQ0MsT0FBTixFQUFlRCxDQUFDLEdBQUdBLENBQUMsQ0FBQ0MsT0FBTjs7QUFFZixVQUFJLE9BQU9ELENBQVAsS0FBYSxRQUFiLElBQXlCSSxLQUFLLENBQUNDLE9BQU4sQ0FBY0wsQ0FBQyxDQUFDbEIsT0FBaEIsQ0FBN0IsRUFBdUQ7QUFDckRpQixRQUFBQSxVQUFVLEdBQUdBLFVBQVUsQ0FBQ1osTUFBWCxDQUFrQmEsQ0FBQyxDQUFDbEIsT0FBcEIsQ0FBYjtBQUNELE9BRkQsTUFFTyxJQUFJLE9BQU9rQixDQUFQLEtBQWEsVUFBakIsRUFBNkI7QUFDbENELFFBQUFBLFVBQVUsQ0FBQ08sSUFBWCxDQUFnQk4sQ0FBaEI7QUFDRCxPQUZNLE1BRUEsSUFBSSxPQUFPQSxDQUFQLEtBQWEsUUFBYixLQUEwQkEsQ0FBQyxDQUFDTyxLQUFGLElBQVdQLENBQUMsQ0FBQ1EsU0FBdkMsQ0FBSixFQUF1RDtBQUM1RCxZQUFJcEIsT0FBTyxDQUFDTSxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekMsZ0JBQU0sSUFBSU8sS0FBSixDQUNKLHFFQUNBLDJEQURBLEdBRUEsdUNBSEksQ0FBTjtBQUtEO0FBQ0YsT0FSTSxNQVFBLElBQUksT0FBT0YsQ0FBUCxLQUFhLFFBQWIsSUFBeUJBLENBQUMsQ0FBQ0csYUFBL0IsRUFBOEM7QUFDbkQsY0FBTSxJQUFJRCxLQUFKLENBQ0osb0JBQW9CRixDQUFDLENBQUNHLGFBQXRCLEdBQXNDLHdCQUF0QyxHQUNBLGtDQURBLEdBRUEsaUVBSEksQ0FBTjtBQUtELE9BTk0sTUFNQTtBQUNMLGNBQU0sSUFBSUQsS0FBSixDQUFVRixDQUFDLEdBQUcsMEJBQWQsQ0FBTjtBQUNEO0FBQ0Y7O0FBQ0QsV0FBT0QsVUFBUDtBQUNELEc7Ozs7O2VBR1lsQixTO0FBRWY7Ozs7Ozs7QUFPQTs7Ozs7Ozs7OztBQVVBOzs7Ozs7Ozs7O0FBVUE7Ozs7OztBQU1BOzs7OztBQUtBOzs7Ozs7QUFNQTs7Ozs7QUFLQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMYXp5UmVzdWx0IGZyb20gJy4vbGF6eS1yZXN1bHQnXG5cbi8qKlxuICogQ29udGFpbnMgcGx1Z2lucyB0byBwcm9jZXNzIENTUy4gQ3JlYXRlIG9uZSBgUHJvY2Vzc29yYCBpbnN0YW5jZSxcbiAqIGluaXRpYWxpemUgaXRzIHBsdWdpbnMsIGFuZCB0aGVuIHVzZSB0aGF0IGluc3RhbmNlIG9uIG51bWVyb3VzIENTUyBmaWxlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcHJvY2Vzc29yID0gcG9zdGNzcyhbYXV0b3ByZWZpeGVyLCBwcmVjc3NdKVxuICogcHJvY2Vzc29yLnByb2Nlc3MoY3NzMSkudGhlbihyZXN1bHQgPT4gY29uc29sZS5sb2cocmVzdWx0LmNzcykpXG4gKiBwcm9jZXNzb3IucHJvY2Vzcyhjc3MyKS50aGVuKHJlc3VsdCA9PiBjb25zb2xlLmxvZyhyZXN1bHQuY3NzKSlcbiAqL1xuY2xhc3MgUHJvY2Vzc29yIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7QXJyYXkuPFBsdWdpbnxwbHVnaW5GdW5jdGlvbj58UHJvY2Vzc29yfSBwbHVnaW5zIFBvc3RDU1MgcGx1Z2lucy5cbiAgICogICAgICAgIFNlZSB7QGxpbmsgUHJvY2Vzc29yI3VzZX0gZm9yIHBsdWdpbiBmb3JtYXQuXG4gICAqL1xuICBjb25zdHJ1Y3RvciAocGx1Z2lucyA9IFtdKSB7XG4g
|