router5-helpers
Version:
Router5 helpers for comparing and checking routes
39 lines (35 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
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);
exports.endsWithSegment = endsWithSegment;
exports.includesSegment = includesSegment;
exports.startsWithSegment = startsWithSegment;