| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | 
							- "use strict";
 
- Object.defineProperty(exports, "__esModule", {
 
-   value: true
 
- });
 
- exports.default = loader;
 
- var _loaderUtils = require("loader-utils");
 
- var _postcss = _interopRequireDefault(require("postcss"));
 
- var _package = _interopRequireDefault(require("postcss/package.json"));
 
- var _schemaUtils = _interopRequireDefault(require("schema-utils"));
 
- var _semver = require("semver");
 
- var _CssSyntaxError = _interopRequireDefault(require("./CssSyntaxError"));
 
- var _Warning = _interopRequireDefault(require("./Warning"));
 
- var _options = _interopRequireDefault(require("./options.json"));
 
- var _plugins = require("./plugins");
 
- var _utils = require("./utils");
 
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
- /*
 
-   MIT License http://www.opensource.org/licenses/mit-license.php
 
-   Author Tobias Koppers @sokra
 
- */
 
- function loader(content, map, meta) {
 
-   const options = (0, _loaderUtils.getOptions)(this) || {};
 
-   (0, _schemaUtils.default)(_options.default, options, {
 
-     name: 'CSS Loader',
 
-     baseDataPath: 'options'
 
-   });
 
-   const callback = this.async();
 
-   const sourceMap = options.sourceMap || false;
 
-   const plugins = [];
 
-   if ((0, _utils.shouldUseModulesPlugins)(options.modules, this.resourcePath)) {
 
-     plugins.push(...(0, _utils.getModulesPlugins)(options, this));
 
-   }
 
-   const exportType = options.onlyLocals ? 'locals' : 'full';
 
-   const preRequester = (0, _utils.getPreRequester)(this);
 
-   const urlHandler = url => (0, _loaderUtils.stringifyRequest)(this, preRequester(options.importLoaders) + url);
 
-   plugins.push((0, _plugins.icssParser)({
 
-     urlHandler
 
-   }));
 
-   if (options.import !== false && exportType === 'full') {
 
-     plugins.push((0, _plugins.importParser)({
 
-       filter: (0, _utils.getFilter)(options.import, this.resourcePath),
 
-       urlHandler
 
-     }));
 
-   }
 
-   if (options.url !== false && exportType === 'full') {
 
-     plugins.push((0, _plugins.urlParser)({
 
-       filter: (0, _utils.getFilter)(options.url, this.resourcePath, value => (0, _loaderUtils.isUrlRequest)(value)),
 
-       urlHandler: url => (0, _loaderUtils.stringifyRequest)(this, url)
 
-     }));
 
-   } // Reuse CSS AST (PostCSS AST e.g 'postcss-loader') to avoid reparsing
 
-   if (meta) {
 
-     const {
 
-       ast
 
-     } = meta;
 
-     if (ast && ast.type === 'postcss' && (0, _semver.satisfies)(ast.version, `^${_package.default.version}`)) {
 
-       // eslint-disable-next-line no-param-reassign
 
-       content = ast.root;
 
-     }
 
-   }
 
-   (0, _postcss.default)(plugins).process(content, {
 
-     from: this.resourcePath,
 
-     to: this.resourcePath,
 
-     map: options.sourceMap ? {
 
-       // Some loaders (example `"postcss-loader": "1.x.x"`) always generates source map, we should remove it
 
-       prev: sourceMap && map ? (0, _utils.normalizeSourceMap)(map) : null,
 
-       inline: false,
 
-       annotation: false
 
-     } : false
 
-   }).then(result => {
 
-     for (const warning of result.warnings()) {
 
-       this.emitWarning(new _Warning.default(warning));
 
-     }
 
-     const imports = [];
 
-     const apiImports = [];
 
-     const urlReplacements = [];
 
-     const icssReplacements = [];
 
-     const exports = [];
 
-     for (const message of result.messages) {
 
-       // eslint-disable-next-line default-case
 
-       switch (message.type) {
 
-         case 'import':
 
-           imports.push(message.value);
 
-           break;
 
-         case 'api-import':
 
-           apiImports.push(message.value);
 
-           break;
 
-         case 'url-replacement':
 
-           urlReplacements.push(message.value);
 
-           break;
 
-         case 'icss-replacement':
 
-           icssReplacements.push(message.value);
 
-           break;
 
-         case 'export':
 
-           exports.push(message.value);
 
-           break;
 
-       }
 
-     }
 
-     const {
 
-       localsConvention
 
-     } = options;
 
-     const esModule = typeof options.esModule !== 'undefined' ? options.esModule : false;
 
-     const importCode = (0, _utils.getImportCode)(this, exportType, imports, esModule);
 
-     const moduleCode = (0, _utils.getModuleCode)(result, exportType, sourceMap, apiImports, urlReplacements, icssReplacements, esModule);
 
-     const exportCode = (0, _utils.getExportCode)(exports, exportType, localsConvention, icssReplacements, esModule);
 
-     return callback(null, `${importCode}${moduleCode}${exportCode}`);
 
-   }).catch(error => {
 
-     if (error.file) {
 
-       this.addDependency(error.file);
 
-     }
 
-     callback(error.name === 'CssSyntaxError' ? new _CssSyntaxError.default(error) : error);
 
-   });
 
- }
 
 
  |