UNPKG

tpa-style-webpack-plugin

Version:

A Webpack plugin that handles wix tpa styles, it separates static css file that injects dynamic style at runtime.

59 lines 2.35 kB
import { isCssVar, isNumber } from './utils/utils'; export function getProcessor(_a) { var cssVars = _a.cssVars, plugins = _a.plugins; function executeFunction(value) { var _a; var functionSignature = plugins.getFunctionSignature(value); if (functionSignature) { return (_a = plugins.cssFunctions)[functionSignature.funcName].apply(_a, functionSignature.args.map(function (arg) { return executeFunction(arg.trim()); })); } else { return getVarOrPrimitiveValue(value); } } function getVarOrPrimitiveValue(varName) { if (isCssVar(varName)) { var varValue_1 = cssVars[varName]; var defaultVarValue = void 0; if (plugins.isSupportedFunction(varValue_1)) { defaultVarValue = executeFunction(varValue_1); } else { defaultVarValue = function () { return varValue_1; }; } return getDefaultValueOrValueFromSettings(varName, defaultVarValue); } return function () { return varName; }; } function getDefaultValueOrValueFromSettings(varName, defaultVarValue) { return function (tpaParams) { var varNameInSettings = varName.substring(2, varName.length); if (tpaParams.strings[varNameInSettings] && tpaParams.strings[varNameInSettings].value) { return tpaParams.strings[varNameInSettings].value; } else if (tpaParams.colors[varNameInSettings]) { return tpaParams.colors[varNameInSettings]; } else if (tpaParams.fonts[varNameInSettings]) { return tpaParams.fonts[varNameInSettings]; } else if (isNumber(tpaParams.numbers[varNameInSettings])) { return tpaParams.numbers[varNameInSettings]; } //not found in settings return defaultVarValue(tpaParams); }; } function process(_a) { var part = _a.part, tpaParams = _a.tpaParams; if (plugins.isSupportedFunction(part)) { var evaluationFunc = executeFunction(part); return evaluationFunc(tpaParams); } return part; } return { process: process, }; } //# sourceMappingURL=processor.js.map