UNPKG

uritemplate

Version:

An UriTemplate implementation of rfc 6570

63 lines (56 loc) 1.88 kB
/*jshint unused: false */ /*global rfcCharHelper, pctEncoder*/ /** * encoding of rfc 6570 */ var encodingHelper = (function () { "use strict"; function encode (text, passReserved) { var result = '', index, chr = ''; if (typeof text === "number" || typeof text === "boolean") { text = text.toString(); } for (index = 0; index < text.length; index += chr.length) { chr = text.charAt(index); result += rfcCharHelper.isUnreserved(chr) || (passReserved && rfcCharHelper.isReserved(chr)) ? chr : pctEncoder.encodeCharacter(chr); } return result; } function encodePassReserved (text) { return encode(text, true); } function encodeLiteralCharacter (literal, index) { var chr = pctEncoder.pctCharAt(literal, index); if (chr.length > 1) { return chr; } else { return rfcCharHelper.isReserved(chr) || rfcCharHelper.isUnreserved(chr) ? chr : pctEncoder.encodeCharacter(chr); } } function encodeLiteral (literal) { var result = '', index, chr = ''; for (index = 0; index < literal.length; index += chr.length) { chr = pctEncoder.pctCharAt(literal, index); if (chr.length > 1) { result += chr; } else { result += rfcCharHelper.isReserved(chr) || rfcCharHelper.isUnreserved(chr) ? chr : pctEncoder.encodeCharacter(chr); } } return result; } return { encode: encode, encodePassReserved: encodePassReserved, encodeLiteral: encodeLiteral, encodeLiteralCharacter: encodeLiteralCharacter }; }());