@prezly/theme-kit-core
Version:
Data layer and utility library for developing Prezly themes with JavaScript
51 lines (50 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Router = void 0;
var _isNotUndefined = require("@technically/is-not-undefined");
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.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 || (exports.Router = Router = {}));