r.pipe
HttpEffect route builder based on IxMonad
import { r } from '@marblejs/http';
r
namespace function. Creates pipeable RouteEffect builder.pipe :: ...Arity<IxBuilder, IxBuilder> -> RouteEffect
r.pipe
builder pays attention to the order of applied operators.const example$ = r.pipe(
r.matchPath('/'),
r.matchType('GET'),
r.use(middleware_1$),
r.useEffect(req$ => req$.pipe(
// ...
)),
r.use(middleware_2$), // ❌ type error!
);
// or
const example$ = r.pipe(
r.matchType('GET'),
r.matchPath('/'), // ❌ type error!
r.use(middleware_1$),
r.use(middleware_2$),
r.useEffect(req$ => req$.pipe(
// ...
)),
);
Correct order:
- 1.
<optional> applyMeta
- 2.
matchPath
- 3.
matchType
- 4.
use
[...] - 5.
useEffect
- 6.
applyMeta
[...]
r
namespace function. Matches request path for connected HttpEffect.matchPath :: string -> IxBuilder -> IxBuilder
parameter | definition |
path | string |
r
namespace function. Matches HTTP method type for connected HttpEffect.matchType :: HttpMethod -> IxBuilder -> IxBuilder
parameter | definition |
path | HttpMethod |
r
namespace function. Registers HTTP middleware with connected HttpEffect.use :: HttpMiddlewareEffect -> IxBuilder -> IxBuilder
parameter | definition |
middleware | HttpMiddlewareEffect |
r
namespace function. Registers HttpEffect.useEffect :: HttpEffect -> IxBuilder -> IxBuilder
parameter | definition |
effect | HttpEffect |
r
namespace function. Applies metadata to connected HttpEffect.applyMeta :: RouteMeta -> IxBuilder -> IxBuilder
parameter | definition |
meta | RouteMeta |
RouteMeta
attributes:parameter | type | definition |
name | <optional> string | route/effect name |
continuous | <optional> boolean | |
overridable | <optional> boolean | if true, the route can be overrode by another route |
import { r } from '@marblejs/http';