@effect-app/infra 2.81.0 → 2.82.0
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 +13 -0
- package/dist/api/routing/middleware/DynamicMiddleware.d.ts +13 -4
- package/dist/api/routing/middleware/DynamicMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/DynamicMiddleware.js +7 -9
- package/dist/api/routing/middleware/generic-middleware.d.ts +18 -3
- package/dist/api/routing/middleware/generic-middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/generic-middleware.js +10 -4
- package/package.json +3 -3
- package/src/api/routing/middleware/DynamicMiddleware.ts +17 -13
- package/src/api/routing/middleware/generic-middleware.ts +34 -6
- package/test/controller.test.ts +32 -23
- package/test/dist/controller.test.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 2.82.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- c375351: fix: dependsOn for dynamicMiddleware.
|
|
8
|
+
- 6e20474: feat: add provides: Context support
|
|
9
|
+
|
|
10
|
+
## 2.81.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- a33dd24: cleanupy
|
|
15
|
+
|
|
3
16
|
## 2.81.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -6,7 +6,7 @@ import { type HttpHeaders } from "effect-app/http";
|
|
|
6
6
|
import type * as EffectRequest from "effect/Request";
|
|
7
7
|
import { type ContextTagWithDefault, type LayerUtils } from "../../layerUtils.js";
|
|
8
8
|
import { type ContextWithLayer } from "./dynamic-middleware.js";
|
|
9
|
-
import { type GenericMiddlewareMaker } from "./generic-middleware.js";
|
|
9
|
+
import { type ContextRepr, type GenericMiddlewareMaker, type GetContextRepr } from "./generic-middleware.js";
|
|
10
10
|
export type MakeRPCHandlerFactory<RequestContextMap extends Record<string, RPCContextMap.Any>, MiddlewareR> = <T extends {
|
|
11
11
|
config?: Partial<Record<keyof RequestContextMap, any>>;
|
|
12
12
|
}, Req extends S.TaggedRequest.All, HandlerR>(schema: T & S.Schema<Req, any, never>, next: (request: Req, headers: any) => Effect.Effect<EffectRequest.Request.Success<Req>, EffectRequest.Request.Error<Req>, Exclude<HandlerR, GetEffectContext<RequestContextMap, (T & S.Schema<Req, any, never>)["config"]>>>, moduleName: string) => (req: Req, headers: any) => Effect.Effect<Request.Request.Success<Req>, Request.Request.Error<Req> | RequestContextMapErrors<RequestContextMap>, MiddlewareR | Exclude<HandlerR, GetEffectContext<RequestContextMap, (T & S.Schema<Req, any, never>)["config"]>>>;
|
|
@@ -77,7 +77,7 @@ type RpcOptionsOriginal = {
|
|
|
77
77
|
readonly wrap?: boolean;
|
|
78
78
|
readonly optional?: boolean;
|
|
79
79
|
readonly failure?: Schema.Schema.All;
|
|
80
|
-
readonly provides?: Context.Tag<any, any>;
|
|
80
|
+
readonly provides?: Context.Tag<any, any> | ContextRepr<any>;
|
|
81
81
|
readonly requiredForClient?: boolean;
|
|
82
82
|
};
|
|
83
83
|
type RpcDynamic<Key extends string, A extends RPCContextMap.Any> = {
|
|
@@ -86,6 +86,7 @@ type RpcDynamic<Key extends string, A extends RPCContextMap.Any> = {
|
|
|
86
86
|
};
|
|
87
87
|
type RpcOptionsDynamic<Key extends string, A extends RPCContextMap.Any> = RpcOptionsOriginal & {
|
|
88
88
|
readonly dynamic: RpcDynamic<Key, A>;
|
|
89
|
+
readonly dependsOn?: NonEmptyReadonlyArray<TagClassDynamicAny<any>>;
|
|
89
90
|
};
|
|
90
91
|
export type Dynamic<Options> = Options extends RpcOptionsDynamic<any, any> ? true : false;
|
|
91
92
|
export interface RpcMiddlewareDynamic<A, E, Config> {
|
|
@@ -105,6 +106,7 @@ export interface TagClassDynamicAny<RequestContext extends Record<string, RPCCon
|
|
|
105
106
|
readonly requiredForClient: boolean;
|
|
106
107
|
readonly dynamic: RpcDynamic<any, RequestContext[keyof RequestContext]>;
|
|
107
108
|
readonly wrap: boolean;
|
|
109
|
+
readonly dependsOn?: any;
|
|
108
110
|
}
|
|
109
111
|
export declare namespace TagClass {
|
|
110
112
|
/**
|
|
@@ -114,7 +116,10 @@ export declare namespace TagClass {
|
|
|
114
116
|
type Provides<Options> = Options extends {
|
|
115
117
|
readonly provides: Context.Tag<any, any>;
|
|
116
118
|
readonly optional?: false;
|
|
117
|
-
} ? Context.Tag.Identifier<Options["provides"]> :
|
|
119
|
+
} ? Context.Tag.Identifier<Options["provides"]> : Options extends {
|
|
120
|
+
readonly provides: ContextRepr<any>;
|
|
121
|
+
readonly optional?: false;
|
|
122
|
+
} ? GetContextRepr<Options["provides"]> : never;
|
|
118
123
|
/**
|
|
119
124
|
* @since 1.0.0
|
|
120
125
|
* @category models
|
|
@@ -123,7 +128,9 @@ export declare namespace TagClass {
|
|
|
123
128
|
readonly provides: Context.Tag<any, any>;
|
|
124
129
|
} ? Context.Tag.Service<Options["provides"]> : Options extends {
|
|
125
130
|
readonly dynamic: RpcDynamic<any, infer A>;
|
|
126
|
-
} ? A["service"] :
|
|
131
|
+
} ? A["service"] : Options extends {
|
|
132
|
+
readonly provides: ContextRepr<any>;
|
|
133
|
+
} ? Context.Context<GetContextRepr<Options["provides"]>> : void;
|
|
127
134
|
/**
|
|
128
135
|
* @since 1.0.0
|
|
129
136
|
* @category models
|
|
@@ -186,6 +193,8 @@ export declare namespace TagClass {
|
|
|
186
193
|
readonly failure: FailureSchema<Options>;
|
|
187
194
|
readonly provides: Options extends {
|
|
188
195
|
readonly provides: Context.Tag<any, any>;
|
|
196
|
+
} ? Options["provides"] : Options extends {
|
|
197
|
+
readonly provides: ContextRepr<any>;
|
|
189
198
|
} ? Options["provides"] : undefined;
|
|
190
199
|
readonly dynamic: Options extends RpcOptionsDynamic<any, any> ? Options["dynamic"] : undefined;
|
|
191
200
|
readonly requiredForClient: RequiredForClient<Options>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/DynamicMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAW,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAS,MAAM,YAAY,CAAA;AAC3J,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,KAAK,aAAa,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAA;AACpF,OAAO,EAAE,KAAK,sBAAsB,EAA0B,MAAM,yBAAyB,CAAA;AAI7F,MAAM,MAAM,qBAAqB,CAC/B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3D,WAAW,IACT,CACF,CAAC,SAAS;IACR,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAA;CACvD,EACD,GAAG,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,EAC/B,QAAQ,EAER,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EACrC,IAAI,EAAE,CACJ,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,KACT,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAClC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAEhC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAClG,EACD,UAAU,EAAE,MAAM,KACf,CACH,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,GAAG,KACT,MAAM,CAAC,MAAM,CAChB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,EAErE,WAAW,GAEX,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACpG,CAAA;AAED,MAAM,MAAM,iBAAiB,CAC3B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3D,gBAAgB,IACd,CACF,CAAC,SAAS;IACR,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAA;CACvD,EACD,GAAG,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,EAC/B,QAAQ,EAER,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EACrC,IAAI,EAAE,CACJ,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,KACT,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAClC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAChC,QAAQ,CACT,EACD,UAAU,EAAE,MAAM,KACf,CACH,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,GAAG,KACT,MAAM,CAAC,MAAM,CAChB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,EACrE,KAAK,CAAC,KAAK,GACX,OAAO,CAGP,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAEjG,gBAAgB,CACjB,CACF,CAAA;AAED,MAAM,MAAM,yBAAyB,CAAC,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI;KAClG,CAAC,IAAI,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CACnD;SAAG,CAAC,IAAI,MAAM,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;KAAE,EAC9E,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAC7C;CACF,CAAA;AAED,MAAM,WAAW,cAAc,CAC7B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,sFAAsF;AACnJ,0BAA0B,SAAS,yBAAyB,CAAC,iBAAiB,CAAC,EAAE,wCAAwC;AACzH,0BAA0B,SAAS,qBAAqB,CAAC,sBAAsB,CAAC,EAChF,eAAe,EAAE,iDAAiD;AAClE,eAAe,EAAE,iDAAiD;AAClE,sBAAsB,SAAS,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IAGrE,kBAAkB,EAAE,0BAA0B,CAAA;IAC9C,2FAA2F;IAC3F,kBAAkB,EAAE,0BAA0B,CAAA;IAG9C,YAAY,CAAC,EAAE,sBAAsB,CAAA;IAErC,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,CAGL,EAAE,EAAE,qBAAqB,CACvB,iBAAiB,EACf,sBAAsB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,GACnE,KAAK,CAAC,KAAK,CACd,KACE,qBAAqB,CACxB,iBAAiB,EACf,sBAAsB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,GACnE,KAAK,CAAC,KAAK,CACd,KACE,MAAM,CACT,qBAAqB,CACnB,iBAAiB,EACf,sBAAsB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,GACnE,KAAK,CAAC,KAAK,CACd,EACD,eAAe,EACf,eAAe,GAAG,KAAK,CACxB,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,iBAAiB,CAAA;CACxB;AAED,MAAM,MAAM,gBAAgB,CAC1B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,qFAAqF;AAClJ,eAAe,EAAE,iDAAiD;AAClE,eAAe,EAAE,gDAAgD;AACjE,gBAAgB,IACd,qBAAqB,CACvB,iBAAiB,EACjB;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,MAAM,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;CAC/D,EACD,eAAe,EACf,eAAe,CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAC9G,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,CAAC,OAAO,CAAC,CACpD,CAAA;AAUD,eAAO,MAAM,cAAc,GAGvB,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,QAG3D,uBAAuB,SAAS,yBAAyB,CAAC,iBAAiB,CAAC,EAAE,wCAAwC;AACtH,0BAA0B,SAAS,qBAAqB,CAAC,sBAAsB,CAAC,EAChF,sBAAsB,SAAS,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,sDAAsD;AAC7H,eAAe,GAAG,KAAK,EAAE,iDAAiD;AAC1E,eAAe,GAAG,KAAK,EAEvB,MAAM,cAAc,CAClB,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,sBAAsB,CACvB;YAKW,iBAAiB,CACvB,iBAAiB,EACjB,sBAAsB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CACpE;UACK,iBAAiB;;;CAoG5B,CAAA;AAEH,eAAO,MAAM,mBAAmB,GAG5B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3D,uBAAuB,SAAS,yBAAyB,CAAC,iBAAiB,CAAC,EAAE,wCAAwC;AACtH,0BAA0B,SAAS,qBAAqB,CAAC,sBAAsB,CAAC,EAEhF,MAAM,cAAc,CAClB,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,EACL,KAAK,EACL,KAAK,CACN;YAKW,iBAAiB,CACvB,iBAAiB,EACjB,sBAAsB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CACpE;UACK,iBAAiB;;;CA6F5B,CAAA;AA0CH,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC,OAAO,EAAE;QACR,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAA;QAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;QACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAA;KACtC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;CAC5C;AACD,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC,OAAO,EAAE;QACR,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAA;QAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;QACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAA;QACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;KACtE,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;CAChD;AAED,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CACrC,CAAA;AAED,KAAK,UAAU,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC,SAAS,aAAa,CAAC,GAAG,IAAI;IACjE,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,CAAC,CAAA;CACZ,CAAA;AAED,KAAK,iBAAiB,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC,SAAS,aAAa,CAAC,GAAG,IAAI,kBAAkB,GAAG;IAC7F,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,OAAO,IAAI,OAAO,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAEzF,MAAM,WAAW,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM;IAChD,CAAC,OAAO,EAAE;QACR,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAA;QAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;QACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAA;KACtC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;CACrE;AAED,MAAM,WAAW,kBAAkB,CAAC,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAC1F,SAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;IAE7B,QAAQ,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAA;IACrD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA;IACnC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,cAAc,CAAC,MAAM,cAAc,CAAC,CAAC,CAAA;IACvE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC;;;OAGG;IACH,KAAY,QAAQ,CAAC,OAAO,IAAI,OAAO,SAAS;QAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;KAC1B,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAC3C,KAAK,CAAA;IAET;;;OAGG;IACH,KAAY,OAAO,CAAC,OAAO,IAAI,OAAO,SAAS;QAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;KAAE,GACvF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GACxC,OAAO,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAC7E,IAAI,CAAA;IAER;;;OAGG;IACH,KAAY,aAAa,CAAC,OAAO,IAAI,OAAO,SAC1C;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC,GACrF,OAAO,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAC3E,OAAO,MAAM,CAAC,KAAK,CAAA;IAEvB;;;OAGG;IACH,KAAY,OAAO,CAAC,OAAO,IAAI,OAAO,SACpC;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,EAAE,GAC/F,OAAO,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAC1F,KAAK,CAAA;IAET;;;OAGG;IACH,KAAY,cAAc,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;IAEnF;;;OAGG;IACH,KAAY,cAAc,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEjG;;;OAGG;IACH,KAAY,QAAQ,CAAC,OAAO,IAAI,OAAO,SAAS;QAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,GAAG,KAAK,CAAA;IAE1F;;;OAGG;IACH,KAAY,iBAAiB,CAAC,OAAO,IAAI,OAAO,SAAS;QAAE,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,GAAG,KAAK,CAAA;IAE5G;;;OAGG;IACH,KAAY,IAAI,CAAC,OAAO,IAAI,OAAO,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,GAAG,KAAK,CAAA;IAElF;;;OAGG;IACH,UAAiB,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;QACnG,KAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACnD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;QACxC,QAAQ,CAAC,QAAQ,EAAE,OAAO,SAAS;YAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SAAE,GAAG,OAAO,CAAC,UAAU,CAAC,GACjG,SAAS,CAAA;QACb,QAAQ,CAAC,OAAO,EAAE,OAAO,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAC9E,SAAS,CAAA;QACb,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACtD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;KAC7B;CACF;AAED,MAAM,WAAW,QAAQ,CACvB,IAAI,EACJ,IAAI,SAAS,MAAM,EACnB,OAAO,CACP,SACA,QAAQ,CAAC,IAAI,CACX,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,iBAAiB,CACnD,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1B,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAC1B,GACC,OAAO,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,oBAAoB,CAChE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EACzB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAChC;KAAG,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC;CAAE,CAC3F,GACD,aAAa,CACb,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EACzB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CACjC,CACJ;CACD;AAEF,eAAO,MAAM,GAAG,GAAI,IAAI,QAEtB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,OAAO,SAAS,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,EAEtE,IAAI,IAAI,EACR,UAAU,OAAO,GAAG,SAAS,MAE9B,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM;IAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,iBAAiB,CACnD,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1B,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAC1B,GACC,OAAO,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,oBAAoB,CAChE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EACzB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAChC,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,GAAE,CAC3F,GACD,aAAa,CACb,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EACzB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CACjC,EACH,CAAC,EACD,CAAC,CACF,CAAA;IACD,YAAY,CAAC,EAAE,CAAC,CAAA;CACjB,KAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG;IAClC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAWhG,CAAA"}
|
|
1
|
+
{"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/DynamicMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
4
|
import { Rpc, RpcMiddleware } from "@effect/rpc";
|
|
5
|
-
import {
|
|
5
|
+
import { Context, Effect, Layer, Unify } from "effect-app";
|
|
6
6
|
import { implementMiddleware } from "./dynamic-middleware.js";
|
|
7
7
|
import { genericMiddlewareMaker } from "./generic-middleware.js";
|
|
8
8
|
/*:
|
|
@@ -57,13 +57,11 @@ export const makeMiddleware =
|
|
|
57
57
|
// the dynamicMiddlewares is an Effect that builds the dynamiuc context for the request
|
|
58
58
|
dynamicMiddlewares(basic).pipe(Effect.flatMap((dynamicContext) => h(payload, headers).pipe(Effect.provide(dynamicContext))))
|
|
59
59
|
});
|
|
60
|
-
console.log({ gen });
|
|
61
60
|
return yield* gen;
|
|
62
|
-
})
|
|
63
|
-
.pipe(Effect.onExit(Console.log)); // why?
|
|
61
|
+
}); // why?
|
|
64
62
|
};
|
|
65
63
|
})
|
|
66
|
-
}))
|
|
64
|
+
}))));
|
|
67
65
|
const dependencies = [
|
|
68
66
|
...(make.dependencies ? make.dependencies : []),
|
|
69
67
|
...dynamicMiddlewares.dependencies,
|
|
@@ -117,10 +115,9 @@ export const makeMiddlewareBasic =
|
|
|
117
115
|
// the dynamicMiddlewares is an Effect that builds the dynamiuc context for the request
|
|
118
116
|
dynamicMiddlewares(basic).pipe(Effect.flatMap((dynamicContext) => h(payload, headers).pipe(Effect.provide(dynamicContext))))
|
|
119
117
|
});
|
|
120
|
-
})
|
|
121
|
-
.pipe(Effect.onExit(Console.log)); // why?
|
|
118
|
+
}); // why?
|
|
122
119
|
})
|
|
123
|
-
}))
|
|
120
|
+
}))));
|
|
124
121
|
const dependencies = [
|
|
125
122
|
...(make.dependencies ? make.dependencies : []),
|
|
126
123
|
...(dynamicMiddlewares.dependencies),
|
|
@@ -137,6 +134,7 @@ function makeRpcEffect() {
|
|
|
137
134
|
export const Tag = () => (id, options) => (opts) => class extends RpcMiddleware.Tag()(id, options) {
|
|
138
135
|
// TODO: move to TagClass.
|
|
139
136
|
static dynamic = options && "dynamic" in options ? options.dynamic : undefined;
|
|
137
|
+
static dependsOn = options && "dependsOn" in options ? options.dependsOn : undefined;
|
|
140
138
|
static Default = Layer.scoped(this, opts.effect).pipe(Layer.provide([Layer.empty, ...opts.dependencies ?? []]));
|
|
141
139
|
static [Unify.typeSymbol];
|
|
142
140
|
static [Unify.unifySymbol];
|
|
@@ -167,4 +165,4 @@ export const Tag = () => (id, options) => (opts) => class extends RpcMiddleware.
|
|
|
167
165
|
// }) => RpcMiddleware.TagClass<Self, Name, Options> & {
|
|
168
166
|
// Default: Layer.Layer<Self, E | LayerUtils.GetLayersError<L>, Exclude<R, LayerUtils.GetLayersSuccess<L>>>
|
|
169
167
|
// }
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvbWlkZGxld2FyZS9EeW5hbWljTWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQTBGLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU1sSixPQUFPLEVBQXlCLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDcEYsT0FBTyxFQUFpRCxzQkFBc0IsRUFBdUIsTUFBTSx5QkFBeUIsQ0FBQTtBQWlKcEk7Ozs7OzJCQUsyQjtBQUUzQiwwQkFBMEI7QUFDMUIsTUFBTSxDQUFDLE1BQU0sY0FBYztBQUN6QixxR0FBcUc7QUFDckcsR0FFSSxFQUFFLENBQ04sQ0FPRSxJQU9DLEVBQ0QsRUFBRTtJQUNGLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBVXhDLGlCQUFpQixDQUNsQixDQUFBO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsRUFBcUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUM1RixNQUFNLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBRXRFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ3BCLGVBQWUsRUFDZixNQUFNO1NBQ0gsR0FBRyxDQUFDO1FBQ0gsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsTUFBTTtRQUM3QyxPQUFPLEVBQUUsV0FBVyxDQUFDLE1BQU07UUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3RCLENBQUMsQ0FBQyxJQUFJ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
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import { type Rpc, type RpcMiddleware } from "@effect/rpc";
|
|
2
|
-
import { type SuccessValue, type
|
|
3
|
-
import { type Array, Context, Effect, type Layer, type Scope } from "effect-app";
|
|
2
|
+
import { type SuccessValue, type TypeId } from "@effect/rpc/RpcMiddleware";
|
|
3
|
+
import { type Array, Context, Effect, type Layer, type Schema, type Scope } from "effect-app";
|
|
4
4
|
import { type RPCContextMap } from "effect-app/client";
|
|
5
5
|
import { type HttpHeaders } from "effect-app/http";
|
|
6
6
|
import { type TagClassDynamicAny } from "./DynamicMiddleware.js";
|
|
7
|
+
export interface ContextRepr<A> {
|
|
8
|
+
readonly A: A;
|
|
9
|
+
}
|
|
10
|
+
export declare const ContextRepr: <A>() => ContextRepr<A>;
|
|
11
|
+
export type GetContextRepr<A> = A extends ContextRepr<infer B> ? B : never;
|
|
12
|
+
export interface TagClassAny extends Context.Tag<any, any> {
|
|
13
|
+
readonly [TypeId]: TypeId;
|
|
14
|
+
readonly optional: boolean;
|
|
15
|
+
readonly provides?: Context.Tag<any, any> | ContextRepr<any> | undefined;
|
|
16
|
+
readonly failure: Schema.Schema.All;
|
|
17
|
+
readonly requiredForClient: boolean;
|
|
18
|
+
readonly wrap: boolean;
|
|
19
|
+
}
|
|
7
20
|
export interface GenericMiddlewareOptions<E> {
|
|
8
21
|
readonly next: Effect.Effect<SuccessValue, E, Scope.Scope>;
|
|
9
22
|
readonly payload: unknown;
|
|
@@ -20,7 +33,9 @@ export type DynamicMiddlewareMaker<RequestContext extends Record<string, RPCCont
|
|
|
20
33
|
export declare namespace GenericMiddlewareMaker {
|
|
21
34
|
type Provided<T> = T extends TagClassAny ? T extends {
|
|
22
35
|
provides: Context.Tag<any, any>;
|
|
23
|
-
} ? Context.Tag.Identifier<T["provides"]> :
|
|
36
|
+
} ? Context.Tag.Identifier<T["provides"]> : T extends {
|
|
37
|
+
provides: ContextRepr<any>;
|
|
38
|
+
} ? GetContextRepr<T["provides"]> : never : never;
|
|
24
39
|
}
|
|
25
40
|
export declare const genericMiddleware: (i: GenericMiddlewareMaker) => GenericMiddlewareMaker;
|
|
26
41
|
export declare const genericMiddlewareMaker: <T extends Array<GenericMiddlewareMaker>>(...middlewares: T) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/generic-middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"generic-middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/generic-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Context, Effect } from "effect-app";
|
|
2
2
|
import { InfraLogger } from "../../../logger.js";
|
|
3
|
+
export const ContextRepr = () => ({ A: undefined });
|
|
3
4
|
export const genericMiddleware = (i) => i;
|
|
4
5
|
export const genericMiddlewareMaker = (...middlewares) => {
|
|
5
6
|
// we want to run them in reverse order
|
|
@@ -26,15 +27,20 @@ export const genericMiddlewareMaker = (...middlewares) => {
|
|
|
26
27
|
handler = InfraLogger.logDebug("Applying middleware " + tag.key).pipe(Effect.zipRight(Effect.matchEffect(middleware(options), {
|
|
27
28
|
onFailure: () => previous,
|
|
28
29
|
onSuccess: tag.provides !== undefined
|
|
29
|
-
? (value) =>
|
|
30
|
+
? (value) => Context.isContext(value)
|
|
31
|
+
? Effect.provide(previous, value)
|
|
32
|
+
: Effect.provideService(previous, tag.provides, value)
|
|
30
33
|
: (_) => previous
|
|
31
34
|
})));
|
|
32
35
|
}
|
|
33
36
|
else {
|
|
34
37
|
const middleware = Context.unsafeGet(context, tag);
|
|
38
|
+
const previous = handler;
|
|
35
39
|
handler = InfraLogger.logDebug("Applying middleware " + tag.key).pipe(Effect.zipRight(tag.provides !== undefined
|
|
36
|
-
? Effect.
|
|
37
|
-
|
|
40
|
+
? middleware(options).pipe(Effect.flatMap((value) => Context.isContext(value)
|
|
41
|
+
? Effect.provide(previous, value)
|
|
42
|
+
: Effect.provideService(previous, tag.provides, value)))
|
|
43
|
+
: Effect.zipRight(middleware(options), previous)));
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
46
|
return handler;
|
|
@@ -42,4 +48,4 @@ export const genericMiddlewareMaker = (...middlewares) => {
|
|
|
42
48
|
})
|
|
43
49
|
};
|
|
44
50
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9yb3V0aW5nL21pZGRsZXdhcmUvZ2VuZXJpYy1taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxFQUF1QyxNQUFNLFlBQVksQ0FBQTtBQUc3RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFPaEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQWMsRUFBRSxDQUFDLENBQUE7QUFrQzNFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBeUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBRXBDLEdBQUcsV0FBYyxFQUdqQixFQUFFO0lBQ0YsdUNBQXVDO0lBQ3ZDLFdBQVcsR0FBRyxXQUFXLENBQUMsVUFBVSxFQUFTLENBQUE7SUFDN0MsT0FBTztRQUNMLFlBQVksRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQy9DLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUMxQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDdkMsd0dBQXdHO1lBQ3hHLHdCQUF3QjtZQUN4QixrQkFBa0I7WUFDbEIsY0FBYztZQUVkLE9BQU8sQ0FDTCxPQUFvQyxFQUNwQyxFQUFFO2dCQUNGLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUE7Z0JBQzFCLDJCQUEyQjtnQkFDM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ2IsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUE7d0JBQ2xELE9BQU8sR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLHNCQUFzQixHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ25FLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQWMsRUFBRSxDQUFDLENBQUMsQ0FDM0QsQ0FBQTtvQkFDVixDQUFDO3lCQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUN4QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQTBDLENBQUE7d0JBQzNGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQTt3QkFDeEIsT0FBTyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDbkUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTs0QkFDdEQsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVE7NEJBQ3pCLFNBQVMsRUFBRSxHQUFHLENBQUMsUUFBUSxLQUFLLFNBQVM7Z0NBQ25DLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7b0NBQ3RCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7b0NBQ2pDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBZSxFQUFFLEtBQUssQ0FBQztnQ0FDakUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRO3lCQUNwQixDQUFDLENBQUMsQ0FDSixDQUFBO29CQUNILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQTBDLENBQUE7d0JBQzNGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQTt3QkFDeEIsT0FBTyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDbkUsTUFBTSxDQUFDLFFBQVEsQ0FDYixHQUFHLENBQUMsUUFBUSxLQUFLLFNBQVM7NEJBQ3hCLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN4QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDdkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0NBQ3RCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7Z0NBQ2pDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBZSxFQUFFLEtBQUssQ0FBQyxDQUNoRSxDQUNGOzRCQUNELENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FDbkQsQ0FDRixDQUFBO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxPQUFPLE9BQU8sQ0FBQTtZQUNoQixDQUFDLENBQUE7UUFDSCxDQUFDLENBQUM7S0FDSSxDQUFBO0FBQ1YsQ0FBQyxDQUFBIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.82.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@effect/experimental": "^0.54.3",
|
|
42
42
|
"@effect/platform": "^0.90.0",
|
|
43
43
|
"@effect/rpc-http": "^0.52.4",
|
|
44
|
-
"@effect/rpc": "^0.68.
|
|
44
|
+
"@effect/rpc": "^0.68.2",
|
|
45
45
|
"@effect/sql": "^0.44.0",
|
|
46
46
|
"@effect/vitest": "^0.25.0",
|
|
47
47
|
"@sendgrid/helpers": "^8.0.0",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"jwt-decode": "^4.0.0",
|
|
52
52
|
"redis": "^3.1.2",
|
|
53
53
|
"redlock": "^4.2.0",
|
|
54
|
-
"effect": "^3.17.
|
|
54
|
+
"effect": "^3.17.5",
|
|
55
55
|
"express": "^5.1.0"
|
|
56
56
|
},
|
|
57
57
|
"typesVersions": {
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
4
|
import { Rpc, RpcMiddleware } from "@effect/rpc"
|
|
5
5
|
import { type SuccessValue, type TypeId } from "@effect/rpc/RpcMiddleware"
|
|
6
|
-
import {
|
|
6
|
+
import { Context, Effect, Layer, type NonEmptyReadonlyArray, type Option, type Request, type S, type Schema, type Scope, Unify } from "effect-app"
|
|
7
7
|
import type { GetEffectContext, RPCContextMap } from "effect-app/client/req"
|
|
8
8
|
import { type HttpHeaders } from "effect-app/http"
|
|
9
9
|
import { type TagUnify, type TagUnifyIgnore } from "effect/Context"
|
|
10
10
|
import type * as EffectRequest from "effect/Request"
|
|
11
11
|
import { type ContextTagWithDefault, type LayerUtils } from "../../layerUtils.js"
|
|
12
12
|
import { type ContextWithLayer, implementMiddleware } from "./dynamic-middleware.js"
|
|
13
|
-
import { type GenericMiddlewareMaker, genericMiddlewareMaker } from "./generic-middleware.js"
|
|
13
|
+
import { type ContextRepr, type GenericMiddlewareMaker, genericMiddlewareMaker, type GetContextRepr } from "./generic-middleware.js"
|
|
14
14
|
|
|
15
15
|
// module:
|
|
16
16
|
//
|
|
@@ -258,16 +258,13 @@ export const makeMiddleware =
|
|
|
258
258
|
Effect.flatMap((dynamicContext) => h(payload, headers).pipe(Effect.provide(dynamicContext)))
|
|
259
259
|
) as any
|
|
260
260
|
})
|
|
261
|
-
console.log({ gen })
|
|
262
261
|
|
|
263
262
|
return yield* gen
|
|
264
|
-
})
|
|
265
|
-
.pipe(Effect.onExit(Console.log)) as any // why?
|
|
263
|
+
}) as any // why?
|
|
266
264
|
}
|
|
267
265
|
}
|
|
268
266
|
)
|
|
269
|
-
}))
|
|
270
|
-
Effect.onExit(Console.log)
|
|
267
|
+
}))
|
|
271
268
|
)
|
|
272
269
|
)
|
|
273
270
|
|
|
@@ -383,12 +380,10 @@ export const makeMiddlewareBasic =
|
|
|
383
380
|
Effect.flatMap((dynamicContext) => h(payload, headers).pipe(Effect.provide(dynamicContext)))
|
|
384
381
|
) as any
|
|
385
382
|
})
|
|
386
|
-
})
|
|
387
|
-
.pipe(Effect.onExit(Console.log)) as any // why?
|
|
383
|
+
}) as any // why?
|
|
388
384
|
}
|
|
389
385
|
)
|
|
390
|
-
}))
|
|
391
|
-
Effect.onExit(Console.log)
|
|
386
|
+
}))
|
|
392
387
|
)
|
|
393
388
|
)
|
|
394
389
|
|
|
@@ -473,7 +468,7 @@ type RpcOptionsOriginal = {
|
|
|
473
468
|
readonly wrap?: boolean
|
|
474
469
|
readonly optional?: boolean
|
|
475
470
|
readonly failure?: Schema.Schema.All
|
|
476
|
-
readonly provides?: Context.Tag<any, any>
|
|
471
|
+
readonly provides?: Context.Tag<any, any> | ContextRepr<any>
|
|
477
472
|
readonly requiredForClient?: boolean
|
|
478
473
|
}
|
|
479
474
|
|
|
@@ -484,6 +479,7 @@ type RpcDynamic<Key extends string, A extends RPCContextMap.Any> = {
|
|
|
484
479
|
|
|
485
480
|
type RpcOptionsDynamic<Key extends string, A extends RPCContextMap.Any> = RpcOptionsOriginal & {
|
|
486
481
|
readonly dynamic: RpcDynamic<Key, A>
|
|
482
|
+
readonly dependsOn?: NonEmptyReadonlyArray<TagClassDynamicAny<any>>
|
|
487
483
|
}
|
|
488
484
|
|
|
489
485
|
export type Dynamic<Options> = Options extends RpcOptionsDynamic<any, any> ? true : false
|
|
@@ -508,6 +504,7 @@ export interface TagClassDynamicAny<RequestContext extends Record<string, RPCCon
|
|
|
508
504
|
readonly requiredForClient: boolean
|
|
509
505
|
readonly dynamic: RpcDynamic<any, RequestContext[keyof RequestContext]>
|
|
510
506
|
readonly wrap: boolean
|
|
507
|
+
readonly dependsOn?: any
|
|
511
508
|
}
|
|
512
509
|
|
|
513
510
|
export declare namespace TagClass {
|
|
@@ -519,6 +516,10 @@ export declare namespace TagClass {
|
|
|
519
516
|
readonly provides: Context.Tag<any, any>
|
|
520
517
|
readonly optional?: false
|
|
521
518
|
} ? Context.Tag.Identifier<Options["provides"]>
|
|
519
|
+
: Options extends {
|
|
520
|
+
readonly provides: ContextRepr<any>
|
|
521
|
+
readonly optional?: false
|
|
522
|
+
} ? GetContextRepr<Options["provides"]>
|
|
522
523
|
: never
|
|
523
524
|
|
|
524
525
|
/**
|
|
@@ -528,6 +529,7 @@ export declare namespace TagClass {
|
|
|
528
529
|
export type Service<Options> = Options extends { readonly provides: Context.Tag<any, any> }
|
|
529
530
|
? Context.Tag.Service<Options["provides"]>
|
|
530
531
|
: Options extends { readonly dynamic: RpcDynamic<any, infer A> } ? A["service"]
|
|
532
|
+
: Options extends { readonly provides: ContextRepr<any> } ? Context.Context<GetContextRepr<Options["provides"]>>
|
|
531
533
|
: void
|
|
532
534
|
|
|
533
535
|
/**
|
|
@@ -588,6 +590,7 @@ export declare namespace TagClass {
|
|
|
588
590
|
readonly optional: Optional<Options>
|
|
589
591
|
readonly failure: FailureSchema<Options>
|
|
590
592
|
readonly provides: Options extends { readonly provides: Context.Tag<any, any> } ? Options["provides"]
|
|
593
|
+
: Options extends { readonly provides: ContextRepr<any> } ? Options["provides"]
|
|
591
594
|
: undefined
|
|
592
595
|
readonly dynamic: Options extends RpcOptionsDynamic<any, any> ? Options["dynamic"]
|
|
593
596
|
: undefined
|
|
@@ -651,9 +654,10 @@ export const Tag = <Self>() =>
|
|
|
651
654
|
}): TagClass<Self, Name, Options> & {
|
|
652
655
|
Default: Layer.Layer<Self, E | LayerUtils.GetLayersError<L>, Exclude<R, LayerUtils.GetLayersSuccess<L>>>
|
|
653
656
|
} =>
|
|
654
|
-
class extends RpcMiddleware.Tag<Self>()(id, options) {
|
|
657
|
+
class extends RpcMiddleware.Tag<Self>()(id, options as any) {
|
|
655
658
|
// TODO: move to TagClass.
|
|
656
659
|
static readonly dynamic = options && "dynamic" in options ? options.dynamic : undefined
|
|
660
|
+
static readonly dependsOn = options && "dependsOn" in options ? options.dependsOn : undefined
|
|
657
661
|
static readonly Default = Layer.scoped(this, opts.effect as any).pipe(
|
|
658
662
|
Layer.provide([Layer.empty, ...opts.dependencies ?? []])
|
|
659
663
|
)
|
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { type Rpc, type RpcMiddleware } from "@effect/rpc"
|
|
3
|
-
import { type SuccessValue, type
|
|
4
|
-
import { type Array, Context, Effect, type Layer, type Scope } from "effect-app"
|
|
3
|
+
import { type SuccessValue, type TypeId } from "@effect/rpc/RpcMiddleware"
|
|
4
|
+
import { type Array, Context, Effect, type Layer, type Schema, type Scope } from "effect-app"
|
|
5
5
|
import { type RPCContextMap } from "effect-app/client"
|
|
6
6
|
import { type HttpHeaders } from "effect-app/http"
|
|
7
7
|
import { InfraLogger } from "../../../logger.js"
|
|
8
8
|
import { type TagClassDynamicAny } from "./DynamicMiddleware.js"
|
|
9
9
|
|
|
10
|
+
// TODO: instead, consider support NonEmptyArray of Tags - so that we keep Identifiers and Services
|
|
11
|
+
export interface ContextRepr<A> {
|
|
12
|
+
readonly A: A
|
|
13
|
+
}
|
|
14
|
+
export const ContextRepr = <A>(): ContextRepr<A> => ({ A: undefined as A })
|
|
15
|
+
export type GetContextRepr<A> = A extends ContextRepr<infer B> ? B : never
|
|
16
|
+
|
|
17
|
+
export interface TagClassAny extends Context.Tag<any, any> {
|
|
18
|
+
readonly [TypeId]: TypeId
|
|
19
|
+
readonly optional: boolean
|
|
20
|
+
readonly provides?: Context.Tag<any, any> | ContextRepr<any> | undefined
|
|
21
|
+
readonly failure: Schema.Schema.All
|
|
22
|
+
readonly requiredForClient: boolean
|
|
23
|
+
readonly wrap: boolean
|
|
24
|
+
}
|
|
25
|
+
|
|
10
26
|
export interface GenericMiddlewareOptions<E> {
|
|
11
27
|
// Effect rpc middleware does not support changing payload or headers, but we do..
|
|
12
28
|
readonly next: Effect.Effect<SuccessValue, E, Scope.Scope>
|
|
@@ -23,7 +39,9 @@ export type DynamicMiddlewareMaker<RequestContext extends Record<string, RPCCont
|
|
|
23
39
|
|
|
24
40
|
export namespace GenericMiddlewareMaker {
|
|
25
41
|
export type Provided<T> = T extends TagClassAny
|
|
26
|
-
? T extends { provides: Context.Tag<any, any> } ? Context.Tag.Identifier<T["provides"]>
|
|
42
|
+
? T extends { provides: Context.Tag<any, any> } ? Context.Tag.Identifier<T["provides"]>
|
|
43
|
+
: T extends { provides: ContextRepr<any> } ? GetContextRepr<T["provides"]>
|
|
44
|
+
: never
|
|
27
45
|
: never
|
|
28
46
|
}
|
|
29
47
|
|
|
@@ -64,17 +82,27 @@ export const genericMiddlewareMaker = <
|
|
|
64
82
|
Effect.zipRight(Effect.matchEffect(middleware(options), {
|
|
65
83
|
onFailure: () => previous,
|
|
66
84
|
onSuccess: tag.provides !== undefined
|
|
67
|
-
? (value) =>
|
|
85
|
+
? (value) =>
|
|
86
|
+
Context.isContext(value)
|
|
87
|
+
? Effect.provide(previous, value)
|
|
88
|
+
: Effect.provideService(previous, tag.provides as any, value)
|
|
68
89
|
: (_) => previous
|
|
69
90
|
}))
|
|
70
91
|
)
|
|
71
92
|
} else {
|
|
72
93
|
const middleware = Context.unsafeGet(context, tag) as RpcMiddleware.RpcMiddleware<any, any>
|
|
94
|
+
const previous = handler
|
|
73
95
|
handler = InfraLogger.logDebug("Applying middleware " + tag.key).pipe(
|
|
74
96
|
Effect.zipRight(
|
|
75
97
|
tag.provides !== undefined
|
|
76
|
-
?
|
|
77
|
-
|
|
98
|
+
? middleware(options).pipe(
|
|
99
|
+
Effect.flatMap((value) =>
|
|
100
|
+
Context.isContext(value)
|
|
101
|
+
? Effect.provide(previous, value)
|
|
102
|
+
: Effect.provideService(previous, tag.provides as any, value)
|
|
103
|
+
)
|
|
104
|
+
)
|
|
105
|
+
: Effect.zipRight(middleware(options), previous)
|
|
78
106
|
)
|
|
79
107
|
)
|
|
80
108
|
}
|
package/test/controller.test.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { expect, expectTypeOf, it } from "@effect/vitest"
|
|
|
6
6
|
import { type Array, Context, Effect, Layer, Option, S, Scope } from "effect-app"
|
|
7
7
|
import { InvalidStateError, makeRpcClient, type RPCContextMap, UnauthorizedError } from "effect-app/client"
|
|
8
8
|
import { Class, TaggedError } from "effect-app/Schema"
|
|
9
|
-
import { contextMap, DefaultGenericMiddlewares, implementMiddleware, makeMiddleware, makeNewMiddleware, Middleware, Tag } from "../src/api/routing/middleware.js"
|
|
9
|
+
import { contextMap, ContextRepr, DefaultGenericMiddlewares, implementMiddleware, makeMiddleware, makeNewMiddleware, Middleware, Tag } from "../src/api/routing/middleware.js"
|
|
10
10
|
import { sort } from "../src/api/routing/tsort.js"
|
|
11
11
|
import { SomeService } from "./query.test.js"
|
|
12
12
|
|
|
@@ -33,7 +33,9 @@ export class Some extends Context.TagMakeId("Some", Effect.succeed({ a: 1 }))<So
|
|
|
33
33
|
export class SomeElse extends Context.TagMakeId("SomeElse", Effect.succeed({ b: 2 }))<SomeElse>() {}
|
|
34
34
|
|
|
35
35
|
// @effect-diagnostics-next-line missingEffectServiceDependency:off
|
|
36
|
-
class MyContextProvider extends Middleware.Tag<MyContextProvider>()("MyContextProvider", {
|
|
36
|
+
class MyContextProvider extends Middleware.Tag<MyContextProvider>()("MyContextProvider", {
|
|
37
|
+
provides: ContextRepr<Some>()
|
|
38
|
+
})({
|
|
37
39
|
effect: Effect.gen(function*() {
|
|
38
40
|
yield* SomeService
|
|
39
41
|
if (Math.random() > 0.5) return yield* new CustomError1()
|
|
@@ -52,7 +54,7 @@ class MyContextProvider extends Middleware.Tag<MyContextProvider>()("MyContextPr
|
|
|
52
54
|
// this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
|
|
53
55
|
// if (Math.random() > 0.5) return yield* new CustomError2()
|
|
54
56
|
|
|
55
|
-
return new Some({ a: 1 })
|
|
57
|
+
return Context.make(Some, new Some({ a: 1 }))
|
|
56
58
|
})
|
|
57
59
|
})
|
|
58
60
|
}) {}
|
|
@@ -102,28 +104,31 @@ class AllowAnonymous extends Middleware.Tag<AllowAnonymous>()("AllowAnonymous",
|
|
|
102
104
|
}
|
|
103
105
|
)
|
|
104
106
|
})
|
|
105
|
-
}) {
|
|
107
|
+
}) {
|
|
108
|
+
}
|
|
106
109
|
|
|
107
110
|
// @effect-diagnostics-next-line missingEffectServiceDependency:off
|
|
108
|
-
class RequireRoles
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
111
|
+
class RequireRoles extends Middleware.Tag<RequireRoles>()("RequireRoles", {
|
|
112
|
+
dynamic: contextMap<RequestContextMap>()("requireRoles"),
|
|
113
|
+
// had to move this in here, because once you put it manually as a readonly static property on the class,
|
|
114
|
+
// there's a weird issue where the fluent api stops behaving properly after adding this middleware via `addDynamicMiddleware`
|
|
115
|
+
dependsOn: [AllowAnonymous]
|
|
116
|
+
})({
|
|
117
|
+
effect: Effect.gen(function*() {
|
|
118
|
+
yield* Some
|
|
119
|
+
return Effect.fnUntraced(
|
|
120
|
+
function*(options) {
|
|
121
|
+
// we don't know if the service will be provided or not, so we use option..
|
|
122
|
+
const userProfile = yield* Effect.serviceOption(UserProfile)
|
|
123
|
+
const { requireRoles } = options.config
|
|
124
|
+
if (requireRoles && !userProfile.value?.roles?.some((role) => requireRoles.includes(role))) {
|
|
125
|
+
return yield* new UnauthorizedError({ message: "don't have the right roles" })
|
|
121
126
|
}
|
|
122
|
-
|
|
123
|
-
|
|
127
|
+
return Option.none<Context<never>>()
|
|
128
|
+
}
|
|
129
|
+
)
|
|
124
130
|
})
|
|
125
|
-
{
|
|
126
|
-
static dependsOn = [AllowAnonymous]
|
|
131
|
+
}) {
|
|
127
132
|
}
|
|
128
133
|
|
|
129
134
|
class Test extends Middleware.Tag<Test>()("Test", { dynamic: contextMap<RequestContextMap>()("test") })({
|
|
@@ -140,7 +145,11 @@ export class BogusMiddleware extends Tag<BogusMiddleware>()("BogusMiddleware", {
|
|
|
140
145
|
})({
|
|
141
146
|
effect: Effect.gen(function*() {
|
|
142
147
|
// yield* Effect.context<"test-dep">()
|
|
143
|
-
return (options) =>
|
|
148
|
+
return (options) =>
|
|
149
|
+
Effect.gen(function*() {
|
|
150
|
+
// yield* Effect.context<"test-dep2">()
|
|
151
|
+
return yield* options.next.pipe(Effect.provideService(SomeService, null as any))
|
|
152
|
+
})
|
|
144
153
|
})
|
|
145
154
|
}) {
|
|
146
155
|
}
|
|
@@ -199,8 +208,8 @@ export const middleware3 = makeNewMiddleware<RequestContextMap>()(
|
|
|
199
208
|
...genericMiddlewares
|
|
200
209
|
)
|
|
201
210
|
.addDynamicMiddleware(AllowAnonymous)
|
|
202
|
-
.addDynamicMiddleware(Test)
|
|
203
211
|
.addDynamicMiddleware(RequireRoles)
|
|
212
|
+
.addDynamicMiddleware(Test)
|
|
204
213
|
.make()
|
|
205
214
|
|
|
206
215
|
expectTypeOf(middleware3).toEqualTypeOf<typeof middleware2>()
|
|
@@ -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;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,KAAK,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACjF,OAAO,EAAoC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,OAAO,
|
|
1
|
+
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"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"}
|