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.64 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import { generateTPAParams } from './generateTPAParams';
import { getProcessor } from './processor';
import { cssFunctions } from './cssFunctions';
import { Plugins } from './plugins';
function escapeRegExp(str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
}
var plugins = new Plugins();
Object.keys(cssFunctions).forEach(function (funcName) { return plugins.addCssFunction(funcName, cssFunctions[funcName]); });
var defaultOptions = {
isRTL: false,
strictMode: true,
};
export function getProcessedCssWithConfig(processedCssConfig, _a, options) {
var siteColors = _a.siteColors, siteTextPresets = _a.siteTextPresets, styleParams = _a.styleParams;
options = __assign(__assign({}, defaultOptions), (options || {}));
if (!processedCssConfig.css) {
return '';
}
var prefixedCss = processedCssConfig.css.replace(new RegExp(processedCssConfig.compilationHash, 'g'), options.prefixSelector ? "" + options.prefixSelector : '');
var tpaParams = generateTPAParams(siteColors, siteTextPresets, styleParams, options);
var processor = getProcessor({ cssVars: processedCssConfig.cssVars, plugins: plugins });
return processedCssConfig.customSyntaxStrs.reduce(function (processedContent, part) {
var newValue;
try {
newValue = processor.process({ part: part, tpaParams: tpaParams });
}
catch (e) {
if (options.strictMode) {
throw e;
}
else {
newValue = '';
}
}
return processedContent.replace(new RegExp(escapeRegExp(part), 'g'), newValue);
}, prefixedCss);
}
export function getStaticCssWithConfig(staticCssConfig, _a) {
var prefixSelector = (_a === void 0 ? { prefixSelector: '' } : _a).prefixSelector;
var prefixedCss = (staticCssConfig.staticCss || '').replace(new RegExp(staticCssConfig.compilationHash, 'g'), prefixSelector);
return prefixedCss;
}
export function getBuildTimeStaticCss(staticCssConfig) {
var prefixedCss = (staticCssConfig.staticCss || '').replace(new RegExp(staticCssConfig.compilationHash, 'g'), '');
return { css: prefixedCss, hash: staticCssConfig.staticCssHash };
}
//# sourceMappingURL=standalone.js.map