|
|
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var importPattern = /^:import\(("[^"]*"|'[^']*'|[\w-\.]+)\)$/;
-
- var getDeclsObject = function getDeclsObject(rule) {
- var object = {};
- rule.walkDecls(function (decl) {
- object[decl.raws.before.trim() + decl.prop] = decl.value;
- });
- return object;
- };
-
- var extractICSS = function extractICSS(css) {
- var removeRules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
-
- var icssImports = {};
- var icssExports = {};
- css.each(function (node) {
- if (node.type === "rule") {
- if (node.selector.slice(0, 7) === ":import") {
- var matches = importPattern.exec(node.selector);
- if (matches) {
- var path = matches[1];
- var aliases = Object.assign(icssImports[path] || {}, getDeclsObject(node));
- icssImports[path] = aliases;
- if (removeRules) {
- node.remove();
- }
- }
- }
- if (node.selector === ":export") {
- Object.assign(icssExports, getDeclsObject(node));
- if (removeRules) {
- node.remove();
- }
- }
- }
- });
- return { icssImports, icssExports };
- };
-
- exports.default = extractICSS;
|