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