* Returns a version of the given pattern with params interpolated. Throws * if there is a dynamic segment of the pattern for which there is no param.
(pattern, params)
| 767 | */ |
| 768 | |
| 769 | function formatPattern(pattern, params) { |
| 770 | params = params || {}; |
| 771 | |
| 772 | var _compilePattern3 = compilePattern(pattern); |
| 773 | |
| 774 | var tokens = _compilePattern3.tokens; |
| 775 | |
| 776 | var parenCount = 0, |
| 777 | pathname = '', |
| 778 | splatIndex = 0; |
| 779 | |
| 780 | var token = undefined, |
| 781 | paramName = undefined, |
| 782 | paramValue = undefined; |
| 783 | for (var i = 0, len = tokens.length; i < len; ++i) { |
| 784 | token = tokens[i]; |
| 785 | |
| 786 | if (token === '*' || token === '**') { |
| 787 | paramValue = Array.isArray(params.splat) ? params.splat[splatIndex++] : params.splat; |
| 788 | |
| 789 | !(paramValue != null || parenCount > 0) ? false ? _invariant2['default'](false, 'Missing splat #%s for path "%s"', splatIndex, pattern) : _invariant2['default'](false) : undefined; |
| 790 | |
| 791 | if (paramValue != null) pathname += encodeURI(paramValue); |
| 792 | } else if (token === '(') { |
| 793 | parenCount += 1; |
| 794 | } else if (token === ')') { |
| 795 | parenCount -= 1; |
| 796 | } else if (token.charAt(0) === ':') { |
| 797 | paramName = token.substring(1); |
| 798 | paramValue = params[paramName]; |
| 799 | |
| 800 | !(paramValue != null || parenCount > 0) ? false ? _invariant2['default'](false, 'Missing "%s" parameter for path "%s"', paramName, pattern) : _invariant2['default'](false) : undefined; |
| 801 | |
| 802 | if (paramValue != null) pathname += encodeURIComponent(paramValue); |
| 803 | } else { |
| 804 | pathname += token; |
| 805 | } |
| 806 | } |
| 807 | |
| 808 | return pathname.replace(/\/+/g, '/'); |
| 809 | } |
| 810 | |
| 811 | /***/ }, |
| 812 | /* 9 */ |
nothing calls this directly
no test coverage detected
searching dependent graphs…