3 var chars = {}, unesc, temp;
5 function reverse(object, prepender) {
6 return Object.keys(object).reduce(function(reversed, key) {
7 var newKey = prepender ? prepender + key : key; // Optionally prepend a string to key.
8 reversed[object[key]] = newKey; // Swap key and value.
9 return reversed; // Return the result.
14 * Regex for common characters
34 '?': '__UNESC_QMRK__',
35 '@': '__UNESC_AMPE__',
36 '!': '__UNESC_EXCL__',
37 '+': '__UNESC_PLUS__',
38 '*': '__UNESC_STAR__',
39 ',': '__UNESC_COMMA__',
40 '(': '__UNESC_LTPAREN__',
41 ')': '__UNESC_RTPAREN__',
42 '[': '__UNESC_LTBRACK__',
43 ']': '__UNESC_RTBRACK__'
50 chars.UNESC = unesc || (unesc = reverse(chars.ESC, '\\'));
58 ',': '__TEMP_COMMA__',
59 '(': '__TEMP_LTPAREN__',
60 ')': '__TEMP_RTPAREN__',
61 '[': '__TEMP_LTBRACK__',
62 ']': '__TEMP_RTBRACK__'
65 chars.TEMP = temp || (temp = reverse(chars.ESC_TEMP));
67 module.exports = chars;