UNPKG

postcss-theme-fold

Version:

[![NPM Version][npm-img]][npm-url] [![github (ci)][github-ci]][github-ci]

49 lines (48 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hasUnprocessedNodes = exports.checkNodesProcessed = exports.removeValueFromMap = exports.addValueToMap = void 0; function addValueToMap(map, selector, item) { const currentValue = map.get(selector); if (currentValue) { if (currentValue.some(({ selector, value, prop }) => selector === item.selector && value === item.value && prop === item.prop)) { return; } map.set(selector, [...currentValue, item]); } else { map.set(selector, [item]); } } exports.addValueToMap = addValueToMap; function removeValueFromMap(map, themeSelector, value) { const currentValue = map.get(themeSelector); if (!currentValue) return; const nextValue = currentValue.map((item) => { if (item.prop === value.prop && item.value === value.value && item.selector === value.selector) { item.processed = true; } return item; }); map.set(themeSelector, nextValue); } exports.removeValueFromMap = removeValueFromMap; function checkNodesProcessed(map, nodes, themeSelector) { nodes.forEach((node) => { if (node.type === 'decl' && node.parent.type === 'rule') { removeValueFromMap(map, themeSelector, { value: node.value, prop: node.prop, selector: node.parent.selector.trim(), }); } }); } exports.checkNodesProcessed = checkNodesProcessed; function hasUnprocessedNodes(map, themeSelector) { var _a; return Boolean(map.has(themeSelector) && ((_a = map.get(themeSelector)) === null || _a === void 0 ? void 0 : _a.some(({ processed }) => !processed))); } exports.hasUnprocessedNodes = hasUnprocessedNodes;