@stylable/core
Version:
CSS for Components
30 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.processDeclarationFunctions = void 0;
const css_selector_tokenizer_1 = require("css-selector-tokenizer");
function processDeclarationFunctions(decl, onFunction, transform = false) {
const ast = (0, css_selector_tokenizer_1.parseValues)(decl.value);
ast.nodes.forEach((node) => findFunction(node, onFunction, 1));
if (transform) {
decl.value = (0, css_selector_tokenizer_1.stringifyValues)(ast);
}
}
exports.processDeclarationFunctions = processDeclarationFunctions;
function findFunction(node, onFunctionNode, level) {
switch (node.type) {
case 'value':
case 'values':
onFunctionNode(node, level);
node.nodes.forEach((child) => findFunction(child, onFunctionNode, level));
break;
case 'url':
case 'item':
onFunctionNode(node, level);
break;
case 'nested-item':
onFunctionNode(node, level);
node.nodes.forEach((child) => findFunction(child, onFunctionNode, level + 1));
break;
}
}
//# sourceMappingURL=process-declaration-functions.js.map