tpa-style-webpack-plugin
Version:
A Webpack plugin that handles wix tpa styles, it separates static css file that injects dynamic style at runtime.
55 lines • 1.82 kB
JavaScript
export function isCssVar(key) {
return key.indexOf('--') === 0;
}
export function isJsonLike(value) {
return typeof value === 'string' && value[0] === '{' && value.slice(-1) === '}';
}
export function parseJson(strValue) {
return strValue
.slice(1, -1)
.split(',')
.reduce(function (json, current) {
var _a = current.split(':'), key = _a[0], value = _a[1];
json[key.trim()] = value.trim().replace(/^["|'](.*)["|']$/, '$1');
return json;
}, {});
}
export function isNumber(value) {
return typeof value === 'number';
}
export function forEach(obj, iteratee) {
Object.keys(obj).forEach(function (key) { return iteratee(obj[key], key); });
}
export function reduceObj(obj, iteratee) {
return Object.keys(obj).reduce(function (acc, key, index) { return iteratee(acc, { key: key, value: obj[key] }, index); }, {});
}
export function pickBy(obj, predicate) {
return Object.keys(obj || {}).reduce(function (result, key) {
if (predicate(obj[key])) {
result[key] = obj[key];
}
return result;
}, {});
}
export function escapeHtml(str) {
return str && str.replace(/</g, '<').replace(/>/g, '>');
}
export function parenthesisAreBalanced(str) {
var parentheses = '(){}';
var stack = [];
var character;
for (var i = 0; (character = str[i]); i++) {
var bracePosition = parentheses.indexOf(character);
if (bracePosition === -1) {
continue;
}
if (bracePosition % 2 === 0) {
stack.push(bracePosition + 1); // push next expected brace position
}
else if (stack.length === 0 || stack.pop() !== bracePosition) {
return false;
}
}
return stack.length === 0;
}
//# sourceMappingURL=utils.js.map