firebase-encode
Advanced tools
Comparing version 0.0.4 to 0.0.5
@@ -11,34 +11,55 @@ 'use strict'; | ||
// http://stackoverflow.com/a/19148116/692528 | ||
var chars = '.$[]#/%'.split(''); | ||
var charCodes = chars.map(function (c) { | ||
return '%' + c.charCodeAt(0).toString(16).toUpperCase(); | ||
}); | ||
var create = function create(chars) { | ||
var charCodes = chars.map(function (c) { | ||
return '%' + c.charCodeAt(0).toString(16).toUpperCase(); | ||
}); | ||
var charToCode = {}; | ||
var codeToChar = {}; | ||
chars.forEach(function (c, i) { | ||
charToCode[c] = charCodes[i]; | ||
codeToChar[charCodes[i]] = c; | ||
}); | ||
var charToCode = {}; | ||
var codeToChar = {}; | ||
chars.forEach(function (c, i) { | ||
charToCode[c] = charCodes[i]; | ||
codeToChar[charCodes[i]] = c; | ||
}); | ||
var charsRegex = new RegExp('[' + escapeRegExp(chars.join('')) + ']', 'g'); | ||
var charCodesRegex = new RegExp(charCodes.join('|'), 'g'); | ||
var charsRegex = new RegExp('[' + escapeRegExp(chars.join('')) + ']', 'g'); | ||
var charCodesRegex = new RegExp(charCodes.join('|'), 'g'); | ||
var encode = function encode(str) { | ||
return str.replace(charsRegex, function (match) { | ||
return charToCode[match]; | ||
}); | ||
var encode = function encode(str) { | ||
return str.replace(charsRegex, function (match) { | ||
return charToCode[match]; | ||
}); | ||
}; | ||
var decode = function decode(str) { | ||
return str.replace(charCodesRegex, function (match) { | ||
return codeToChar[match]; | ||
}); | ||
}; | ||
return { encode: encode, decode: decode }; | ||
}; | ||
var decode = function decode(str) { | ||
return str.replace(charCodesRegex, function (match) { | ||
return codeToChar[match]; | ||
}); | ||
}; | ||
// http://stackoverflow.com/a/19148116/692528 | ||
var _create = create('.$[]#/%'.split('')); | ||
var encode = _create.encode; | ||
var decode = _create.decode; | ||
// Without `/`. | ||
var _create2 = create('.$[]#%'.split('')); | ||
var encodeComponents = _create2.encode; | ||
var decodeComponents = _create2.decode; | ||
exports.create = create; | ||
exports.encode = encode; | ||
exports.decode = decode; | ||
exports.encodeComponents = encodeComponents; | ||
exports.decodeComponents = decodeComponents; | ||
exports.default = { | ||
create: create, | ||
encode: encode, | ||
decode: decode | ||
decode: decode, | ||
encodeComponents: encodeComponents, | ||
decodeComponents: decodeComponents | ||
}; |
{ | ||
"name": "firebase-encode", | ||
"version": "0.0.4", | ||
"version": "0.0.5", | ||
"description": "Encode and decode firebase key string to escape and unescape unsafe characters (.$[]#/).", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
4284
51