Interface for a router.

interface RouterInterface {
    attachTo: (
        app: ZibriApplication,
        ...params: any[],
    ) => void | Promise<void>;
    init: (app: ZibriApplication, ...params: any[]) => void | Promise<void>;
    manuallyRegisteredRoutes: RouteConfiguration<
        BodyMetadata,
        Record<string, PathParamMetadata>,
        Record<string, QueryParamMetadata>,
        Record<string, HeaderParamMetadata>,
    >[];
    register: <
        BodyMetaInputObject extends
            Partial<OmitStrict<BodyMetadata, "modelClass" | "index">> & {
                modelClass: Newable<unknown>;
            },
        PathMetaInputObject extends Record<string, PathParamMetadataInput>,
        QueryMetaInputObject extends Record<string, QueryParamMetadataInput>,
        HeaderMetaInputObject extends Record<string, HeaderParamMetadataInput>,
    >(
        route: RouteConfigurationInput<
            BodyMetaInputObject,
            PathMetaInputObject,
            QueryMetaInputObject,
            HeaderMetaInputObject,
        >,
        ...params: any[],
    ) => void | Promise<void>;
    registerController: (
        controllerClass: Newable<unknown>,
        ...params: any[],
    ) => void | Promise<void>;
}

Implemented by

Properties

attachTo: (app: ZibriApplication, ...params: any[]) => void | Promise<void>

Attaches the router to the app.

init: (app: ZibriApplication, ...params: any[]) => void | Promise<void>

Initializes the router, registers controllers etc.

manuallyRegisteredRoutes: RouteConfiguration<
    BodyMetadata,
    Record<string, PathParamMetadata>,
    Record<string, QueryParamMetadata>,
    Record<string, HeaderParamMetadata>,
>[]

All routes that have been manually registered by calling the .register method.

register: <
    BodyMetaInputObject extends
        Partial<OmitStrict<BodyMetadata, "modelClass" | "index">> & {
            modelClass: Newable<unknown>;
        },
    PathMetaInputObject extends Record<string, PathParamMetadataInput>,
    QueryMetaInputObject extends Record<string, QueryParamMetadataInput>,
    HeaderMetaInputObject extends Record<string, HeaderParamMetadataInput>,
>(
    route: RouteConfigurationInput<
        BodyMetaInputObject,
        PathMetaInputObject,
        QueryMetaInputObject,
        HeaderMetaInputObject,
    >,
    ...params: any[],
) => void | Promise<void>

Register a route.

registerController: (
    controllerClass: Newable<unknown>,
    ...params: any[],
) => void | Promise<void>

Register a controller.