123456789101112131415161718192021222324252627 |
- import pathToRegexp from "path-to-regexp";
- const cache = {};
- const cacheLimit = 10000;
- let cacheCount = 0;
- function compilePath(path) {
- if (cache[path]) return cache[path];
- const generator = pathToRegexp.compile(path);
- if (cacheCount < cacheLimit) {
- cache[path] = generator;
- cacheCount++;
- }
- return generator;
- }
- /**
- * Public API for generating a URL pathname from a path and parameters.
- */
- function generatePath(path = "/", params = {}) {
- return path === "/" ? path : compilePath(path)(params, { pretty: true });
- }
- export default generatePath;
|