@effect-app/infra 4.0.0-beta.205 → 4.0.0-beta.207

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,54 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 4.0.0-beta.207
4
+
5
+ ### Patch Changes
6
+
7
+ - b0db40f: Router handlers are now discriminated by `Resource[K]["stream"]`:
8
+
9
+ - Stream resources (`stream: true`) accept only `(req) => Stream<...>` handlers.
10
+ - Non-stream resources accept only `(req) => Effect<...>` (or generator yielding `Yieldable`).
11
+
12
+ Mixing — e.g. returning `Effect.fail(...)` or `Effect<Stream<...>>` from a stream handler — no longer type-checks.
13
+
14
+ The runtime `Stream.unwrap` branch that lifted `Effect`/`Effect<Stream>` returns into a `Stream` is removed; handlers for stream resources must return a `Stream` directly. Migrate `Effect.gen(...).pipe(Stream.unwrap)` patterns by returning the `Stream` directly, and convert `Effect.fail(err)` in stream handlers to `Stream.fail(err)`.
15
+
16
+ - Updated dependencies [8fffc3c]
17
+ - effect-app@4.0.0-beta.207
18
+
19
+ ## 4.0.0-beta.206
20
+
21
+ ### Patch Changes
22
+
23
+ - 54bfc59: Require middleware to flow through `makeRpcClient` and the live layer through `makeRouter`.
24
+
25
+ ### `makeRpcClient(middleware, generalErrors?)`
26
+
27
+ Signature drops the `rcs` (request-context map wrapper) parameter. `rcs` was only load-bearing on the type side for `RequestConfig` inference; that information is now derived from `middleware.requestContextMap`. `middleware` is required — the previous "rcs + optional middleware" overload is gone.
28
+
29
+ **Migration**:
30
+
31
+ ```diff
32
+ -makeRpcClient(RequestContextMap, undefined, AppMiddleware)
33
+ +makeRpcClient(AppMiddleware)
34
+ ```
35
+
36
+ For tests/clients without a real middleware, build a minimal stub (`{ requestContextMap, requestContext }`) or pass any value satisfying `ClientMiddleware<RCM>`.
37
+
38
+ ### `makeRouter(middlewareLive)`
39
+
40
+ `makeRouter()` no longer infers the live middleware layer from `meta.middleware.Default`. The Live layer is now passed explicitly to `makeRouter`, and the request classes only carry the middleware tag (schema-only). This decouples the router from any assumption that the middleware tag exposes a `Default` static.
41
+
42
+ **Migration**:
43
+
44
+ ```diff
45
+ -export const { Router, matchAll } = makeRouter()
46
+ +export const { Router, matchAll } = makeRouter(AppMiddleware.Default)
47
+ ```
48
+
49
+ - Updated dependencies [54bfc59]
50
+ - effect-app@4.0.0-beta.206
51
+
3
52
  ## 4.0.0-beta.205
4
53
 
5
54
  ### Patch Changes
@@ -4,7 +4,6 @@ import { type GetEffectContext, type RpcContextMap } from "effect-app/rpc/RpcCon
4
4
  import { type TypeTestId } from "effect-app/TypeTest";
5
5
  import { type Yieldable } from "effect/Effect";
6
6
  import { Rpc, type RpcSerialization } from "effect/unstable/rpc";
7
- import { type RouterMiddleware } from "./routing/middleware.js";
8
7
  export * from "./routing/middleware.js";
9
8
  export declare const applyRequestTypeInterruptibility: <A, E, R>(requestType: "command" | "query", effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R> | Rpc.Wrapper<Effect.Effect<A, E, R>>;
10
9
  export type AnyRequestModule = S.Top & {
@@ -56,10 +55,11 @@ type AnyHandler<Action extends AnyRequestModule> = Handler<Action, RequestType,
56
55
  type FilterRequestModules<T> = {
57
56
  [K in keyof T as T[K] extends AnyRequestModule ? K : never]: T[K];
58
57
  };
59
- type Match<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = {
60
- <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: S.Schema.Type<Resource[Key]>) => Effect.Effect<A, E, R2>): Handler<Resource[Key], RT, Exclude<Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, Scope.Scope>>;
61
- <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: S.Schema.Type<Resource[Key]>) => Stream.Stream<A, E, R2>): Handler<Resource[Key], RT, Exclude<Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, Scope.Scope>>;
62
- };
58
+ type EffectMatch<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: S.Schema.Type<Resource[Key]>) => Effect.Effect<A, E, R2>) => Handler<Resource[Key], RT, Exclude<Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, Scope.Scope>>;
59
+ type StreamMatch<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: S.Schema.Type<Resource[Key]>) => Stream.Stream<A, E, R2>) => Handler<Resource[Key], RT, Exclude<Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, Scope.Scope>>;
60
+ type Match<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = Resource[Key] extends {
61
+ stream: true;
62
+ } ? StreamMatch<Resource, RequestContextMap, RT, Key> : EffectMatch<Resource, RequestContextMap, RT, Key>;
63
63
  export type RouteMatcher<RequestContextMap extends Record<string, any>, Resource extends Record<string, any>> = {
64
64
  [Key in keyof FilterRequestModules<Resource>]: Match<Resource, RequestContextMap, RequestTypes.DECODED, Key> & {
65
65
  success: Resource[Key]["success"];
@@ -72,45 +72,89 @@ export type RouteMatcher<RequestContextMap extends Record<string, any>, Resource
72
72
  };
73
73
  };
74
74
  export declare const skipOnProd: Effect.Effect<boolean, never, never>;
75
- export declare const makeRouter: <Self, RequestContextMap extends Record<string, RpcContextMap.Any>, MakeMiddlewareE, MakeMiddlewareR, ContextProviderA, ContextProviderE, ContextProviderR, RequestContextId>(middleware: RouterMiddleware<Self, RequestContextMap, MakeMiddlewareE, MakeMiddlewareR, ContextProviderA, ContextProviderE, ContextProviderR, RequestContextId>) => {
75
+ type ProvidesOf<MW> = MW extends {
76
+ readonly provides: infer P;
77
+ } ? P : never;
78
+ type RequestContextMapOf<MW> = MW extends {
79
+ requestContextMap: infer RCM extends Record<string, RpcContextMap.Any>;
80
+ } ? RCM : Record<string, never>;
81
+ type LayerNormalize<L> = L extends Layer.Layer<any, infer E, infer R> ? Layer.Layer<never, E, R> : Layer.Layer<never, never, never>;
82
+ type LayerSuccess<L> = L extends Layer.Layer<infer A, any, any> ? A : never;
83
+ /**
84
+ * Middleware tags are typically passed to `makeRpcClient` as the class value, so
85
+ * the captured `MW` is a constructor type. Layers carry the *instance* type as
86
+ * their success channel. Bridge the two so the constraint compares like-with-like.
87
+ *
88
+ * Effect middleware classes declare `new(_: never): Shape` which the standard
89
+ * `T extends abstract new (...args: any) => infer I` form sometimes fails to
90
+ * narrow. Use the `prototype` member instead — it is always the instance type.
91
+ */
92
+ type MWService<MW> = MW extends {
93
+ readonly prototype: infer P;
94
+ } ? P : MW;
95
+ /**
96
+ * Type-level guard: emits a structural mismatch on `Resource` when the middleware
97
+ * service identifier extracted from the resource's request classes is not provided
98
+ * by the layer passed to `makeRouter`. When `MW` is `never` (no middleware on the
99
+ * resource) or already a subtype of the layer's success, this resolves to `unknown`
100
+ * and intersects harmlessly with `Resource`.
101
+ */
102
+ type EnsureMiddlewareProvided<Live, MW> = [MW] extends [never] ? unknown : [MWService<MW>] extends [LayerSuccess<Live>] ? unknown : {
103
+ readonly __middlewareNotProvidedByRouterLayer: {
104
+ readonly expected: MWService<MW>;
105
+ readonly providedByLayer: LayerSuccess<Live>;
106
+ };
107
+ };
108
+ type SafeGetEffectContext<RCM, Config> = RCM extends Record<string, RpcContextMap.Any> ? GetEffectContext<RCM, Config> : never;
109
+ export declare const makeRouter: <Live extends Layer.Layer<any, any, any> = Layer.Layer<any, never, never>>(middlewareLive?: Live) => {
76
110
  matchAll: <T extends {
77
111
  [key: string]: Layer.Layer<never, any, any>;
78
112
  }>(handlers: T) => Layer.Layer<never, Layer.Error<(typeof handlers)[keyof typeof handlers]>, Layer.Services<(typeof handlers)[keyof typeof handlers]>>;
79
- Router: <const Resource extends Record<string, any>>(rsc: Resource, options?: {
113
+ Router: <const Resource extends Record<string, any>, MW = Exclude<{ [K in keyof Resource]: Resource[K] extends {
114
+ readonly middleware?: infer MW_1;
115
+ } ? NonNullable<MW_1> : never; }[keyof Resource], never>>(rsc: Resource & EnsureMiddlewareProvided<Live, MW>, options?: {
80
116
  check?: Effect.Effect<boolean>;
81
117
  }) => {
82
118
  <const Make extends {
83
119
  dependencies?: ReadonlyArray<Layer.Any>;
84
- effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: (((req: S.Schema.Type<Resource[K]>) => Effect.Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | ((req: S.Schema.Type<Resource[K]>) => Generator<Yieldable<any, any, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Stream.Stream<S.Schema.Type<GetSuccess<Resource[K]>>, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>)) | ({
85
- raw: (req: S.Schema.Type<Resource[K]>) => Generator<Yieldable<any, any, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>, S.Codec.Encoded<GetSuccess<Resource[K]>>, never>;
120
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: (Resource[K] extends infer T ? T extends Resource[K] ? T extends {
121
+ stream: true;
122
+ } ? (req: S.Schema.Type<T>) => Stream.Stream<S.Schema.Type<GetSuccess<T>>, S.SchemaError | S.Schema.Type<GetFailure<T>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>> : ((req: S.Schema.Type<T>) => Effect.Effect<S.Schema.Type<GetSuccess<T>>, S.SchemaError | S.Schema.Type<GetFailure<T>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>) | ((req: S.Schema.Type<T>) => Generator<Yieldable<any, any, S.SchemaError | S.Schema.Type<GetFailure<T>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>, S.Schema.Type<GetSuccess<T>>, never>) : never : never) | (Resource[K] extends infer T_1 ? T_1 extends Resource[K] ? T_1 extends {
123
+ stream: true;
124
+ } ? {
125
+ raw: (req: S.Schema.Type<T_1>) => Stream.Stream<S.Codec.Encoded<GetSuccess<T_1>>, S.SchemaError | S.Schema.Type<GetFailure<T_1>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
126
+ } : {
127
+ raw: (req: S.Schema.Type<T_1>) => Generator<Yieldable<any, any, S.SchemaError | S.Schema.Type<GetFailure<T_1>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>, S.Codec.Encoded<GetSuccess<T_1>>, never>;
86
128
  } | {
87
- raw: (req: S.Schema.Type<Resource[K]>) => Effect.Effect<S.Codec.Encoded<GetSuccess<Resource[K]>>, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
88
- } | {
89
- raw: (req: S.Schema.Type<Resource[K]>) => Stream.Stream<S.Codec.Encoded<GetSuccess<Resource[K]>>, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
90
- }); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
129
+ raw: (req: S.Schema.Type<T_1>) => Effect.Effect<S.Codec.Encoded<GetSuccess<T_1>>, S.SchemaError | S.Schema.Type<GetFailure<T_1>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
130
+ } : never : never); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
91
131
  raw: any;
92
132
  } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
93
133
  raw: any;
94
- } ? Impl[K]["raw"] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<Yieldable<any, any, any, infer R>> ? R : never : Impl[K] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<Yieldable<any, any, any, infer R>> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Generator<Yieldable<any, any, any, any>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }>;
134
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<Yieldable<any, any, any, infer R>> ? R : never : Impl[K] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<Yieldable<any, any, any, infer R>> ? R : never, SafeGetEffectContext<RequestContextMapOf<MW>, Resource[K]["config"]> | ProvidesOf<MW>>, Scope.Scope>>; }) => Generator<Yieldable<any, any, any, any>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }>;
95
135
  /** @deprecated */
96
136
  readonly ಠ_ಠ: never;
97
- }>(make: Make): Layer.Layer<never, MakeErrors<Make> | MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, MakeDepsIn<Make> | Layer.Services<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>> | RpcSerialization.RpcSerialization> & {
137
+ }>(make: Make): Layer.Layer<never, MakeErrors<Make> | MakeDepsE<Make> | Layer.Error<LayerNormalize<Live>>, MakeDepsIn<Make> | Layer.Services<LayerNormalize<Live>> | Exclude<MakeContext<Make>, MakeDepsOut<Make>> | RpcSerialization.RpcSerialization> & {
98
138
  [TypeTestId]: Make;
99
139
  };
100
140
  <const Make extends {
101
141
  dependencies?: ReadonlyArray<Layer.Any>;
102
- effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: (((req: S.Schema.Type<Resource[K]>) => Effect.Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | ((req: S.Schema.Type<Resource[K]>) => Generator<Yieldable<any, any, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Stream.Stream<S.Schema.Type<GetSuccess<Resource[K]>>, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>)) | ({
103
- raw: (req: S.Schema.Type<Resource[K]>) => Generator<Yieldable<any, any, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>, S.Codec.Encoded<GetSuccess<Resource[K]>>, never>;
104
- } | {
105
- raw: (req: S.Schema.Type<Resource[K]>) => Effect.Effect<S.Codec.Encoded<GetSuccess<Resource[K]>>, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
142
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: (Resource[K] extends infer T ? T extends Resource[K] ? T extends {
143
+ stream: true;
144
+ } ? (req: S.Schema.Type<T>) => Stream.Stream<S.Schema.Type<GetSuccess<T>>, S.SchemaError | S.Schema.Type<GetFailure<T>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>> : ((req: S.Schema.Type<T>) => Effect.Effect<S.Schema.Type<GetSuccess<T>>, S.SchemaError | S.Schema.Type<GetFailure<T>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>) | ((req: S.Schema.Type<T>) => Generator<Yieldable<any, any, S.SchemaError | S.Schema.Type<GetFailure<T>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>, S.Schema.Type<GetSuccess<T>>, never>) : never : never) | (Resource[K] extends infer T_1 ? T_1 extends Resource[K] ? T_1 extends {
145
+ stream: true;
146
+ } ? {
147
+ raw: (req: S.Schema.Type<T_1>) => Stream.Stream<S.Codec.Encoded<GetSuccess<T_1>>, S.SchemaError | S.Schema.Type<GetFailure<T_1>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
148
+ } : {
149
+ raw: (req: S.Schema.Type<T_1>) => Generator<Yieldable<any, any, S.SchemaError | S.Schema.Type<GetFailure<T_1>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>, S.Codec.Encoded<GetSuccess<T_1>>, never>;
106
150
  } | {
107
- raw: (req: S.Schema.Type<Resource[K]>) => Stream.Stream<S.Codec.Encoded<GetSuccess<Resource[K]>>, S.SchemaError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
108
- }); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
151
+ raw: (req: S.Schema.Type<T_1>) => Effect.Effect<S.Codec.Encoded<GetSuccess<T_1>>, S.SchemaError | S.Schema.Type<GetFailure<T_1>>, ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
152
+ } : never : never); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
109
153
  raw: any;
110
154
  } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
111
155
  raw: any;
112
- } ? Impl[K]["raw"] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<Yieldable<any, any, any, infer R>> ? R : never : Impl[K] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<Yieldable<any, any, any, infer R>> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Generator<Yieldable<any, any, any, any>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }>;
113
- }>(make: Make): Layer.Layer<never, MakeErrors<Make> | MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, MakeDepsIn<Make> | Layer.Services<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>> | RpcSerialization.RpcSerialization> & {
156
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<Yieldable<any, any, any, infer R>> ? R : never : Impl[K] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<Yieldable<any, any, any, infer R>> ? R : never, SafeGetEffectContext<RequestContextMapOf<MW>, Resource[K]["config"]> | ProvidesOf<MW>>, Scope.Scope>>; }) => Generator<Yieldable<any, any, any, any>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }>;
157
+ }>(make: Make): Layer.Layer<never, MakeErrors<Make> | MakeDepsE<Make> | Layer.Error<LayerNormalize<Live>>, MakeDepsIn<Make> | Layer.Services<LayerNormalize<Live>> | Exclude<MakeContext<Make>, MakeDepsOut<Make>> | RpcSerialization.RpcSerialization> & {
114
158
  readonly [TypeTestId]: Make;
115
159
  };
116
160
  };
@@ -134,4 +178,4 @@ export type MakeHandlers<Make, _Handlers extends Record<string, any>> = Make ext
134
178
  export type MakeDepsE<Make> = Layer.Error<MakeDeps<Make>>;
135
179
  export type MakeDepsIn<Make> = Layer.Services<MakeDeps<Make>>;
136
180
  export type MakeDepsOut<Make> = Layer.Success<MakeDeps<Make>>;
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBVSxNQUFNLEVBQUUsS0FBSyxFQUE4QyxDQUFDLEVBQUUsS0FBSyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXJILE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWxELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUF1QixLQUFLLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzdHLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXJELE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFZLEtBQUssZ0JBQWdCLEVBQWEsTUFBTSxxQkFBcUIsQ0FBQTtBQUVyRixPQUFPLEVBQXdDLEtBQUssZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUVyRyxjQUFjLHlCQUF5QixDQUFBO0FBRXZDLGVBQU8sTUFBTSxnQ0FBZ0MsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFDekMsU0FBUyxHQUFHLE9BQU8sVUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxpRUFDcUMsQ0FBQTtBQUlyRSxNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRztJQUNyQyxJQUFJLEVBQUUsTUFBTSxDQUFBO0lBQ1osSUFBSSxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUE7SUFDekIsTUFBTSxFQUFFLE9BQU8sQ0FBQTtJQUNmLE1BQU0sRUFBRSxHQUFHLENBQUE7SUFDWCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNkLEtBQUssRUFBRSxDQUFDLENB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RUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7Q0FBRSxHQUFHLENBQUMsR0FDOUYsS0FBSyxDQUFBO0FBRVgsTUFBTSxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxTQUFTLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBSWxFLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtDQUFFLEdBQUcsQ0FBQyxHQUNyRSxLQUFLLENBQUE7QUFFWCxNQUFNLE1BQU0sU0FBUyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBRXpELE1BQU0sTUFBTSxVQUFVLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7QUFFN0QsTUFBTSxNQUFNLFdBQVcsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSJ9
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBVSxNQUFNLEVBQUUsS0FBSyxFQUE4QyxDQUFDLEVBQUUsS0FBSyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXJILE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWxELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUF1QixLQUFLLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzdHLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXJELE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFZLEtBQUssZ0JBQWdCLEVBQWEsTUFBTSxxQkFBcUIsQ0FBQTtBQUlyRixjQUFjLHlCQUF5QixDQUFBO0FBRXZDLGVBQU8sTUFBTSxnQ0FBZ0MsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFDekMsU0FBUyxHQUFHLE9BQU8sVUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxpRUFDcUMsQ0FBQTtBQUlyRSxNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRztJQUNyQyxJQUFJLEVBQUUsTUFBTSxDQUFBO0lBQ1osSUFBSSxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUE7SUFDekIsTUFBTSxFQUFFLE9BQU8sQ0FBQTtJQUNmLE1BQU0sRUFBRSxHQUFHLENBQUE7SUFDWCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNkLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFBO0NBQ2IsQ0FBQTtBQUdELE1BQU0sV0FBVyxTQUFTLENBQUMsT0FB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TyxDQUNMLE9BQU8sQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDekUsS0FBSyxDQUFDLEtBQUssQ0FDWixDQUNGLENBQUE7QUFFRCxLQUFLLFdBQVcsQ0FDZCxRQUFRLFNBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFDcEMsaUJBQWlCLFNBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFDN0MsRUFBRSxTQUFTLFdBQVcsRUFDdEIsR0FBRyxTQUFTLE1BQU0sUUFBUSxJQUN4QixDQUFDLENBQUMsU0FBUyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFDdEUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FDOUQsT0FBTyxDQUNWLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFDYixFQUFFLEVBQ0YsT0FBTyxDQUNMLE9BQU8sQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDekUsS0FBSyxDQUFDLEtBQUssQ0FDWixDQUNGLENBQUE7QUFJRCxLQUFLLEtBQUssQ0FDUixRQUFRLFNBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFDcEMsaUJBQWlCLFNBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFDN0MsRUFBRSxTQUFTLFdBQVcsRUFDdEIsR0FBRyxTQUFTLE1BQU0sUUFBUSxJQUN4QixRQUFRLENBQUMsR0FBRyxDQUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/api/routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/api/routing.ts"],"names":[],"mappings":"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"}
@@ -24,10 +24,12 @@ export const skipOnProd = Effect
24
24
  return env !== "prod";
25
25
  })
26
26
  .pipe(Effect.orDie);
27
- export const makeRouter = (middleware) => {
27
+ export const makeRouter = (middlewareLive) => {
28
28
  /**
29
- * Create a Router for specified resource
30
- * if `check` is provided, the router will only be created if the effect succeeds with true
29
+ * Create a Router for specified resource.
30
+ * Middleware schema/tag is read from the request classes (stored via `makeRpcClient`).
31
+ * The middleware **Live** layer is the one passed to `makeRouter`.
32
+ * If `check` is provided, the router will only be created if the effect succeeds with true.
31
33
  */
32
34
  function matchFor(rsc, options) {
33
35
  const meta = getMeta(rsc);
@@ -85,6 +87,8 @@ export const makeRouter = (middleware) => {
85
87
  ? Effect.fnUntraced(make)(router3)
86
88
  : make(router3));
87
89
  const controllers = yield* finalMake;
90
+ // Read the middleware from the resource's request classes at runtime
91
+ const mw = meta.middleware;
88
92
  // return make.pipe(Effect.map((c) => controllers(c, dependencies)))
89
93
  const mapped = typedKeysOf(requestModules).reduce((acc, cur) => {
90
94
  const handler = controllers[cur];
@@ -96,14 +100,8 @@ export const makeRouter = (middleware) => {
96
100
  }
97
101
  : resource,
98
102
  (payload, headers) => {
99
- let result = handler.handler(payload, headers);
100
- // Stream resources accept handlers returning either Stream or Effect.
101
- // Lift Effect to Stream so `Effect.fail(...)` and `Effect<Stream>` (e.g.
102
- // from generator handlers) work the same as a returned Stream.
103
- if (resource.stream && Effect.isEffect(result)) {
104
- result = Stream.unwrap(result.pipe(Effect.map((v) => Stream.isStream(v) ? v : Stream.succeed(v))));
105
- }
106
- if (Stream.isStream(result)) {
103
+ const result = handler.handler(payload, headers);
104
+ if (resource.stream) {
107
105
  // Wrap stream items as { _tag: "value", value } and append a final
108
106
  // { _tag: "done", metadata } chunk carrying accumulated invalidation keys.
109
107
  // V2: on failure, convert to { _tag: "error", error, metadata } chunk so
@@ -176,11 +174,11 @@ export const makeRouter = (middleware) => {
176
174
  error: resource.error,
177
175
  stream: isStream
178
176
  }))
179
- .annotate(middleware.requestContext, resource.config ?? {})
177
+ .annotate(mw.requestContext, resource.config ?? {})
180
178
  .annotate(RequestTypeAnnotation, resource.type);
181
179
  }))
182
180
  .prefix(`${meta.moduleName}.`)
183
- .middleware(middleware);
181
+ .middleware(mw);
184
182
  const rpc = rpcs
185
183
  .toLayer(Effect.gen(function* () {
186
184
  return typedValuesOf(mapped).reduce((acc, [resource, handler]) => {
@@ -200,7 +198,7 @@ export const makeRouter = (middleware) => {
200
198
  .pipe(Layer.unwrap);
201
199
  const routes = layer.pipe(Layer.provide([
202
200
  dependenciesL,
203
- middleware.Default
201
+ (middlewareLive ?? Layer.empty)
204
202
  ]));
205
203
  const check = options?.check;
206
204
  return check
@@ -227,4 +225,4 @@ export const makeRouter = (middleware) => {
227
225
  Router: matchFor
228
226
  };
229
227
  };
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvcm91dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELDREQUE0RDtBQUM1RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE4QixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBYyxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUc3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRTdELE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUF5QixTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVyRixPQUFPLEVBQUUsV0FBVyxJQUFJLHFCQUFxQixFQUF5QixNQUFNLHlCQUF5QixDQUFBO0FBRXJHLGNBQWMseUJBQXlCLENBQUE7QUFFdkMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FDOUMsV0FBZ0MsRUFDaEMsTUFBOEIsRUFDOUIsRUFBRSxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtBQWdDckUsUUFBUTtBQUNSLHVDQUF1QztBQUN2Qyw0Q0FBNEM7QUFDNUMsSUFBVSxZQUFZLENBS3JCO0FBTEQsV0FBVSxZQUFZO0lBQ1Asb0JBQU8sR0FBRyxHQUFZLENBQUE7SUFFdEIsZ0JBQUcsR0FBRyxLQUFjLENBQUE7QUFFbkMsQ0FBQyxFQUxTLFlBQVksS0FBWixZQUFZLFFBS3JCO0FBc0dELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxN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
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvcm91dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELDREQUE0RDtBQUM1RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE4QixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBYyxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUc3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRTdELE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUF5QixTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVyRixPQUFPLEVBQUUsV0FBVyxJQUFJLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFOUUsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUM5QyxXQUFnQyxFQUNoQyxNQUE4QixFQUM5QixFQUFFLENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBZ0NyRSxRQUFRO0FBQ1IsdUNBQXVDO0FBQ3ZDLDRDQUE0QztBQUM1QyxJQUFVLFlBQVksQ0FLckI7QUFMRCxXQUFVLFlBQVk7SUFDUCxvQkFBTyxHQUFHLEdBQVksQ0FBQTtJQUV0QixnQkFBRyxHQUFHLEtBQWMsQ0FBQTtBQUVuQyxDQUFDLEVBTFMsWUFBWSxLQUFaLFlBQVksUUFLckI7QUFrSEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1B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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "4.0.0-beta.205",
3
+ "version": "4.0.0-beta.207",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -13,7 +13,7 @@
13
13
  "proper-lockfile": "^4.1.2",
14
14
  "pure-rand": "8.4.0",
15
15
  "query-string": "^9.3.1",
16
- "effect-app": "4.0.0-beta.205"
16
+ "effect-app": "4.0.0-beta.207"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@azure/cosmos": "^4.9.3",
@@ -12,7 +12,7 @@ import { typedKeysOf, typedValuesOf } from "effect-app/utils"
12
12
  import { type Yieldable } from "effect/Effect"
13
13
  import { Rpc, RpcGroup, type RpcSerialization, RpcServer } from "effect/unstable/rpc"
14
14
  import { type LayerUtils } from "./layerUtils.js"
15
- import { RequestType as RequestTypeAnnotation, type RouterMiddleware } from "./routing/middleware.js"
15
+ import { RequestType as RequestTypeAnnotation } from "./routing/middleware.js"
16
16
 
17
17
  export * from "./routing/middleware.js"
18
18
 
@@ -110,35 +110,47 @@ type RpcRouteR<
110
110
  ] ? R
111
111
  : never
112
112
 
113
- type Match<
113
+ type EffectMatch<
114
114
  Resource extends Record<string, any>,
115
115
  RequestContextMap extends Record<string, any>,
116
116
  RT extends RequestType,
117
117
  Key extends keyof Resource
118
- > = {
119
- // note: the defaults of = never prevent the whole router to error (??)
120
- <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(
121
- f: (req: S.Schema.Type<Resource[Key]>) => Effect.Effect<A, E, R2>
122
- ): Handler<
123
- Resource[Key],
124
- RT,
125
- Exclude<
126
- Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>,
127
- Scope.Scope
128
- >
118
+ > = <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(
119
+ f: (req: S.Schema.Type<Resource[Key]>) => Effect.Effect<A, E, R2>
120
+ ) => Handler<
121
+ Resource[Key],
122
+ RT,
123
+ Exclude<
124
+ Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>,
125
+ Scope.Scope
129
126
  >
127
+ >
130
128
 
131
- <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(
132
- f: (req: S.Schema.Type<Resource[Key]>) => Stream.Stream<A, E, R2>
133
- ): Handler<
134
- Resource[Key],
135
- RT,
136
- Exclude<
137
- Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>,
138
- Scope.Scope
139
- >
129
+ type StreamMatch<
130
+ Resource extends Record<string, any>,
131
+ RequestContextMap extends Record<string, any>,
132
+ RT extends RequestType,
133
+ Key extends keyof Resource
134
+ > = <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(
135
+ f: (req: S.Schema.Type<Resource[Key]>) => Stream.Stream<A, E, R2>
136
+ ) => Handler<
137
+ Resource[Key],
138
+ RT,
139
+ Exclude<
140
+ Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>,
141
+ Scope.Scope
140
142
  >
141
- }
143
+ >
144
+
145
+ // Stream resources only accept Stream / Effect<Stream> handlers; non-stream resources
146
+ // only accept Effect handlers. Discriminated by the request module's `stream` flag.
147
+ type Match<
148
+ Resource extends Record<string, any>,
149
+ RequestContextMap extends Record<string, any>,
150
+ RT extends RequestType,
151
+ Key extends keyof Resource
152
+ > = Resource[Key] extends { stream: true } ? StreamMatch<Resource, RequestContextMap, RT, Key>
153
+ : EffectMatch<Resource, RequestContextMap, RT, Key>
142
154
 
143
155
  export type RouteMatcher<
144
156
  RequestContextMap extends Record<string, any>,
@@ -168,37 +180,81 @@ export const skipOnProd = Effect
168
180
  })
169
181
  .pipe(Effect.orDie)
170
182
 
171
- export const makeRouter = <
172
- Self,
173
- RequestContextMap extends Record<string, RpcContextMap.Any>,
174
- MakeMiddlewareE,
175
- MakeMiddlewareR,
176
- ContextProviderA,
177
- ContextProviderE,
178
- ContextProviderR,
179
- RequestContextId
180
- >(
181
- middleware: RouterMiddleware<
182
- Self,
183
- RequestContextMap,
184
- MakeMiddlewareE,
185
- MakeMiddlewareR,
186
- ContextProviderA,
187
- ContextProviderE,
188
- ContextProviderR,
189
- RequestContextId
190
- >
183
+ // Type helpers to extract middleware information from a resource's request classes.
184
+ type MiddlewareOf<M extends Record<string, any>> = Exclude<
185
+ { [K in keyof M]: M[K] extends { readonly middleware?: infer MW } ? NonNullable<MW> : never }[keyof M],
186
+ never
187
+ >
188
+ type ProvidesOf<MW> = MW extends { readonly provides: infer P } ? P : never
189
+ type RequestContextMapOf<MW> = MW extends {
190
+ requestContextMap: infer RCM extends Record<string, RpcContextMap.Any>
191
+ } ? RCM
192
+ : Record<string, never>
193
+ type LayerNormalize<L> = L extends Layer.Layer<any, infer E, infer R> ? Layer.Layer<never, E, R>
194
+ : Layer.Layer<never, never, never>
195
+ type LayerSuccess<L> = L extends Layer.Layer<infer A, any, any> ? A : never
196
+
197
+ /**
198
+ * Middleware tags are typically passed to `makeRpcClient` as the class value, so
199
+ * the captured `MW` is a constructor type. Layers carry the *instance* type as
200
+ * their success channel. Bridge the two so the constraint compares like-with-like.
201
+ *
202
+ * Effect middleware classes declare `new(_: never): Shape` which the standard
203
+ * `T extends abstract new (...args: any) => infer I` form sometimes fails to
204
+ * narrow. Use the `prototype` member instead — it is always the instance type.
205
+ */
206
+ type MWService<MW> = MW extends { readonly prototype: infer P } ? P : MW
207
+
208
+ /**
209
+ * Type-level guard: emits a structural mismatch on `Resource` when the middleware
210
+ * service identifier extracted from the resource's request classes is not provided
211
+ * by the layer passed to `makeRouter`. When `MW` is `never` (no middleware on the
212
+ * resource) or already a subtype of the layer's success, this resolves to `unknown`
213
+ * and intersects harmlessly with `Resource`.
214
+ */
215
+ type EnsureMiddlewareProvided<Live, MW> = [MW] extends [never] ? unknown
216
+ : [MWService<MW>] extends [LayerSuccess<Live>] ? unknown
217
+ : {
218
+ readonly __middlewareNotProvidedByRouterLayer: {
219
+ readonly expected: MWService<MW>
220
+ readonly providedByLayer: LayerSuccess<Live>
221
+ }
222
+ }
223
+
224
+ // Safe wrappers that check the constraint before calling GetEffectContext/GetEffectError.
225
+ // These avoid TypeScript constraint errors when the RC map type is deferred (generic).
226
+ type SafeGetEffectContext<RCM, Config> = RCM extends Record<string, RpcContextMap.Any> ? GetEffectContext<RCM, Config>
227
+ : never
228
+ type SafeGetEffectError<RCM, Config> = RCM extends Record<string, RpcContextMap.Any> ? GetEffectError<RCM, Config>
229
+ : never
230
+
231
+ export const makeRouter = <Live extends Layer.Layer<any, any, any> = Layer.Layer<any, never, never>>(
232
+ middlewareLive?: Live
191
233
  ) => {
234
+ type ResourceMWDefault = LayerNormalize<Live>
235
+
192
236
  /**
193
- * Create a Router for specified resource
194
- * if `check` is provided, the router will only be created if the effect succeeds with true
237
+ * Create a Router for specified resource.
238
+ * Middleware schema/tag is read from the request classes (stored via `makeRpcClient`).
239
+ * The middleware **Live** layer is the one passed to `makeRouter`.
240
+ * If `check` is provided, the router will only be created if the effect succeeds with true.
195
241
  */
196
242
  function matchFor<
197
- const Resource extends Record<string, any>
243
+ const Resource extends Record<string, any>,
244
+ MW = MiddlewareOf<Resource>
198
245
  >(
199
- rsc: Resource,
246
+ rsc: Resource & EnsureMiddlewareProvided<Live, MW>,
200
247
  options?: { check?: Effect.Effect<boolean> }
201
248
  ) {
249
+ // MW is a defaulted type parameter so TypeScript evaluates MiddlewareOf<Resource>
250
+ // eagerly at each call site, producing a concrete type instead of a deferred conditional.
251
+ type ResourceRequestContextMap = RequestContextMapOf<MW>
252
+ type ResourceContextProviderA = ProvidesOf<MW>
253
+
254
+ type HandlerContext<Action extends AnyRequestModule> =
255
+ | SafeGetEffectContext<ResourceRequestContextMap, Action["config"]>
256
+ | ResourceContextProviderA
257
+
202
258
  type HandlerWithInputGen<
203
259
  Action extends AnyRequestModule,
204
260
  RT extends RequestType
@@ -211,7 +267,7 @@ export const makeRouter = <
211
267
  S.Schema.Type<GetFailure<Action>> | S.SchemaError,
212
268
  // the actual implementation of the handler may just require the dynamic context provided by the middleware
213
269
  // and the per request context provided by the context provider
214
- GetEffectContext<RequestContextMap, Action["config"]> | ContextProviderA
270
+ HandlerContext<Action>
215
271
  >,
216
272
  GetSuccessShape<Action, RT>,
217
273
  never
@@ -227,7 +283,7 @@ export const makeRouter = <
227
283
  S.Schema.Type<GetFailure<Action>> | S.SchemaError,
228
284
  // the actual implementation of the handler may just require the dynamic context provided by the middleware
229
285
  // and the per request context provided by the context provider
230
- GetEffectContext<RequestContextMap, Action["config"]> | ContextProviderA
286
+ HandlerContext<Action>
231
287
  >
232
288
 
233
289
  type HandlerWithInputStream<
@@ -238,20 +294,21 @@ export const makeRouter = <
238
294
  ) => Stream.Stream<
239
295
  GetSuccessShape<Action, RT>,
240
296
  S.Schema.Type<GetFailure<Action>> | S.SchemaError,
241
- GetEffectContext<RequestContextMap, Action["config"]> | ContextProviderA
297
+ HandlerContext<Action>
242
298
  >
243
299
 
244
- type Handlers<Action extends AnyRequestModule, RT extends RequestType> =
245
- | HandlerWithInputGen<Action, RT>
246
- | HandlerWithInputEff<Action, RT>
247
- | HandlerWithInputStream<Action, RT>
300
+ // Stream resources only accept `(req) => Stream`; non-stream only Effect / Generator.
301
+ type Handlers<Action extends AnyRequestModule, RT extends RequestType> = Action extends { stream: true }
302
+ ? HandlerWithInputStream<Action, RT>
303
+ : HandlerWithInputGen<Action, RT> | HandlerWithInputEff<Action, RT>
248
304
 
249
305
  type HandlersDecoded<Action extends AnyRequestModule> = Handlers<Action, RequestTypes.DECODED>
250
306
 
251
- type HandlersRaw<Action extends AnyRequestModule> =
252
- | { raw: HandlerWithInputGen<Action, RequestTypes.RAW> }
253
- | { raw: HandlerWithInputEff<Action, RequestTypes.RAW> }
254
- | { raw: HandlerWithInputStream<Action, RequestTypes.RAW> }
307
+ type HandlersRaw<Action extends AnyRequestModule> = Action extends { stream: true }
308
+ ? { raw: HandlerWithInputStream<Action, RequestTypes.RAW> }
309
+ :
310
+ | { raw: HandlerWithInputGen<Action, RequestTypes.RAW> }
311
+ | { raw: HandlerWithInputEff<Action, RequestTypes.RAW> }
255
312
 
256
313
  type AnyHandlers<Action extends AnyRequestModule> = HandlersRaw<Action> | HandlersDecoded<Action>
257
314
 
@@ -299,7 +356,7 @@ export const makeRouter = <
299
356
  })
300
357
  return prev
301
358
  },
302
- {} as RouteMatcher<RequestContextMap, Resource>
359
+ {} as RouteMatcher<ResourceRequestContextMap, Resource>
303
360
  )
304
361
 
305
362
  const router3: <
@@ -328,8 +385,8 @@ export const makeRouter = <
328
385
  Yieldable<any, any, any, infer R>
329
386
  > ? R
330
387
  : never,
331
- | GetEffectContext<RequestContextMap, Resource[K]["config"]>
332
- | ContextProviderA
388
+ | SafeGetEffectContext<ResourceRequestContextMap, Resource[K]["config"]>
389
+ | ResourceContextProviderA
333
390
  >,
334
391
  Scope.Scope
335
392
  >
@@ -370,6 +427,9 @@ export const makeRouter = <
370
427
 
371
428
  const controllers = yield* finalMake
372
429
 
430
+ // Read the middleware from the resource's request classes at runtime
431
+ const mw = meta.middleware as any
432
+
373
433
  // return make.pipe(Effect.map((c) => controllers(c, dependencies)))
374
434
  const mapped = typedKeysOf(requestModules).reduce((acc, cur) => {
375
435
  const handler = controllers[cur as keyof typeof controllers]
@@ -382,18 +442,8 @@ export const makeRouter = <
382
442
  } as any
383
443
  : resource,
384
444
  (payload: any, headers: any) => {
385
- let result: any = handler.handler(payload, headers)
386
- // Stream resources accept handlers returning either Stream or Effect.
387
- // Lift Effect to Stream so `Effect.fail(...)` and `Effect<Stream>` (e.g.
388
- // from generator handlers) work the same as a returned Stream.
389
- if (resource.stream && Effect.isEffect(result)) {
390
- result = Stream.unwrap(
391
- (result as Effect.Effect<unknown, unknown, unknown>).pipe(
392
- Effect.map((v) => Stream.isStream(v) ? v : Stream.succeed(v))
393
- )
394
- )
395
- }
396
- if (Stream.isStream(result)) {
445
+ const result: any = handler.handler(payload, headers)
446
+ if (resource.stream) {
397
447
  // Wrap stream items as { _tag: "value", value } and append a final
398
448
  // { _tag: "done", metadata } chunk carrying accumulated invalidation keys.
399
449
  // V2: on failure, convert to { _tag: "error", error, metadata } chunk so
@@ -495,10 +545,10 @@ export const makeRouter = <
495
545
  ) => Effect.Effect<
496
546
  Effect.Success<ReturnType<THandlers[K]["handler"]>>,
497
547
  | Effect.Error<ReturnType<THandlers[K]["handler"]>>
498
- | GetEffectError<RequestContextMap, Resource[K]["config"]>,
548
+ | SafeGetEffectError<ResourceRequestContextMap, Resource[K]["config"]>,
499
549
  Exclude<
500
550
  Effect.Services<ReturnType<THandlers[K]["handler"]>>,
501
- ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>
551
+ ResourceContextProviderA | SafeGetEffectContext<ResourceRequestContextMap, Resource[K]["config"]>
502
552
  >
503
553
  >
504
554
  ]
@@ -528,12 +578,12 @@ export const makeRouter = <
528
578
  error: resource.error,
529
579
  stream: isStream
530
580
  }))
531
- .annotate(middleware.requestContext, resource.config ?? {})
581
+ .annotate(mw.requestContext, resource.config ?? {})
532
582
  .annotate(RequestTypeAnnotation, resource.type)
533
583
  })
534
584
  )
535
585
  .prefix(`${meta.moduleName}.`)
536
- .middleware(middleware as any)
586
+ .middleware(mw)
537
587
 
538
588
  const rpc = rpcs
539
589
  .toLayer(Effect.gen(function*() {
@@ -561,7 +611,7 @@ export const makeRouter = <
561
611
  const routes = layer.pipe(
562
612
  Layer.provide([
563
613
  dependenciesL,
564
- middleware.Default
614
+ (middlewareLive ?? Layer.empty) as Layer.Layer<any, any, any>
565
615
  ])
566
616
  )
567
617
 
@@ -603,9 +653,9 @@ export const makeRouter = <
603
653
  never,
604
654
  | MakeErrors<Make>
605
655
  | MakeDepsE<Make>
606
- | Layer.Error<typeof middleware.Default>,
656
+ | Layer.Error<ResourceMWDefault>,
607
657
  | MakeDepsIn<Make>
608
- | Layer.Services<typeof middleware.Default>
658
+ | Layer.Services<ResourceMWDefault>
609
659
  | Exclude<
610
660
  MakeContext<Make>,
611
661
  MakeDepsOut<Make>
@@ -632,9 +682,9 @@ export const makeRouter = <
632
682
  never,
633
683
  | MakeErrors<Make>
634
684
  | MakeDepsE<Make>
635
- | Layer.Error<typeof middleware.Default>,
685
+ | Layer.Error<ResourceMWDefault>,
636
686
  | MakeDepsIn<Make>
637
- | Layer.Services<typeof middleware.Default>
687
+ | Layer.Services<ResourceMWDefault>
638
688
  | Exclude<
639
689
  MakeContext<Make>,
640
690
  MakeDepsOut<Make>
@@ -187,13 +187,6 @@ const middlewareQuater = MiddlewareMaker
187
187
 
188
188
  expectTypeOf(middleware["Service"]).toEqualTypeOf<typeof middlewareQuater["Service"]>()
189
189
 
190
- const middleware2 = MiddlewareMaker
191
- .Tag()("middleware", RequestContextMap)
192
- .middleware(MyContextProvider)
193
- .middleware(RequireRoles, Test)
194
- .middleware(AllowAnonymous)
195
- .middleware(...DefaultGenericMiddlewares, BogusMiddleware, MyContextProvider2)
196
-
197
190
  export const middleware3 = MiddlewareMaker
198
191
  .Tag()("middleware", RequestContextMap)
199
192
  .middleware(...genericMiddlewares)
@@ -201,7 +194,7 @@ export const middleware3 = MiddlewareMaker
201
194
  .middleware(Test)
202
195
  .middleware(BogusMiddleware)
203
196
 
204
- export const { TaggedRequestFor } = makeRpcClient(RequestContextMap)
197
+ export const { TaggedRequestFor } = makeRpcClient(middleware)
205
198
  const Req = TaggedRequestFor("Something")
206
199
  const Command = Req.Command
207
200
  const Query = Req.Query
@@ -286,13 +279,9 @@ export class SomethingService2 extends Context.Service<SomethingService2>()(
286
279
  static Default = Layer.effect(this, this.make)
287
280
  }
288
281
 
289
- export const { Router, matchAll } = makeRouter(
290
- middleware
291
- )
282
+ export const { Router, matchAll } = makeRouter(middleware.Default)
292
283
 
293
- export const r2 = makeRouter(
294
- Object.assign(middleware2, { Default: middleware2.layer.pipe(Layer.provide([...MiddlewaresLive])) })
295
- )
284
+ export const r2 = makeRouter(middleware.Default)
296
285
 
297
286
  const router = Router(Something)({
298
287
  dependencies: [
@@ -1 +1 @@
1
- {"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAc,MAAM,+BAA+B,CAAA;AAE7F,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAoC,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEvF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAG3D,OAAO,EAAE,cAAc,EAAsB,YAAY,EAAqB,YAAY,EAAoB,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAY,MAAM,eAAe,CAAA;;cAuE/G,QAAQ;;AADzE,cAAM,kBACJ,SAAQ,uBAA0F;IAElG,MAAM,CAAC,OAAO,uDAUZ;CACH;;AAID,cAAM,GAAI,SAAQ,QAAoC;CAAG;;;;;AAEzD,qBAAa,eAAgB,SAAQ,oBAA4D;IAC/F,MAAM,CAAC,OAAO,2CAUZ;CACH;AAkFD,eAAO,MAAM,WAAW;;;;;;;;;;YAKM,CAAA;AAE9B,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAqC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKpE,qBAAa,GAAI,SAAQ,QAA8C;CAAG;;;;;;;;;;;;;;;;;AAC1E,qBAAa,GAAI,SAAQ,QAAyB;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIrD,qBAAa,WAAY,SAAQ,gBAEV;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgB1B,qBAAa,YAAa,SAAQ,iBAEiB;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtD,qBAAa,aAAc,SAAQ,kBAEA;CAAG;;;;;;;;AAOtC,qBAAa,gBAAiB,SAAQ,qBASrC;IACC,MAAM,CAAC,OAAO,8CAAgC;CAC/C;;;;;;;;AASD,qBAAa,aAAc,SAAQ,kBASlC;IACC,MAAM,CAAC,OAAO,2CAA8E;CAC7F;;;;;;;;AAED,qBAAa,iBAAkB,SAAQ,sBAOtC;IACC,MAAM,CAAC,OAAO,+CAAgC;CAC/C;AAED,eAAO,MAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;0FAE9B,CAAA;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEd,CAAA"}
1
+ {"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"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"}
@@ -55,7 +55,7 @@ class mw extends MiddlewareMaker
55
55
  )
56
56
  }
57
57
 
58
- const { TaggedRequestFor } = makeRpcClient(RequestContextMap)
58
+ const { TaggedRequestFor } = makeRpcClient(mw)
59
59
  const Req = TaggedRequestFor("GenRouter")
60
60
 
61
61
  class GetThing extends Req.Query<GetThing>()("GetThing", { id: S.String }, {
@@ -66,7 +66,7 @@ class DoThing extends Req.Command<DoThing>()("DoThing", { id: S.String }, { succ
66
66
 
67
67
  const Resource = { GetThing, DoThing }
68
68
 
69
- const { Router, matchAll } = makeRouter(mw)
69
+ const { Router, matchAll } = makeRouter(mw.Default)
70
70
 
71
71
  class ThingRepo extends Context.Service<ThingRepo>()("ThingRepo", {
72
72
  make: Effect.succeed({ get: (id: string) => Effect.succeed(id + "!") })
@@ -40,17 +40,19 @@ class AppMiddleware extends MiddlewareMaker
40
40
  .middleware(...DefaultGenericMiddlewares)
41
41
  {
42
42
  static Default = this.layer.pipe(
43
- Layer.provide([
44
- RequireRolesLive.pipe(Layer.provide(SomeService.Default)),
45
- AllowAnonymousLive,
46
- TestLive,
47
- SomeElseMiddlewareLive,
48
- DefaultGenericMiddlewaresLive
49
- ])
43
+ Layer.provide(
44
+ [
45
+ RequireRolesLive.pipe(Layer.provide(SomeService.Default)),
46
+ AllowAnonymousLive,
47
+ TestLive,
48
+ SomeElseMiddlewareLive,
49
+ DefaultGenericMiddlewaresLive
50
+ ] as const
51
+ )
50
52
  )
51
53
  }
52
54
 
53
- const { Router, matchAll } = makeRouter(AppMiddleware)
55
+ const { Router, matchAll } = makeRouter(AppMiddleware.Default)
54
56
 
55
57
  // ---------------------------------------------------------------------------
56
58
  // Resources
@@ -60,7 +62,7 @@ const DynamicKey: Invalidation.InvalidationKey = ["dynamic", "key"]
60
62
  const ExtraKey: Invalidation.InvalidationKey = ["extra", "key"]
61
63
  const StreamKey: Invalidation.InvalidationKey = ["stream", "key"]
62
64
 
63
- const { TaggedRequestFor } = makeRpcClient(RequestContextMap)
65
+ const { TaggedRequestFor } = makeRpcClient(AppMiddleware)
64
66
  const Req = TaggedRequestFor("Inv")
65
67
 
66
68
  class CmdBoom extends TaggedErrorClass<CmdBoom>()("CmdBoom", { reason: S.String }) {}
@@ -171,7 +173,7 @@ const withCapture = <A, E, R>(eff: Effect.Effect<A, E, R>) =>
171
173
  it.live(
172
174
  "command with no invalidation keys: caller sees raw payload, no keys forwarded",
173
175
  Effect.fnUntraced(function*() {
174
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(InvRsc)
176
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(InvRsc)
175
177
  const { result, keys } = yield* withCapture(client.DoNothing.handler())
176
178
  expect(Exit.isSuccess(result)).toBe(true)
177
179
  expect(keys).toStrictEqual([])
@@ -182,7 +184,7 @@ it.live(
182
184
  it.live(
183
185
  "command with dynamic InvalidationSet.use: payload + key forwarded",
184
186
  Effect.fnUntraced(function*() {
185
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(InvRsc)
187
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(InvRsc)
186
188
  const { result, keys } = yield* withCapture(client.DoWithDynamicKey.handler())
187
189
  expect(Exit.isSuccess(result) && result.value).toBe("done")
188
190
  expect(keys).toStrictEqual([DynamicKey])
@@ -193,7 +195,7 @@ it.live(
193
195
  it.live(
194
196
  "command accumulating multiple dynamic keys: all keys forwarded in order",
195
197
  Effect.fnUntraced(function*() {
196
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(InvRsc)
198
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(InvRsc)
197
199
  const { result, keys } = yield* withCapture(client.DoWithBothKeys.handler())
198
200
  expect(Exit.isSuccess(result) && result.value).toBe(99)
199
201
  expect(keys).toStrictEqual([DynamicKey, ExtraKey])
@@ -204,7 +206,7 @@ it.live(
204
206
  it.live(
205
207
  "per-request isolation: each command call starts with a fresh InvalidationSet",
206
208
  Effect.fnUntraced(function*() {
207
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(InvRsc)
209
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(InvRsc)
208
210
  const r1 = yield* withCapture(client.DoWithDynamicKey.handler())
209
211
  const r2 = yield* withCapture(client.DoWithDynamicKey.handler())
210
212
  // Each call must have exactly one key — no accumulation across calls
@@ -217,7 +219,7 @@ it.live(
217
219
  it.live(
218
220
  "command failure (V2): keys accumulated before fail still reach the client; original error re-thrown",
219
221
  Effect.fnUntraced(function*() {
220
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(InvRsc)
222
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(InvRsc)
221
223
  const { result, keys } = yield* withCapture(client.DoAndFail.handler())
222
224
  expect(Exit.isFailure(result)).toBe(true)
223
225
  if (Exit.isFailure(result)) {
@@ -233,7 +235,7 @@ it.live(
233
235
  it.live(
234
236
  "stream: per-chunk metadata drains keys mid-stream",
235
237
  Effect.fnUntraced(function*() {
236
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(InvRsc)
238
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(InvRsc)
237
239
  const ref = yield* Ref.make<ReadonlyArray<Invalidation.InvalidationKey>>([])
238
240
  const svc = makeInvalidationKeysService(ref)
239
241
  const values = yield* Stream.runCollect(client.StreamWithKey.handler()).pipe(
@@ -37,23 +37,25 @@ class AppMiddleware extends MiddlewareMaker
37
37
  .middleware(...DefaultGenericMiddlewares)
38
38
  {
39
39
  static Default = this.layer.pipe(
40
- Layer.provide([
41
- RequireRolesLive.pipe(Layer.provide(SomeService.Default)),
42
- AllowAnonymousLive,
43
- TestLive,
44
- SomeElseMiddlewareLive,
45
- DefaultGenericMiddlewaresLive
46
- ])
40
+ Layer.provide(
41
+ [
42
+ RequireRolesLive.pipe(Layer.provide(SomeService.Default)),
43
+ AllowAnonymousLive,
44
+ TestLive,
45
+ SomeElseMiddlewareLive,
46
+ DefaultGenericMiddlewaresLive
47
+ ] as const
48
+ )
47
49
  )
48
50
  }
49
51
 
50
- const { Router, matchAll } = makeRouter(AppMiddleware)
52
+ const { Router, matchAll } = makeRouter(AppMiddleware.Default)
51
53
 
52
54
  // ---------------------------------------------------------------------------
53
55
  // Resources — Stream with and without payload.
54
56
  // ---------------------------------------------------------------------------
55
57
 
56
- const { TaggedRequestFor } = makeRpcClient(RequestContextMap)
58
+ const { TaggedRequestFor } = makeRpcClient(AppMiddleware)
57
59
  const Req = TaggedRequestFor("Streamy")
58
60
 
59
61
  class StreamTicks extends Req.Command<StreamTicks>()("StreamTicks", {}, {
@@ -78,13 +80,6 @@ class StreamRealtime extends Req.Command<StreamRealtime>()("StreamRealtime", {},
78
80
 
79
81
  class StreamBoom extends TaggedErrorClass<StreamBoom>()("StreamBoom", { reason: S.String }) {}
80
82
 
81
- class StreamFailEffect extends Req.Command<StreamFailEffect>()("StreamFailEffect", {}, {
82
- stream: true,
83
- allowAnonymous: true,
84
- success: S.Number,
85
- error: StreamBoom
86
- }) {}
87
-
88
83
  class StreamFailStream extends Req.Command<StreamFailStream>()("StreamFailStream", {}, {
89
84
  stream: true,
90
85
  allowAnonymous: true,
@@ -116,7 +111,6 @@ const StreamyRsc = {
116
111
  StreamTicks,
117
112
  StreamCountTo,
118
113
  StreamRealtime,
119
- StreamFailEffect,
120
114
  StreamFailStream,
121
115
  StreamNoSuccess,
122
116
  StreamRequiresAuth,
@@ -144,9 +138,6 @@ const router = Router(StreamyRsc)({
144
138
  Stream.fromIterable([1, 2, 3]).pipe(
145
139
  Stream.mapEffect((n) => Effect.sleep("100 millis").pipe(Effect.as(n)))
146
140
  ),
147
- // returning Effect.fail from a stream handler should surface as a failing
148
- // stream on the client (not a protocol error)
149
- StreamFailEffect: () => Effect.fail(new StreamBoom({ reason: "from-effect" })),
150
141
  StreamFailStream: () => Stream.fail(new StreamBoom({ reason: "from-stream" })),
151
142
  StreamNoSuccess: () => Stream.empty,
152
143
  // handlers below are unreachable when middleware-auth fails; bodies exist
@@ -200,7 +191,7 @@ const TestLayer = Layer.mergeAll(ServerLayer, ClientLayer)
200
191
  it.live(
201
192
  "stream resource without input: ApiClientFactory client emits all values",
202
193
  Effect.fnUntraced(function*() {
203
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(StreamyRsc)
194
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(StreamyRsc)
204
195
  const values = yield* Stream.runCollect(client.StreamTicks.handler())
205
196
  expect(values).toStrictEqual([10, 20, 30])
206
197
  }, Effect.provide(TestLayer)),
@@ -210,7 +201,7 @@ it.live(
210
201
  it.live(
211
202
  "stream resource with input: payload drives the emitted values",
212
203
  Effect.fnUntraced(function*() {
213
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(StreamyRsc)
204
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(StreamyRsc)
214
205
  const values = yield* Stream.runCollect(client.StreamCountTo.handler({ to: 4 }))
215
206
  expect(values).toStrictEqual([1, 2, 3, 4])
216
207
  }, Effect.provide(TestLayer)),
@@ -220,7 +211,7 @@ it.live(
220
211
  it.live(
221
212
  "stream resource is delivered element-by-element in real time (not batched)",
222
213
  Effect.fnUntraced(function*() {
223
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(StreamyRsc)
214
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(StreamyRsc)
224
215
  const start = Date.now()
225
216
  const arrivals = yield* Stream.runCollect(
226
217
  client.StreamRealtime.handler().pipe(
@@ -241,26 +232,10 @@ it.live(
241
232
  { timeout: 10_000 }
242
233
  )
243
234
 
244
- it.live(
245
- "stream handler returning Effect.fail surfaces as failing stream on client",
246
- Effect.fnUntraced(function*() {
247
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(StreamyRsc)
248
- const exit = yield* Stream.runCollect(client.StreamFailEffect.handler()).pipe(Effect.exit)
249
- expect(Exit.isFailure(exit)).toBe(true)
250
- if (Exit.isFailure(exit)) {
251
- const failures = (exit.cause as any).reasons as ReadonlyArray<{ _tag: "Fail"; error: StreamBoom }>
252
- expect(failures.length).toBeGreaterThan(0)
253
- expect(failures[0]!.error._tag).toBe("StreamBoom")
254
- expect(failures[0]!.error.reason).toBe("from-effect")
255
- }
256
- }, Effect.provide(TestLayer)),
257
- { timeout: 10_000 }
258
- )
259
-
260
235
  it.live(
261
236
  "stream handler returning Stream.fail surfaces as failing stream on client",
262
237
  Effect.fnUntraced(function*() {
263
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(StreamyRsc)
238
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(StreamyRsc)
264
239
  const exit = yield* Stream.runCollect(client.StreamFailStream.handler()).pipe(Effect.exit)
265
240
  expect(Exit.isFailure(exit)).toBe(true)
266
241
  if (Exit.isFailure(exit)) {
@@ -276,7 +251,7 @@ it.live(
276
251
  it.live(
277
252
  "stream resource without `success` exposes handler as a Stream on the client",
278
253
  Effect.fnUntraced(function*() {
279
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(StreamyRsc)
254
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(StreamyRsc)
280
255
  const exit = yield* Stream.runCollect(client.StreamNoSuccess.handler()).pipe(Effect.exit)
281
256
  expect(Exit.isSuccess(exit)).toBe(true)
282
257
  }, Effect.provide(TestLayer)),
@@ -297,7 +272,7 @@ const expectNotLoggedIn = (exit: Exit.Exit<unknown, unknown>) => {
297
272
  it.live(
298
273
  "stream resource: middleware-emitted NotLoggedInError surfaces cleanly on the client",
299
274
  Effect.fnUntraced(function*() {
300
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(StreamyRsc)
275
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(StreamyRsc)
301
276
  const exit = yield* Stream.runCollect(client.StreamRequiresAuth.handler()).pipe(Effect.exit)
302
277
  expectNotLoggedIn(exit)
303
278
  }, Effect.provide(TestLayer)),
@@ -307,7 +282,7 @@ it.live(
307
282
  it.live(
308
283
  "command resource: middleware-emitted NotLoggedInError surfaces cleanly on the client",
309
284
  Effect.fnUntraced(function*() {
310
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(StreamyRsc)
285
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(StreamyRsc)
311
286
  const exit = yield* client.CommandRequiresAuth.handler().pipe(Effect.exit)
312
287
  expectNotLoggedIn(exit)
313
288
  }, Effect.provide(TestLayer)),
@@ -317,7 +292,7 @@ it.live(
317
292
  it.live(
318
293
  "query resource: middleware-emitted NotLoggedInError surfaces cleanly on the client",
319
294
  Effect.fnUntraced(function*() {
320
- const client = yield* ApiClientFactory.makeFor(Layer.empty, { middleware: AppMiddleware })(StreamyRsc)
295
+ const client = yield* ApiClientFactory.makeFor(Layer.empty)(StreamyRsc)
321
296
  const exit = yield* client.QueryRequiresAuth.handler().pipe(Effect.exit)
322
297
  expectNotLoggedIn(exit)
323
298
  }, Effect.provide(TestLayer)),