123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var _postcss = _interopRequireDefault(require("postcss"));
- var _icssUtils = require("icss-utils");
- var _loaderUtils = require("loader-utils");
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function makeRequestableIcssImports(icssImports) {
- return Object.keys(icssImports).reduce((accumulator, url) => {
- const tokensMap = icssImports[url];
- const tokens = Object.keys(tokensMap);
- if (tokens.length === 0) {
- return accumulator;
- }
- const normalizedUrl = (0, _loaderUtils.urlToRequest)(url);
- if (!accumulator[normalizedUrl]) {
-
- accumulator[normalizedUrl] = tokensMap;
- } else {
-
- accumulator[normalizedUrl] = { ...accumulator[normalizedUrl],
- ...tokensMap
- };
- }
- return accumulator;
- }, {});
- }
- var _default = _postcss.default.plugin('postcss-icss-parser', options => (css, result) => {
- const importReplacements = Object.create(null);
- const extractedICSS = (0, _icssUtils.extractICSS)(css);
- const icssImports = makeRequestableIcssImports(extractedICSS.icssImports);
- for (const [importIndex, url] of Object.keys(icssImports).entries()) {
- const importName = `___CSS_LOADER_ICSS_IMPORT_${importIndex}___`;
- result.messages.push({
- type: 'import',
- value: {
- importName,
- url: options.urlHandler ? options.urlHandler(url) : url
- }
- }, {
- type: 'api-import',
- value: {
- type: 'internal',
- importName,
- dedupe: true
- }
- });
- const tokenMap = icssImports[url];
- const tokens = Object.keys(tokenMap);
- for (const [replacementIndex, token] of tokens.entries()) {
- const replacementName = `___CSS_LOADER_ICSS_IMPORT_${importIndex}_REPLACEMENT_${replacementIndex}___`;
- const localName = tokenMap[token];
- importReplacements[token] = replacementName;
- result.messages.push({
- type: 'icss-replacement',
- value: {
- replacementName,
- importName,
- localName
- }
- });
- }
- }
- if (Object.keys(importReplacements).length > 0) {
- (0, _icssUtils.replaceSymbols)(css, importReplacements);
- }
- const {
- icssExports
- } = extractedICSS;
- for (const name of Object.keys(icssExports)) {
- const value = (0, _icssUtils.replaceValueSymbols)(icssExports[name], importReplacements);
- result.messages.push({
- type: 'export',
- value: {
- name,
- value
- }
- });
- }
- });
- exports.default = _default;
|