@effect-app/infra 1.16.5 → 1.16.7

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,17 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 1.16.7
4
+
5
+ ### Patch Changes
6
+
7
+ - 096ef33: add helpers
8
+
9
+ ## 1.16.6
10
+
11
+ ### Patch Changes
12
+
13
+ - 76bee11: support inverted
14
+
3
15
  ## 1.16.5
4
16
 
5
17
  ### Patch Changes
package/_cjs/router.cjs CHANGED
@@ -10,7 +10,12 @@ var _routing = require("@effect-app/infra/api/routing");
10
10
  var _effectApp = require("effect-app");
11
11
  var _http = require("effect-app/http");
12
12
  var _schema = require("effect-app/schema");
13
- // TODO: support FLIP (true means dependency available, false not. vs true means not available, false means available)
13
+ // For CTXMap, handled by `handleRequestEnv` middleware:
14
+ // ["configurationKey", ["contextKey", ServiceShape, defaultOffBoolean]]
15
+ // defaultOffBoolean:
16
+ // false means: if not configured, or set to false, the item is considered active.
17
+ // true means: if configured as true, the item is considered active.
18
+ // not active means the service is not in the context, and in route context is marked as optional.
14
19
  const makeRouter = (handleRequestEnv /* Middleware */) => {
15
20
  function match(requestHandler, errorHandler, middleware) {
16
21
  let middlewareLayer = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"router.cjs","names":["_Effect","require","_utils","_routing","_effectApp","_http","_schema","makeRouter","handleRequestEnv","match","requestHandler","errorHandler","middleware","middlewareLayer","undefined","handler","makeRequestLayer","makeRequestHandler","route","HttpRouter","makeRoute","Request","method","path","pipe","Effect","withSpan","name","captureStackTrace","stack","handle","_","adaptResponse","S","REST","extractRequest","Response","extractResponse","h","ResponseOpenApi","Context","CTX","rt","_tag","matchFor","rsc","filtered","typedKeysOf","reduce","acc","cur","Predicate","isObject","matchWithServices","action","services","f","req","ctx","andThen","allLower","svc2","controllers","handlers","m","meta","Error","moduleName","mapped","determineMethod","split","Object","assign","Auto","fromIterable","values","r","prev","svcOrFnOrEffect","fnOrNone","slice","join","isEffect","resourceRequest","res","r2","defaultErrorHandler","catchTag","die","failure","matchAll","concat","empty","exports"],"sources":["../src/router.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"router.cjs","names":["_Effect","require","_utils","_routing","_effectApp","_http","_schema","makeRouter","handleRequestEnv","match","requestHandler","errorHandler","middleware","middlewareLayer","undefined","handler","makeRequestLayer","makeRequestHandler","route","HttpRouter","makeRoute","Request","method","path","pipe","Effect","withSpan","name","captureStackTrace","stack","handle","_","adaptResponse","S","REST","extractRequest","Response","extractResponse","h","ResponseOpenApi","Context","CTX","rt","_tag","matchFor","rsc","filtered","typedKeysOf","reduce","acc","cur","Predicate","isObject","matchWithServices","action","services","f","req","ctx","andThen","allLower","svc2","controllers","handlers","m","meta","Error","moduleName","mapped","determineMethod","split","Object","assign","Auto","fromIterable","values","r","prev","svcOrFnOrEffect","fnOrNone","slice","join","isEffect","resourceRequest","res","r2","defaultErrorHandler","catchTag","die","failure","matchAll","concat","empty","exports"],"sources":["../src/router.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/router.d.ts CHANGED
@@ -25,6 +25,14 @@ export interface Handler<Action extends AnyRequestModule, RT extends "raw" | "d"
25
25
  handler: (req: S.Schema.Type<Action>, ctx: Context) => Effect<A, E, R>;
26
26
  }
27
27
  type AHandler<Action extends AnyRequestModule> = Handler<Action, "raw", S.Schema.Encoded<GetSuccess<Action>>, SupportedErrors | S.ParseResult.ParseError | S.Schema.Type<GetFailure<Action>>, any, any> | Handler<Action, "d", S.Schema.Type<GetSuccess<Action>>, SupportedErrors | S.ParseResult.ParseError | S.Schema.Type<GetFailure<Action>>, any, any>;
28
+ /**
29
+ * Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context
30
+ */
31
+ export type ContextMap<Key, Service> = [Key, Service, true];
32
+ /**
33
+ * Middleware is active by default, and provides the Service at Key in route context, and the Service is provided as Effect Context
34
+ */
35
+ export type ContextMapInverted<Key, Service> = [Key, Service, false];
28
36
  export declare const makeRouter: <CTX, CTXMap extends Record<string, [string, any, boolean]>>(handleRequestEnv: any) => {
29
37
  matchFor: <Rsc extends Record<string, any>>(rsc: Rsc) => {
30
38
  controllers: <THandlers extends { [K in keyof { [K_1 in keyof Rsc as Rsc[K_1] extends {
@@ -39,7 +47,7 @@ export declare const makeRouter: <CTX, CTXMap extends Record<string, [string, an
39
47
  Response: any;
40
48
  } ? K_1 : never]: Rsc[K_1] extends {
41
49
  Response: any;
42
- } ? Rsc[K_1] : never; } ? { [K in T]: RouteMatch<_R<ReturnType<THandlers[K]["handler"]>>, Rsc[K], { [key in keyof CTXMap as key extends keyof Rsc[K] ? Rsc[K][key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; }[keyof { [key in keyof CTXMap as key extends keyof Rsc[K] ? Rsc[K][key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; }]>; } : never)[keyof { [K_1 in keyof Rsc as Rsc[K_1] extends {
50
+ } ? Rsc[K_1] : never; } ? { [K in T]: RouteMatch<_R<ReturnType<THandlers[K]["handler"]>>, Rsc[K], ({ [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[K] ? Rsc[K][key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends false ? never : key_1 extends keyof Rsc[K] ? Rsc[K][key_1] extends true ? CTXMap[key_1][0] : never : never]: CTXMap[key_1][1]; })[keyof { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[K] ? Rsc[K][key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; } | keyof { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends false ? never : key_1 extends keyof Rsc[K] ? Rsc[K][key_1] extends true ? CTXMap[key_1][0] : never : never]: CTXMap[key_1][1]; }]>; } : never)[keyof { [K_1 in keyof Rsc as Rsc[K_1] extends {
43
51
  Response: any;
44
52
  } ? K_1 : never]: Rsc[K_1] extends {
45
53
  Response: any;
@@ -51,7 +59,7 @@ export declare const makeRouter: <CTX, CTXMap extends Record<string, [string, an
51
59
  Response: any;
52
60
  } ? K_1 : never]: Rsc[K_1] extends {
53
61
  Response: any;
54
- } ? Rsc[K_1] : never; } ? { [K in T]: RouteMatch<_R<ReturnType<THandlers[K]["handler"]>>, Rsc[K], { [key in keyof CTXMap as key extends keyof Rsc[K] ? Rsc[K][key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; }[keyof { [key in keyof CTXMap as key extends keyof Rsc[K] ? Rsc[K][key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; }]>; } : never)[keyof { [K_1 in keyof Rsc as Rsc[K_1] extends {
62
+ } ? Rsc[K_1] : never; } ? { [K in T]: RouteMatch<_R<ReturnType<THandlers[K]["handler"]>>, Rsc[K], ({ [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[K] ? Rsc[K][key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends false ? never : key_1 extends keyof Rsc[K] ? Rsc[K][key_1] extends true ? CTXMap[key_1][0] : never : never]: CTXMap[key_1][1]; })[keyof { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[K] ? Rsc[K][key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; } | keyof { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends false ? never : key_1 extends keyof Rsc[K] ? Rsc[K][key_1] extends true ? CTXMap[key_1][0] : never : never]: CTXMap[key_1][1]; }]>; } : never)[keyof { [K_1 in keyof Rsc as Rsc[K_1] extends {
55
63
  Response: any;
56
64
  } ? K_1 : never]: Rsc[K_1] extends {
57
65
  Response: any;
@@ -61,17 +69,17 @@ export declare const makeRouter: <CTX, CTXMap extends Record<string, [string, an
61
69
  } ? K_1 : never]: Rsc[K_1] extends {
62
70
  Response: any;
63
71
  } ? Rsc[K_1] : never; }]: {
64
- <R2, E, A>(f: Effect<A, E, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A, Handler<Rsc[Key], "d", A, E, R2, CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>>;
65
- <R2, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key]>, ctx: CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & Pick<Rsc[Key], "Response">) => Effect<A_1, E_1, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_1, Handler<Rsc[Key], "d", A_1, E_1, R2, CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>>;
66
- <SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<Rsc[Key]>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & Pick<Rsc[Key], "Response">>) => Effect<A_2, E_2, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_2, Handler<Rsc[Key], "d", A_2, E_2, R2, CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>>;
72
+ <R2, E, A>(f: Effect<A, E, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A, Handler<Rsc[Key], "d", A, E, R2, CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key] ? Rsc[Key][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key] ? Rsc[Key][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; }>>;
73
+ <R2, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key]>, ctx: CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key] ? Rsc[Key][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key] ? Rsc[Key][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & Pick<Rsc[Key], "Response">) => Effect<A_1, E_1, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_1, Handler<Rsc[Key], "d", A_1, E_1, R2, CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key] ? Rsc[Key][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key] ? Rsc[Key][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; }>>;
74
+ <SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<Rsc[Key]>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key] ? Rsc[Key][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key] ? Rsc[Key][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & Pick<Rsc[Key], "Response">>) => Effect<A_2, E_2, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_2, Handler<Rsc[Key], "d", A_2, E_2, R2, CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key] ? Rsc[Key][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key] ? Rsc[Key][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; }>>;
67
75
  }; } & { [Key_1 in keyof { [K_1 in keyof Rsc as Rsc[K_1] extends {
68
76
  Response: any;
69
77
  } ? K_1 : never]: Rsc[K_1] extends {
70
78
  Response: any;
71
79
  } ? Rsc[K_1] : never; } as Key_1 extends string ? `${Key_1}Raw` : never]: {
72
- <R2_1, E, A>(f: Effect<A, E, R2_1>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A, Handler<Rsc[Key_1], "raw", A, E, R2_1, CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>>;
73
- <R2_1, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key_1]>, ctx: CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & Pick<Rsc[Key_1], "Response">) => Effect<A_1, E_1, R2_1>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A_1, Handler<Rsc[Key_1], "raw", A_1, E_1, R2_1, CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>>;
74
- <SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<Rsc[Key_1]>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & Pick<Rsc[Key_1], "Response">>) => Effect<A_2, E_2, R2>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A_2, Handler<Rsc[Key_1], "raw", A_2, E_2, R2, CTX & { [key in keyof CTXMap as key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>>;
80
+ <R2_1, E, A>(f: Effect<A, E, R2_1>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A, Handler<Rsc[Key_1], "raw", A, E, R2_1, CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; }>>;
81
+ <R2_1, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key_1]>, ctx: CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & Pick<Rsc[Key_1], "Response">) => Effect<A_1, E_1, R2_1>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A_1, Handler<Rsc[Key_1], "raw", A_1, E_1, R2_1, CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; }>>;
82
+ <SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<Rsc[Key_1]>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & Pick<Rsc[Key_1], "Response">>) => Effect<A_2, E_2, R2>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A_2, Handler<Rsc[Key_1], "raw", A_2, E_2, R2, CTX & { [key in keyof CTXMap as CTXMap[key][2] extends true ? never : key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][2] extends true ? never : key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][2] extends false ? never : key_2 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][2] extends false ? never : key_3 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; }>>;
75
83
  }; };
76
84
  matchAll: <T extends {
77
85
  [key: string]: HttpRouter.HttpRouter<any, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
package/dist/router.js CHANGED
@@ -4,7 +4,12 @@ import { defaultErrorHandler, makeRequestHandler } from "@effect-app/infra/api/r
4
4
  import { Effect, Predicate, S } from "effect-app";
5
5
  import { HttpRouter } from "effect-app/http";
6
6
  import { REST } from "effect-app/schema";
7
- // TODO: support FLIP (true means dependency available, false not. vs true means not available, false means available)
7
+ // For CTXMap, handled by `handleRequestEnv` middleware:
8
+ // ["configurationKey", ["contextKey", ServiceShape, defaultOffBoolean]]
9
+ // defaultOffBoolean:
10
+ // false means: if not configured, or set to false, the item is considered active.
11
+ // true means: if configured as true, the item is considered active.
12
+ // not active means the service is not in the context, and in route context is marked as optional.
8
13
  export const makeRouter = (handleRequestEnv /* Middleware */) => {
9
14
  function match(requestHandler, errorHandler, middleware) {
10
15
  let middlewareLayer = undefined;
@@ -146,4 +151,4 @@ export const makeRouter = (handleRequestEnv /* Middleware */) => {
146
151
  }
147
152
  return { matchFor, matchAll };
148
153
  };
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBV3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRXZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFHNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBNkR4QyxzSEFBc0g7QUFDdEgsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLGdCQUFxQixDQUFDLGdCQUFnQixFQUN0QyxFQUFFO0lBcUJGLFNBQVMsS0FBSyxDQW9CWixjQWVDLEVBQ0QsWUFRQyxFQUNELFVBa0JDO1FBRUQsSUFBSSxlQUFlLEdBQTJDLFNBQVMsQ0FBQTtRQUN2RSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUNoRSxjQUFjLEdBQUcsT0FBYyxDQUFBLENBQUMsT0FBTztZQUN2QyxlQUFlLEdBQUcsZ0JBQWdCLENBQUE7UUFDcEMsQ0FBQztRQUNELDhEQUE4RDtRQUU5RCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FrQmhDLGNBQXFCLEVBQUUsK0VBQStFO1FBQ3RHLFlBQVksRUFDWixlQUFlLENBQ2hCLENBQUE7UUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsU0FBUyxDQUNoQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFDN0IsY0FBYyxDQUFDLE9B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
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBV3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRXZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFHNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBc0V4Qyx3REFBd0Q7QUFDeEQsd0VBQXdFO0FBQ3hFLHFCQUFxQjtBQUNyQixrRkFBa0Y7QUFDbEYsb0VBQW9FO0FBQ3BFLGtHQUFrRztBQUNsRyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsZ0JBQXFCLENBQUMsZ0JBQWdCLEVBQ3RDLEVBQUU7SUF5REYsU0FBUyxLQUFLLENBb0JaLGNBZUMsRUFDRCxZQVFDLEVBQ0QsVUFrQkM7UUFFRCxJQUFJLGVBQWUsR0FBMkMsU0FBUyxDQUFBO1FBQ3ZFLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1lBQ2hFLGNBQWMsR0FBRyxPQUFjLENBQUEsQ0FBQyxPQUFPO1lBQ3ZDLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQTtRQUNwQyxDQUFDO1FBQ0QsOERBQThEO1FBRTlELE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQWtCaEMsY0FBcUIsRUFBRSwrRUFBK0U7UUFDdEcsWUFBWSxFQUNaLGVBQWUsQ0FDaEIsQ0FBQTtRQUVELE1BQU0sS0FBSyxHQUFH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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "1.16.5",
3
+ "version": "1.16.7",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -20,8 +20,8 @@
20
20
  "redlock": "^4.2.0",
21
21
  "@effect-app/core": "1.9.0",
22
22
  "@effect-app/infra-adapters": "1.10.4",
23
- "effect-app": "1.15.3",
24
- "@effect-app/schema": "1.11.0"
23
+ "@effect-app/schema": "1.11.0",
24
+ "effect-app": "1.15.3"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@babel/cli": "^7.25.6",
package/src/router.ts CHANGED
@@ -81,26 +81,76 @@ type AHandler<Action extends AnyRequestModule> =
81
81
  any
82
82
  >
83
83
 
84
- // TODO: support FLIP (true means dependency available, false not. vs true means not available, false means available)
84
+ /**
85
+ * Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context
86
+ */
87
+ export type ContextMap<Key, Service> = [Key, Service, true]
88
+ /**
89
+ * Middleware is active by default, and provides the Service at Key in route context, and the Service is provided as Effect Context
90
+ */
91
+ export type ContextMapInverted<Key, Service> = [Key, Service, false]
92
+
93
+ // For CTXMap, handled by `handleRequestEnv` middleware:
94
+ // ["configurationKey", ["contextKey", ServiceShape, defaultOffBoolean]]
95
+ // defaultOffBoolean:
96
+ // false means: if not configured, or set to false, the item is considered active.
97
+ // true means: if configured as true, the item is considered active.
98
+ // not active means the service is not in the context, and in route context is marked as optional.
85
99
  export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, boolean]>>(
86
100
  handleRequestEnv: any /* Middleware */
87
101
  ) => {
88
- type GetCTX<T> =
102
+ type GetRouteContext<T> =
89
103
  & CTX
104
+ // inverted
90
105
  & {
91
- [key in keyof CTXMap as key extends keyof T ? T[key] extends true ? CTXMap[key][0] : never : never]?:
92
- CTXMap[key][1]
106
+ [
107
+ key in keyof CTXMap as CTXMap[key][2] extends true ? never
108
+ : key extends keyof T ? T[key] extends true ? CTXMap[key][0] : never
109
+ : never
110
+ ]?: CTXMap[key][1]
93
111
  }
94
112
  & {
95
- [key in keyof CTXMap as key extends keyof T ? T[key] extends false ? CTXMap[key][0] : never : CTXMap[key][0]]:
96
- CTXMap[key][1]
113
+ [
114
+ key in keyof CTXMap as CTXMap[key][2] extends true ? never
115
+ : key extends keyof T ? T[key] extends false ? CTXMap[key][0] : never
116
+ : CTXMap[key][0]
117
+ ]: CTXMap[key][1]
118
+ }
119
+ // normal
120
+ & {
121
+ [
122
+ key in keyof CTXMap as CTXMap[key][2] extends false ? never
123
+ : key extends keyof T ? T[key] extends true ? CTXMap[key][0] : never
124
+ : never
125
+ ]: CTXMap[key][1]
126
+ }
127
+ & {
128
+ [
129
+ key in keyof CTXMap as CTXMap[key][2] extends false ? never
130
+ : key extends keyof T ? T[key] extends false ? CTXMap[key][0] : never
131
+ : CTXMap[key][0]
132
+ ]?: CTXMap[key][1]
97
133
  }
98
134
 
99
135
  type Values<T extends Record<any, any>> = T[keyof T]
100
136
 
101
- type GetContext<T> = Values<
102
- {
103
- [key in keyof CTXMap as key extends keyof T ? T[key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: // TODO: or as an Optional available?
137
+ type GetEffectContext<T> = Values<
138
+ // inverted
139
+ & {
140
+ [
141
+ key in keyof CTXMap as CTXMap[key][2] extends true ? never
142
+ : key extends keyof T ? T[key] extends true ? never : CTXMap[key][0]
143
+ : CTXMap[key][0]
144
+ ]: // TODO: or as an Optional available?
145
+ CTXMap[key][1]
146
+ }
147
+ // normal
148
+ & {
149
+ [
150
+ key in keyof CTXMap as CTXMap[key][2] extends false ? never
151
+ : key extends keyof T ? T[key] extends true ? CTXMap[key][0] : never
152
+ : never
153
+ ]: // TODO: or as an Optional available?
104
154
  CTXMap[key][1]
105
155
  }
106
156
  >
@@ -250,8 +300,8 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
250
300
  Res,
251
301
  ReqSchema,
252
302
  ResSchema,
253
- GetCTX<Req>,
254
- GetContext<Req>
303
+ GetRouteContext<Req>,
304
+ GetEffectContext<Req>
255
305
  >)
256
306
  }
257
307
 
@@ -283,7 +333,7 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
283
333
  f: (
284
334
  req: S.Schema.Type<Rsc[Key]>,
285
335
  ctx: Compute<
286
- LowerServices<EffectDeps<SVC>> & GetCTX<Rsc[Key]>,
336
+ LowerServices<EffectDeps<SVC>> & GetRouteContext<Rsc[Key]>,
287
337
  "flat"
288
338
  >
289
339
  ) => Effect<A, E, R2>
@@ -304,14 +354,14 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
304
354
  A,
305
355
  E,
306
356
  R2,
307
- GetCTX<Rsc[Key]>
357
+ GetRouteContext<Rsc[Key]>
308
358
  >
309
359
  >
310
360
 
311
361
  <R2, E, A>(
312
362
  f: (
313
363
  req: S.Schema.Type<Rsc[Key]>,
314
- ctx: GetCTX<Rsc[Key]> & Pick<Rsc[Key], "Response">
364
+ ctx: GetRouteContext<Rsc[Key]> & Pick<Rsc[Key], "Response">
315
365
  ) => Effect<A, E, R2>
316
366
  ): HandleVoid<
317
367
  GetSuccessShape<Rsc[Key], RT>,
@@ -322,7 +372,7 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
322
372
  A,
323
373
  E,
324
374
  R2,
325
- GetCTX<Rsc[Key]>
375
+ GetRouteContext<Rsc[Key]>
326
376
  >
327
377
  >
328
378
 
@@ -339,7 +389,7 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
339
389
  f: (
340
390
  req: S.Schema.Type<Rsc[Key]>,
341
391
  ctx: Compute<
342
- LowerServices<EffectDeps<SVC>> & GetCTX<Rsc[Key]> & Pick<Rsc[Key], "Response">,
392
+ LowerServices<EffectDeps<SVC>> & GetRouteContext<Rsc[Key]> & Pick<Rsc[Key], "Response">,
343
393
  "flat"
344
394
  >
345
395
  ) => Effect<A, E, R2>
@@ -352,7 +402,7 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
352
402
  A,
353
403
  E,
354
404
  R2,
355
- GetCTX<Rsc[Key]>
405
+ GetRouteContext<Rsc[Key]>
356
406
  >
357
407
  >
358
408
  }
@@ -386,8 +436,8 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
386
436
  S.Schema.Type<GetSuccess<Rsc[K]>>, // TODO: GetSuccessShape, but requires RT
387
437
  Rsc[K],
388
438
  GetSuccess<Rsc[K]>,
389
- GetCTX<Rsc[K]>,
390
- GetContext<Rsc[K]>
439
+ GetRouteContext<Rsc[K]>,
440
+ GetEffectContext<Rsc[K]>
391
441
  >
392
442
  }
393
443
  )
@@ -419,7 +469,7 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
419
469
  _R<ReturnType<THandlers[K]["handler"]>>,
420
470
  Rsc[K],
421
471
  // _E<ReturnType<THandlers[K]["handler"]>>,
422
- GetContext<Rsc[K]>
472
+ GetEffectContext<Rsc[K]>
423
473
  >
424
474
  }
425
475