@prezly/theme-kit-core
Version:
Data layer and utility library for developing Prezly themes with JavaScript
45 lines • 1.32 kB
JavaScript
import { isNotUndefined } from '@technically/is-not-undefined';
export var Router;
(function (_Router) {
function create(routes) {
return {
routes,
match(path, searchParams, _ref) {
var {
isSupportedLocale
} = _ref;
var matches = Object.values(routes).map(route => {
var params = route.match(path, searchParams);
if (params) {
return {
params: params,
route
};
}
return undefined;
});
var [first] = matches.filter(isNotUndefined).filter(_ref2 => {
var {
params
} = _ref2;
if ('localeSlug' in params && typeof params.localeSlug === 'string') {
return isSupportedLocale(params.localeSlug);
}
return true;
});
return first;
},
generate(routeName) {
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return routes[routeName].generate(params);
},
dump() {
return Object.fromEntries(Object.entries(routes).map(_ref3 => {
var [routeName, route] = _ref3;
return [routeName, route.pattern];
}));
}
};
}
_Router.create = create;
})(Router || (Router = {}));