Du kan inte välja fler än 25 ämnen
Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
|
- "use strict";
-
- exports.__esModule = true;
-
- var _pathToRegexp = require("path-to-regexp");
-
- var _pathToRegexp2 = _interopRequireDefault(_pathToRegexp);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var patternCache = {};
- var cacheLimit = 10000;
- var cacheCount = 0;
-
- var compileGenerator = function compileGenerator(pattern) {
- var cacheKey = pattern;
- var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});
-
- if (cache[pattern]) return cache[pattern];
-
- var compiledGenerator = _pathToRegexp2.default.compile(pattern);
-
- if (cacheCount < cacheLimit) {
- cache[pattern] = compiledGenerator;
- cacheCount++;
- }
-
- return compiledGenerator;
- };
-
- /**
- * Public API for generating a URL pathname from a pattern and parameters.
- */
- var generatePath = function generatePath() {
- var pattern = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "/";
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- if (pattern === "/") {
- return pattern;
- }
- var generator = compileGenerator(pattern);
- return generator(params, { pretty: true });
- };
-
- exports.default = generatePath;
|