UNPKG

alapa

Version:

A cutting-edge web development framework designed to revolutionize the way developers build modern web applications.

31 lines (30 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRouteByName = exports.RoutesNames = void 0; exports.RoutesNames = {}; const getRouteByName = (name, ...params) => { const route = exports.RoutesNames[name.trim().toLowerCase()]; if (route === "") return "/"; if (route === undefined || route === null) { throw new Error(`Route name '${name}' not found, the available urls names are ${JSON.stringify(exports.RoutesNames)}`); } let url = route; const routeList = route.split("/"); const paramsCount = routeList.filter((routeSegment) => routeSegment.startsWith(":")).length; if (params.length !== paramsCount) { throw new Error(`Route '${name}' expects ${paramsCount} parameters, received ${params.length}`); } params.forEach((param) => { const paramPlaceholder = routeList.find((segment) => segment.startsWith(":")); if (paramPlaceholder) { url = url.replace(paramPlaceholder, param.toString()); } }); url = url .split("/") .filter((urlSegment) => urlSegment.trim().length > 0) .join("/"); return url; }; exports.getRouteByName = getRouteByName;