funcunit
Version:
<!-- @hide title
33 lines (26 loc) • 825 B
JavaScript
module.exports = function EscapeStore(placeholderRoot) {
placeholderRoot = 'ESCAPED_' + placeholderRoot + '_CLEAN_CSS';
var placeholderToData = {};
var dataToPlaceholder = {};
var count = 0;
var nextPlaceholder = function() {
return '__' + placeholderRoot + (count++) + '__';
};
var pattern = '(__' + placeholderRoot + '\\d{1,}__)';
return {
placeholderPattern: pattern,
placeholderRegExp: new RegExp(pattern, 'g'),
store: function(data) {
var placeholder = dataToPlaceholder[data];
if (!placeholder) {
placeholder = nextPlaceholder();
placeholderToData[placeholder] = data;
dataToPlaceholder[data] = placeholder;
}
return placeholder;
},
restore: function(placeholder) {
return placeholderToData[placeholder];
}
};
};