@prezly/theme-kit-core
Version:
Data layer and utility library for developing Prezly themes with JavaScript
43 lines • 1.29 kB
JavaScript
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 = {}));