UNPKG

@prezly/theme-kit-core

Version:

Data layer and utility library for developing Prezly themes with JavaScript

43 lines 1.29 kB
import UrlPattern from 'url-pattern'; import { URL_PATTERN_SEGMENT_CHARSET } from "./constants.mjs"; import { normalizeUrl } from "./utils/index.mjs"; export var Route; (function (_Route) { function create(pattern, rewrite) { var { check, generate, resolveLocale } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var urlPattern = new UrlPattern(pattern, { segmentValueCharset: URL_PATTERN_SEGMENT_CHARSET }); var rewritePattern = new UrlPattern(rewrite, { segmentValueCharset: URL_PATTERN_SEGMENT_CHARSET }); return { pattern, match(path, searchParams) { var matched = urlPattern.match(path); if (!matched) { return undefined; } if ((check === null || check === void 0 ? void 0 : check(matched, searchParams)) === false) { return undefined; } return matched; }, generate(params) { if (generate) { return normalizeUrl(generate(urlPattern, params)); } return normalizeUrl(urlPattern.stringify(params)); }, rewrite(params) { return rewritePattern.stringify(params); }, resolveLocale }; } _Route.create = create; })(Route || (Route = {}));