forked from actions/setup-maven
20 lines
625 B
JavaScript
20 lines
625 B
JavaScript
var keys = require('./keys.js');
|
|
|
|
// Internal helper to generate functions for escaping and unescaping strings
|
|
// to/from HTML interpolation.
|
|
function createEscaper(map) {
|
|
var escaper = function(match) {
|
|
return map[match];
|
|
};
|
|
// Regexes for identifying a key that needs to be escaped.
|
|
var source = '(?:' + keys(map).join('|') + ')';
|
|
var testRegexp = RegExp(source);
|
|
var replaceRegexp = RegExp(source, 'g');
|
|
return function(string) {
|
|
string = string == null ? '' : '' + string;
|
|
return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;
|
|
};
|
|
}
|
|
|
|
module.exports = createEscaper;
|