combineRoutes

Combines routing for different Effects, prefixed with path passed as a first argument.

Importing

import { combineRoutes } from '@marblejs/core';

Type declaration

combineRoutes :: (string, RouteCombinerConfig) -> RouteEffectGroup
combineRoutes :: (string, (RouteEffect | RouteEffectGroup)[]) -> RouteEffectGroup

Parameters

parameter

definition

path

string

configOrEffects

RouteCombinerConfig | Array<RouteEffect | RouteEffectGroup>

RouteCombinerConfig

parameter

definition

effects

Array<RouteEffect | RouteEffectGroup>

middlewares

<optional> Array<HttpMiddlewareEffect>

Returns

Factorized RouteEffectGroup object.

Example

user.effects.ts
import { combineRoutes } from '@marblejs/core';
import { authorize$ } from 'auth.middleware';
// const getUsers$ = ...
// const postUser$ = ...
export const user$ = combineRoutes('/user', {
middlewares: [authorize$],
effects: [getUsers$, postUser$],
});
api.effects.ts
import { combineRoutes } from '@marblejs/core';
import { user$ } from './user';
// const root$ = ...
// const notFound$ = ...
export const api$ = combineRoutes('/api/v1', [
root$, user$, notFound$,
]);