From aa7ae6af37668a2d627a5183d3b6acee804ad588 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Sun, 16 Aug 2020 14:06:32 +0200 Subject: [PATCH] re-use classNameParser We were re-creating the classNameParser inside the loop. Since that code is all pretty pure we can hoist it so that we don't have to recreate that parser all the time. --- src/util/generateVariantFunction.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/util/generateVariantFunction.js b/src/util/generateVariantFunction.js index 67b8fe230..86b2dc64c 100644 --- a/src/util/generateVariantFunction.js +++ b/src/util/generateVariantFunction.js @@ -2,6 +2,10 @@ import _ from 'lodash' import postcss from 'postcss' import selectorParser from 'postcss-selector-parser' +const classNameParser = selectorParser(selectors => { + return selectors.first.filter(({ type }) => type === 'class').pop().value +}) + export default function generateVariantFunction(generator) { return (container, config) => { const cloned = postcss.root({ nodes: container.clone().nodes }) @@ -18,9 +22,7 @@ export default function generateVariantFunction(generator) { } rule.selectors = rule.selectors.map(selector => { - const className = selectorParser(selectors => { - return selectors.first.filter(({ type }) => type === 'class').pop().value - }).transformSync(selector) + const className = classNameParser.transformSync(selector) return modifierFunction({ className,