qcobjects
Version:
QCObjects is an Open-source framework that empowers full-stack developers to make micro-services and micro-frontends into an N-Tier architecture.
19 lines (16 loc) • 840 B
text/typescript
import { TComponentRouting } from "types";
export const __routing_params__ = (routing:TComponentRouting, routingPath:string):object => {
const standardRoutingPath = routing.path.replace(/{(.*?)}/g, "(?<$1>.*)"); // allowing {param}
return {
...[...routingPath.matchAll((new RegExp(standardRoutingPath, "g")))][0].groups
};
};
export const __valid_routings__ = function (routings:TComponentRouting[], routingPath:string):TComponentRouting[] {
return routings.filter(function (routing) {
const standardRoutingPath = routing.path.replace(/{(.*?)}/g, "(?<$1>.*)");
return (new RegExp(standardRoutingPath, "g")).test(routingPath);
}).reverse();
};
export const __valid_routing_way__ = (validRoutingWays:string[], routingWay:string):boolean => {
return validRoutingWays.includes(routingWay);
};