router5-helpers
Version:
Router5 helpers for comparing and checking routes
33 lines (31 loc) • 1.1 kB
JavaScript
var dotOrEnd = '(\\..+$|$)';
var dotOrStart = '(^.+\\.|^)';
var getName = function (route) {
return typeof route === 'string' ? route : route.name || '';
};
var test = function (route, regex) {
return regex.test(getName(route));
};
var normaliseSegment = function (name) {
return name.replace('.', '\\.');
};
var testRouteWithSegment = function (start, end) {
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var route = args[0];
var applySegment = function (segment) {
return test(route, new RegExp(start + normaliseSegment(segment) + end));
};
if (args.length === 2) {
return applySegment(args[1]);
}
return applySegment;
};
};
var startsWithSegment = testRouteWithSegment('^', dotOrEnd);
var endsWithSegment = testRouteWithSegment(dotOrStart, '$');
var includesSegment = testRouteWithSegment(dotOrStart, dotOrEnd);
export { endsWithSegment, includesSegment, startsWithSegment };