UNPKG

uritemplate

Version:

An UriTemplate implementation of rfc 6570

45 lines (40 loc) 1.24 kB
/*jshint unused: false */ /*global encodingHelper*/ // the operators defined by rfc 6570 var operators = (function () { "use strict"; var bySymbol = {}; function create (symbol) { bySymbol[symbol] = { symbol: symbol, separator: (symbol === '?') ? '&' : (symbol === '' || symbol === '+' || symbol === '#') ? ',' : symbol, named: symbol === ';' || symbol === '&' || symbol === '?', ifEmpty: (symbol === '&' || symbol === '?') ? '=' : '', first: (symbol === '+' ) ? '' : symbol, encode: (symbol === '+' || symbol === '#') ? encodingHelper.encodePassReserved : encodingHelper.encode, toString: function () { return this.symbol; } }; } create(''); create('+'); create('#'); create('.'); create('/'); create(';'); create('?'); create('&'); return { valueOf: function (chr) { if (bySymbol[chr]) { return bySymbol[chr]; } if ("=,!@|".indexOf(chr) >= 0) { return null; } return bySymbol['']; } }; }());