@sauce-api/core
Version:
Sauce API core functionality
36 lines (35 loc) • 1.47 kB
TypeScript
import { Route } from "./Route";
import { SauceConfig } from "../resources/SauceConfig";
import { Application } from "express";
import { Sauce } from "../Sauce";
import { ObjectOfAnything } from "../resources/Common";
import { FormattedRoute, RouteGrouping } from "../@types/Routes.types";
interface BindRoutesArgs<custom> {
app: Application;
sauceCustom: Sauce<custom>["custom"];
}
/**
* Manages the application's route configurations.
*
* @property {Array} routesArray -
* It's strongly recommended to utilize the RouteDefinitions
* file to manage your defined routes. This will make your
* configured routes far more manageable and readable
*/
export declare class Routes {
private config;
routesArray: Route[];
private controllerMap;
constructor(config: SauceConfig);
getFormattedRoutes(stripHidden?: boolean): Promise<(FormattedRoute | RouteGrouping)[]>;
processRoutes(routeGroups: (FormattedRoute | RouteGrouping)[]): (FormattedRoute | RouteGrouping)[];
sortRoutes(routes: (FormattedRoute | RouteGrouping)[]): (FormattedRoute | RouteGrouping)[];
sortRouteGroups(routes: RouteGrouping[]): RouteGrouping[];
private formatRoutes;
private cleanRouteParams;
private addToControllerMap;
private getControllerPathFromRoute;
/** This should only run on startup so it's fine that it's not async */
bindRoutes<custom = ObjectOfAnything>({ app, sauceCustom }: BindRoutesArgs<custom>): void;
}
export {};