Layer.Layer<RateLimiter, never, never>Soft in-memory rate-limiter layer (built automatically when rateLimit is set
and no ambient RateLimiterStore is present). Prefer composing
RateLimiter.layerStoreRedis at the app root for fleet budgets.
layers & serving
Source src/Gate.ts:5021 lines
export const const rateLimiterLayer: Layer.Layer<
RateLimiter,
never,
never
>
const rateLimiterLayer: {
build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<RateLimiter>, never, never>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
}
Soft in-memory rate-limiter layer (built automatically when rateLimit is set
and no ambient RateLimiterStore is present). Prefer composing
RateLimiter.layerStoreRedis at the app root for fleet budgets.
rateLimiterLayer = import internalinternal.const gateRateLimiterLayer: Layer.Layer<
RateLimiter,
never,
never
>
const gateRateLimiterLayer: {
build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<RateLimiter>, never, never>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
}
Soft in-memory
RateLimiterTag
- store — used when
rateLimit is set
and no ambient
RateLimiterStore
is in context. Compose
RateLimiter.layerStoreRedis at the app root for fleet-wide limiting.
gateRateLimiterLayer;