@effect-app/infra 1.16.0 → 1.16.2

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.2
4
+
5
+ ### Patch Changes
6
+
7
+ - ad7f47c: fix type
8
+
9
+ ## 1.16.1
10
+
11
+ ### Patch Changes
12
+
13
+ - fup
14
+
3
15
  ## 1.16.0
4
16
 
5
17
  ### Minor Changes
package/_cjs/router.cjs CHANGED
@@ -26,7 +26,9 @@ const makeRouter = (handleRequestEnv /* Middleware */) => {
26
26
  const handler = (0, _routing.makeRequestHandler)(requestHandler,
27
27
  // one argument if no middleware, 2 if has middleware. TODO: clean this shit up
28
28
  errorHandler, middlewareLayer);
29
- const route = _http.HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler);
29
+ const route = _http.HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler.pipe(_effectApp.Effect.withSpan("Request." + requestHandler.name, {
30
+ captureStackTrace: () => requestHandler.stack
31
+ })));
30
32
  // TODO
31
33
  // rdesc.push(makeRouteDescriptor(
32
34
  // requestHandler.Request.path,
@@ -40,6 +42,7 @@ const makeRouter = (handleRequestEnv /* Middleware */) => {
40
42
  const Response = _effectApp.S.REST.extractResponse(_);
41
43
  return h => ({
42
44
  adaptResponse,
45
+ stack: h.stack,
43
46
  h: h.handler,
44
47
  name,
45
48
  Request,
@@ -97,31 +100,43 @@ const makeRouter = (handleRequestEnv /* Middleware */) => {
97
100
  controllers,
98
101
  ...(0, _utils.typedKeysOf)(filtered).reduce((prev, cur) => {
99
102
  ;
100
- prev[cur] = (svcOrFnOrEffect, fnOrNone) => _effectApp.Effect.isEffect(svcOrFnOrEffect) ? class {
101
- static _tag = "d";
102
- static handler = () => svcOrFnOrEffect;
103
- } : typeof svcOrFnOrEffect === "function" ? class {
104
- static _tag = "d";
105
- static handler = (req, ctx) => svcOrFnOrEffect(req, {
106
- ...ctx,
107
- Response: rsc[cur].Response
108
- });
109
- } : class {
110
- static _tag = "d";
111
- static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
103
+ prev[cur] = (svcOrFnOrEffect, fnOrNone) => {
104
+ const stack = new Error().stack?.split("\n").slice(2).join("\n");
105
+ return _effectApp.Effect.isEffect(svcOrFnOrEffect) ? class {
106
+ static stack = stack;
107
+ static _tag = "d";
108
+ static handler = () => svcOrFnOrEffect;
109
+ } : typeof svcOrFnOrEffect === "function" ? class {
110
+ static stack = stack;
111
+ static _tag = "d";
112
+ static handler = (req, ctx) => svcOrFnOrEffect(req, {
113
+ ...ctx,
114
+ Response: rsc[cur].Response
115
+ });
116
+ } : class {
117
+ static stack = stack;
118
+ static _tag = "d";
119
+ static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
120
+ };
112
121
  };
113
- prev[cur + "Raw"] = (svcOrFnOrEffect, fnOrNone) => _effectApp.Effect.isEffect(svcOrFnOrEffect) ? class {
114
- static _tag = "raw";
115
- static handler = () => svcOrFnOrEffect;
116
- } : typeof svcOrFnOrEffect === "function" ? class {
117
- static _tag = "raw";
118
- static handler = (req, ctx) => svcOrFnOrEffect(req, {
119
- ...ctx,
120
- Response: rsc[cur].Response
121
- });
122
- } : class {
123
- static _tag = "raw";
124
- static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
122
+ prev[cur + "Raw"] = (svcOrFnOrEffect, fnOrNone) => {
123
+ const stack = new Error().stack?.split("\n").slice(2).join("\n");
124
+ return _effectApp.Effect.isEffect(svcOrFnOrEffect) ? class {
125
+ static stack = stack;
126
+ static _tag = "raw";
127
+ static handler = () => svcOrFnOrEffect;
128
+ } : typeof svcOrFnOrEffect === "function" ? class {
129
+ static stack = stack;
130
+ static _tag = "raw";
131
+ static handler = (req, ctx) => svcOrFnOrEffect(req, {
132
+ ...ctx,
133
+ Response: rsc[cur].Response
134
+ });
135
+ } : class {
136
+ static stack = stack;
137
+ static _tag = "raw";
138
+ static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
139
+ };
125
140
  };
126
141
  return prev;
127
142
  }, {})
@@ -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","handle","_","name","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","Effect","andThen","allLower","svc2","controllers","handlers","m","meta","Error","moduleName","mapped","determineMethod","split","Object","assign","Auto","fromIterable","values","r","prev","svcOrFnOrEffect","fnOrNone","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":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAcA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AAGA,IAAAK,OAAA,GAAAL,OAAA;AAkBA;AACO,MAAMM,UAAU,GAAGA,CACxBC,gBAAqB,CAAC,qBACpB;EAqBF,SAASC,KAAKA,CAoBZC,cAeC,EACDC,YAQC,EACDC,UAkBC;IAED,IAAIC,eAAe,GAA2CC,SAAS;IACvE,IAAIF,UAAU,EAAE;MACd,MAAM;QAAEG,OAAO;QAAEC;MAAgB,CAAE,GAAGJ,UAAU,CAACF,cAAc,CAAC;MAChEA,cAAc,GAAGK,OAAc,EAAC;MAChCF,eAAe,GAAGG,gBAAgB;IACpC;IACA;IAEA,MAAMD,OAAO,GAAG,IAAAE,2BAAkB,EAkBhCP,cAAqB;IAAE;IACvBC,YAAY,EACZE,eAAe,CAChB;IAED,MAAMK,KAAK,GAAGC,gBAAU,CAACC,SAAS,CAChCV,cAAc,CAACW,OAAO,CAACC,MAAM,EAC7BZ,cAAc,CAACW,OAAO,CAACE,IAAI,EAC3BR,OAAO,CAACS,IAAI,CACVC,iBAAM,CAACC,QAAQ,CAAC,UAAU,GAAGhB,cAAc,CAACiB,IAAI,EAAE;MAAEC,iBAAiB,EAAEA,CAAA,KAAOlB,cAAsB,CAACmB;IAAK,CAAE,CAAC,CAC9G,CACF;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAOX,KAAK;EACd;EAEA,SAASY,MAAMA,CAMbC,CAAsC,EACtCJ,IAAY,EACZK,aAAmB;IAEnB,MAAMX,OAAO,GAAGY,YAAC,CAACC,IAAI,CAACC,cAAc,CAACJ,CAAC,CAAC;IACxC,MAAMK,QAAQ,GAAGH,YAAC,CAACC,IAAI,CAACG,eAAe,CAACN,CAAC,CAAC;IAU1C,OACEO,CAAgF,KAC5E;MACJN,aAAa;MACbH,KAAK,EAAES,CAAC,CAACT,KAAK;MACdS,CAAC,EAAEA,CAAC,CAACvB,OAAO;MACZY,IAAI;MACJN,OAAO;MACPe,QAAQ;MACRG,eAAe,EAAER,CAAC,CAACQ,eAAe,IAAIH,QAAQ;MAC9CI,OAAO,EAAE,IAAW;MACpBC,GAAG,EAAE,IAAW;MAChBC,EAAE,EAAEJ,CAAC,CAACK;KAUN;EACJ;EAeA,SAASC,QAAQA,CACfC,GAAQ;IAMR,MAAMC,QAAQ,GAAG,IAAAC,kBAAW,EAACF,GAAG,CAAC,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAI;MACpD,IAAIC,oBAAS,CAACC,QAAQ,CAACP,GAAG,CAACK,GAAG,CAAC,CAAC,IAAIL,GAAG,CAACK,GAAG,CAAC,CAAC7B,OAAO,EAAE;QACpD4B,GAAG,CAACC,GAAqB,CAAC,GAAGL,GAAG,CAACK,GAAG,CAAC;MACvC;MACA,OAAOD,GAAG;IACZ,CAAC,EAAE,EAAc,CAAC;IAElB,MAAMI,iBAAiB,GAAgCC,MAAW,IAAI;MAEpE,OAAO,CASLC,QAAa,EACbC,CAMqB,KAEvB,CAACC,GAAQ,EAAEC,GAAQ,KACjBjC,iBAAM,CAACkC,OAAO,CAAC,IAAAC,gBAAQ,EAACL,QAAQ,CAAC,EAAGM,IAAI,IAAKL,CAAC,CAACC,GAAG,EAAE;QAAE,GAAGC,GAAG;QAAE,GAAGG,IAAI;QAAEzB,QAAQ,EAAES,GAAG,CAACS,MAAM,CAAC,CAAClB;MAAQ,CAAE,CAAC,CAAC;IAC7G,CAAC;IA8FD,MAAM0B,WAAW,GAMfA,WAAsB,IACpB;MACF,MAAMC,QAAQ,GAAG,IAAAhB,kBAAW,EAACD,QAAQ,CAAC,CAACE,MAAM,CAC3C,CAACC,GAAG,EAAEC,GAAG,KAAI;QACX,IAAIA,GAAG,KAAK,MAAM,EAAE,OAAOD,GAAG;QAC9B,MAAMe,CAAC,GAAInB,GAAW,CAACoB,IAA8B;QACrD,IAAI,CAACD,CAAC,EAAE,MAAM,IAAIE,KAAK,CAAC,gCAAgC,CAAC;QACvDjB,GAAW,CAACC,GAAG,CAAC,GAAGpB,MAAM,CACzBe,GAAG,CAACK,GAAG,CAAC,EACRc,CAAC,CAACG,UAAU,GAAG,GAAG,GAAIjB,GAAc,CACrC,CAACY,WAAW,CAACZ,GAA+B,CAAQ,CAAC;QACtD,OAAOD,GAAG;MACZ,CAAC,EACD,EAWC,CACF;MAED,MAAMmB,MAAM,GAAG,IAAArB,kBAAW,EAACgB,QAAQ,CAAC,CAACf,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAI;QACvD,MAAMnC,OAAO,GAAGgD,QAAQ,CAACb,GAAG,CAAC;QAC7B,MAAMO,GAAG,GAAG1C,OAAO,CAACM,OAAO;QAE3B,MAAMA,OAAQ,SAASoC,GAAW;UAChC,OAAOlC,IAAI,GAAG,GAAG,GAAGR,OAAO,CAACY,IAAI,IAAI8B,GAAG,CAAClC,IAAI,KAAK,GAAG,GAAG,EAAE,GAAGkC,GAAG,CAAClC,IAAI,CAAC;UACrE,OAAOD,MAAM,GAAGmC,GAAG,CAACnC,MAAM,KAAK,MAAM,GACjCY,YAAI,CAACmC,eAAe,CAACtD,OAAO,CAACY,IAAI,CAAC2C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,EAAEb,GAAG,CAAC,GACtDA,GAAG,CAACnC,MAAM;;QAEhB,IAAImC,GAAG,CAACnC,MAAM,KAAK,MAAM,EAAE;UACzBiD,MAAM,CAACC,MAAM,CAACnD,OAAO,EAAE;YACrB,CAACA,OAAO,CAACC,MAAM,KAAK,KAAK,IAAID,OAAO,CAACC,MAAM,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAGmC,GAAG,CAACgB;WACnF,CAAC;QACJ;QACAF,MAAM,CAACC,MAAM,CAACzD,OAAO,EAAE;UAAEM;QAAO,CAAE,CAAC;QACnC4B,GAAG,CAACC,GAAG,CAAC,GAAGzC,KAAK,CACdM,OAAc,EACdJ,YAAY,CAAC8C,GAAG,CAAC,EACjBjD,gBAAgB,CAAC;SAClB;QACD,OAAOyC,GAAG;MACZ,CAAC,EAAE,EAAS,CAOX;MAYD,OAAO9B,gBAAU,CAACuD,YAAY,CAACH,MAAM,CAACI,MAAM,CAACP,MAAM,CAAC,CAGnD;IACH,CAAC;IAID,MAAMQ,CAAC,GAAG;MACRd,WAAW;MACX,GAAG,IAAAf,kBAAW,EAACD,QAAQ,CAAC,CAACE,MAAM,CAC7B,CAAC6B,IAAI,EAAE3B,GAAG,KAAI;QACZ;QAAE2B,IAAY,CAAC3B,GAAG,CAAC,GAAG,CAAC4B,eAAoB,EAAEC,QAAa,KAAI;UAC5D,MAAMlD,KAAK,GAAG,IAAIqC,KAAK,EAAE,CAACrC,KAAK,EAAEyC,KAAK,CAAC,IAAI,CAAC,CAACU,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;UAChE,OAAOxD,iBAAM,CAACyD,QAAQ,CAACJ,eAAe,CAAC,GACnC;YACA,OAAOjD,KAAK,GAAGA,KAAK;YACpB,OAAOc,IAAI,GAAG,GAAG;YACjB,OAAO5B,OAAO,GAAGA,CAAA,KAAM+D,eAAe;WACvC,GACC,OAAOA,eAAe,KAAK,UAAU,GACrC;YACA,OAAOjD,KAAK,GAAGA,KAAK;YACpB,OAAOc,IAAI,GAAG,GAAG;YACjB,OAAO5B,OAAO,GAAGA,CAAC0C,GAAQ,EAAEC,GAAQ,KAAKoB,eAAe,CAACrB,GAAG,EAAE;cAAE,GAAGC,GAAG;cAAEtB,QAAQ,EAAES,GAAG,CAACK,GAAG,CAAC,CAACd;YAAQ,CAAE,CAAC;WACvG,GACC;YACA,OAAOP,KAAK,GAAGA,KAAK;YACpB,OAAOc,IAAI,GAAG,GAAG;YACjB,OAAO5B,OAAO,GAAGsC,iBAAiB,CAACH,GAAG,CAAC,CAAC4B,eAAe,EAAEC,QAAQ,CAAC;WACnE;QACL,CAAC;QACCF,IAAY,CAAE3B,GAAW,GAAG,KAAK,CAAC,GAAG,CAAC4B,eAAoB,EAAEC,QAAa,KAAI;UAC7E,MAAMlD,KAAK,GAAG,IAAIqC,KAAK,EAAE,CAACrC,KAAK,EAAEyC,KAAK,CAAC,IAAI,CAAC,CAACU,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;UAChE,OAAOxD,iBAAM,CAACyD,QAAQ,CAACJ,eAAe,CAAC,GACnC;YACA,OAAOjD,KAAK,GAAGA,KAAK;YACpB,OAAOc,IAAI,GAAG,KAAK;YACnB,OAAO5B,OAAO,GAAGA,CAAA,KAAM+D,eAAe;WACvC,GACC,OAAOA,eAAe,KAAK,UAAU,GACrC;YACA,OAAOjD,KAAK,GAAGA,KAAK;YACpB,OAAOc,IAAI,GAAG,KAAK;YACnB,OAAO5B,OAAO,GAAGA,CAAC0C,GAAQ,EAAEC,GAAQ,KAAKoB,eAAe,CAACrB,GAAG,EAAE;cAAE,GAAGC,GAAG;cAAEtB,QAAQ,EAAES,GAAG,CAACK,GAAG,CAAC,CAACd;YAAQ,CAAE,CAAC;WACvG,GACC;YACA,OAAOP,KAAK,GAAGA,KAAK;YACpB,OAAOc,IAAI,GAAG,KAAK;YACnB,OAAO5B,OAAO,GAAGsC,iBAAiB,CAACH,GAAG,CAAC,CAAC4B,eAAe,EAAEC,QAAQ,CAAC;WACnE;QACL,CAAC;QACD,OAAOF,IAAI;MACb,CAAC,EACD,EAQG;KAEN;IACD,OAAOD,CAAC;EACV;EAEA,MAAMjE,YAAY,GAAIwE,eAAoD,IAAI;IAC5E,OAAO,CACL1B,GAAwC,EACxC2B,GAA0C,EAC1CC,EAA2G,KACxG,IAAAC,4BAAmB,EAAC7B,GAAG,EAAE2B,GAAG,EAAE3D,iBAAM,CAAC8D,QAAQ,CAACF,EAAE,EAAE,YAAY,EAAGtD,CAAC,IAAKN,iBAAM,CAAC+D,GAAG,CAACzD,CAAC,CAAC,CAAC,EAAEoD,eAAe,CAACM,OAAO,CAAC;EACtH,CAAC;EAED;;;;EAKA,SAASC,QAAQA,CAAgC3B,QAAW;IAC1D,MAAMa,CAAC,GAAG,IAAA7B,kBAAW,EAACgB,QAAQ,CAAC,CAACf,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAI;MAClD,OAAO/B,gBAAU,CAACwE,MAAM,CAAC1C,GAAG,EAAEc,QAAQ,CAACb,GAAG,CAAQ,CAAC;IACrD,CAAC,EAAE/B,gBAAU,CAACyE,KAAK,CAAC;IAYpB,OAAOhB,CAGN;EACH;EAwBA,OAAO;IAAEhC,QAAQ;IAAE8C;EAAQ,CAAE;AAC/B,CAAC;AAAAG,OAAA,CAAAtF,UAAA,GAAAA,UAAA","ignoreList":[]}
package/dist/router.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import type { EffectUnunified, LowerServices } from "@effect-app/core/Effect";
2
2
  import type { EnforceNonEmptyRecord } from "@effect-app/core/utils";
3
- import type { _R, EffectDeps, Extr, ReqFromSchema } from "@effect-app/infra/api/routing";
4
- import type { Types } from "effect-app";
3
+ import type { EffectDeps, Extr } from "@effect-app/infra/api/routing";
5
4
  import { Effect, S } from "effect-app";
6
5
  import type { ValidationError } from "effect-app/client/errors";
7
6
  import { HttpRouter } from "effect-app/http";
@@ -19,11 +18,11 @@ export declare const makeRouter: <CTX, CTXMap extends Record<string, [string, an
19
18
  } ? Rsc[K_1] : never; }]: {
20
19
  new (): {};
21
20
  _tag: "raw";
22
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[K]>>, ctx: CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<Rsc[K]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<Rsc[K]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }) => Effect<S.Schema.Encoded<Extr<REST.GetResponse<Rsc[K]>>>, import("effect-app/client/errors").OptimisticConcurrencyException | S.ParseResult.ParseError | ValidationError | import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").NotFoundError<ItemType> | import("effect-app/client/errors").NotLoggedInError | import("effect-app/client/errors").LoginError | import("effect-app/client/errors").UnauthorizedError | import("effect-app/client/errors").ServiceUnavailableError | S.Schema.Type<REST.GetRequest<Rsc[K]>["failure"]>, any>;
21
+ handler: (req: Rsc[K]["Request"], ctx: Rsc[K]["Context"]) => Effect<S.Schema.Encoded<Extr<REST.GetResponse<Rsc[K]>>>, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").NotFoundError<ItemType> | import("effect-app/client/errors").NotLoggedInError | import("effect-app/client/errors").LoginError | import("effect-app/client/errors").UnauthorizedError | ValidationError | import("effect-app/client/errors").ServiceUnavailableError | S.ParseResult.ParseError | S.Schema.Type<Rsc[K]["failure"]>, any>;
23
22
  } | {
24
23
  new (): {};
25
24
  _tag: "d";
26
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[K]>>, ctx: CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<Rsc[K]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<Rsc[K]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }) => Effect<S.Schema.Type<Extr<REST.GetResponse<Rsc[K]>>>, import("effect-app/client/errors").OptimisticConcurrencyException | S.ParseResult.ParseError | ValidationError | import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").NotFoundError<ItemType> | import("effect-app/client/errors").NotLoggedInError | import("effect-app/client/errors").LoginError | import("effect-app/client/errors").UnauthorizedError | import("effect-app/client/errors").ServiceUnavailableError | S.Schema.Type<REST.GetRequest<Rsc[K]>["failure"]>, any>;
25
+ handler: (req: Rsc[K]["Request"], ctx: Rsc[K]["Context"]) => Effect<S.Schema.Type<Extr<REST.GetResponse<Rsc[K]>>>, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").NotFoundError<ItemType> | import("effect-app/client/errors").NotLoggedInError | import("effect-app/client/errors").LoginError | import("effect-app/client/errors").UnauthorizedError | ValidationError | import("effect-app/client/errors").ServiceUnavailableError | S.ParseResult.ParseError | S.Schema.Type<Rsc[K]["failure"]>, any>;
27
26
  }; }>(controllers: THandlers) => HttpRouter.HttpRouter<[(keyof { [K_1 in keyof Rsc as Rsc[K_1] extends {
28
27
  Response: any;
29
28
  } ? K_1 : never]: Rsc[K_1] extends {
@@ -32,7 +31,7 @@ export declare const makeRouter: <CTX, CTXMap extends Record<string, [string, an
32
31
  Response: any;
33
32
  } ? K_1 : never]: Rsc[K_1] extends {
34
33
  Response: any;
35
- } ? Rsc[K_1] : never; } ? { [K in T]: RouteMatch<_R<ReturnType<THandlers[K]["handler"]>>, ReqFromSchema<REST.GetRequest<Rsc[K]>>, { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<Rsc[K]>[key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; }[keyof { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<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 {
34
+ } ? Rsc[K_1] : never; } ? { [K in T]: HttpRouter.Route<never, Exclude<Exclude<_R<ReturnType<THandlers[K]["handler"]>>, EnforceNonEmptyRecord<ReqFromSchema<REST.GetRequest<Rsc[K]>>>>, { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<Rsc[K]>[key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; }[keyof { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<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 {
36
35
  Response: any;
37
36
  } ? K_1 : never]: Rsc[K_1] extends {
38
37
  Response: any;
@@ -44,7 +43,7 @@ export declare const makeRouter: <CTX, CTXMap extends Record<string, [string, an
44
43
  Response: any;
45
44
  } ? K_1 : never]: Rsc[K_1] extends {
46
45
  Response: any;
47
- } ? Rsc[K_1] : never; } ? { [K in T]: RouteMatch<_R<ReturnType<THandlers[K]["handler"]>>, ReqFromSchema<REST.GetRequest<Rsc[K]>>, { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<Rsc[K]>[key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; }[keyof { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<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 {
46
+ } ? Rsc[K_1] : never; } ? { [K in T]: HttpRouter.Route<never, Exclude<Exclude<_R<ReturnType<THandlers[K]["handler"]>>, EnforceNonEmptyRecord<ReqFromSchema<REST.GetRequest<Rsc[K]>>>>, { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<Rsc[K]>[key] extends true ? never : CTXMap[key][0] : CTXMap[key][0]]: CTXMap[key][1]; }[keyof { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[K]> ? REST.GetRequest<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 {
48
47
  Response: any;
49
48
  } ? K_1 : never]: Rsc[K_1] extends {
50
49
  Response: any;
@@ -57,29 +56,29 @@ export declare const makeRouter: <CTX, CTXMap extends Record<string, [string, an
57
56
  <R2, E, A>(f: Effect<A, E, R2>): S.Schema.Type<REST.GetResponse<Rsc[Key]>> extends infer T ? T extends S.Schema.Type<REST.GetResponse<Rsc[Key]>> ? T extends void ? A extends void ? {
58
57
  new (): {};
59
58
  _tag: "d";
60
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A, E, R2>;
59
+ handler: (req: Rsc[Key]["Request"], ctx: Rsc[Key]["Context"]) => Effect<A, E, R2>;
61
60
  } : Hint<"You're returning non void for a void Response, please fix"> : {
62
61
  new (): {};
63
62
  _tag: "d";
64
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A, E, R2>;
63
+ handler: (req: Rsc[Key]["Request"], ctx: Rsc[Key]["Context"]) => Effect<A, E, R2>;
65
64
  } : never : never;
66
65
  <R2, E_1, A_1>(f: (req: S.Schema.Type<REST.GetRequest<Rsc[Key]>>, ctx: CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<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>): S.Schema.Type<REST.GetResponse<Rsc[Key]>> extends infer T ? T extends S.Schema.Type<REST.GetResponse<Rsc[Key]>> ? T extends void ? A_1 extends void ? {
67
66
  new (): {};
68
67
  _tag: "d";
69
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A_1, E_1, R2>;
68
+ handler: (req: Rsc[Key]["Request"], ctx: Rsc[Key]["Context"]) => Effect<A_1, E_1, R2>;
70
69
  } : Hint<"You're returning non void for a void Response, please fix"> : {
71
70
  new (): {};
72
71
  _tag: "d";
73
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A_1, E_1, R2>;
72
+ handler: (req: Rsc[Key]["Request"], ctx: Rsc[Key]["Context"]) => Effect<A_1, E_1, R2>;
74
73
  } : never : never;
75
74
  <SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<REST.GetRequest<Rsc[Key]>>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<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>): S.Schema.Type<REST.GetResponse<Rsc[Key]>> extends infer T ? T extends S.Schema.Type<REST.GetResponse<Rsc[Key]>> ? T extends void ? A_2 extends void ? {
76
75
  new (): {};
77
76
  _tag: "d";
78
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A_2, E_2, R2>;
77
+ handler: (req: Rsc[Key]["Request"], ctx: Rsc[Key]["Context"]) => Effect<A_2, E_2, R2>;
79
78
  } : Hint<"You're returning non void for a void Response, please fix"> : {
80
79
  new (): {};
81
80
  _tag: "d";
82
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key]> ? REST.GetRequest<Rsc[Key]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A_2, E_2, R2>;
81
+ handler: (req: Rsc[Key]["Request"], ctx: Rsc[Key]["Context"]) => Effect<A_2, E_2, R2>;
83
82
  } : never : never;
84
83
  }; } & { [Key_1 in keyof { [K_1 in keyof Rsc as Rsc[K_1] extends {
85
84
  Response: any;
@@ -89,33 +88,33 @@ export declare const makeRouter: <CTX, CTXMap extends Record<string, [string, an
89
88
  <R2_1, E, A>(f: Effect<A, E, R2_1>): S.Schema.Type<REST.GetResponse<Rsc[Key_1]>> extends infer T ? T extends S.Schema.Type<REST.GetResponse<Rsc[Key_1]>> ? T extends void ? A extends void ? {
90
89
  new (): {};
91
90
  _tag: "raw";
92
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key_1]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A, E, R2_1>;
91
+ handler: (req: Rsc[Key_1]["Request"], ctx: Rsc[Key_1]["Context"]) => Effect<A, E, R2_1>;
93
92
  } : Hint<"You're returning non void for a void Response, please fix"> : {
94
93
  new (): {};
95
94
  _tag: "raw";
96
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key_1]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A, E, R2_1>;
95
+ handler: (req: Rsc[Key_1]["Request"], ctx: Rsc[Key_1]["Context"]) => Effect<A, E, R2_1>;
97
96
  } : never : never;
98
97
  <R2_1, E_1, A_1>(f: (req: S.Schema.Type<REST.GetRequest<Rsc[Key_1]>>, ctx: CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<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>): S.Schema.Type<REST.GetResponse<Rsc[Key_1]>> extends infer T ? T extends S.Schema.Type<REST.GetResponse<Rsc[Key_1]>> ? T extends void ? A_1 extends void ? {
99
98
  new (): {};
100
99
  _tag: "raw";
101
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key_1]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A_1, E_1, R2_1>;
100
+ handler: (req: Rsc[Key_1]["Request"], ctx: Rsc[Key_1]["Context"]) => Effect<A_1, E_1, R2_1>;
102
101
  } : Hint<"You're returning non void for a void Response, please fix"> : {
103
102
  new (): {};
104
103
  _tag: "raw";
105
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key_1]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A_1, E_1, R2_1>;
104
+ handler: (req: Rsc[Key_1]["Request"], ctx: Rsc[Key_1]["Context"]) => Effect<A_1, E_1, R2_1>;
106
105
  } : never : never;
107
106
  <SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<REST.GetRequest<Rsc[Key_1]>>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<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>): S.Schema.Type<REST.GetResponse<Rsc[Key_1]>> extends infer T ? T extends S.Schema.Type<REST.GetResponse<Rsc[Key_1]>> ? T extends void ? A_2 extends void ? {
108
107
  new (): {};
109
108
  _tag: "raw";
110
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key_1]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A_2, E_2, R2>;
109
+ handler: (req: Rsc[Key_1]["Request"], ctx: Rsc[Key_1]["Context"]) => Effect<A_2, E_2, R2>;
111
110
  } : Hint<"You're returning non void for a void Response, please fix"> : {
112
111
  new (): {};
113
112
  _tag: "raw";
114
- handler: (req: S.Schema.Type<REST.GetRequest<Rsc[Key_1]>>, ctx: Types.Simplify<CTX & { [key in keyof CTXMap as key extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as key_1 extends keyof REST.GetRequest<Rsc[Key_1]> ? REST.GetRequest<Rsc[Key_1]>[key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; }>) => Effect<A_2, E_2, R2>;
113
+ handler: (req: Rsc[Key_1]["Request"], ctx: Rsc[Key_1]["Context"]) => Effect<A_2, E_2, R2>;
115
114
  } : never : never;
116
115
  }; };
117
116
  matchAll: <T extends {
118
117
  [key: string]: HttpRouter.HttpRouter<any, any>;
119
- }>(handlers: T) => HttpRouter.HttpRouter<[T[keyof T]] extends [HttpRouter.HttpRouter<infer R, any>] ? R : never, [T[keyof T]] extends [HttpRouter.HttpRouter<any, infer E_3>] ? E_3 : never>;
118
+ }>(handlers: T) => HttpRouter.HttpRouter<[T[keyof T]] extends [HttpRouter.HttpRouter<any, infer E_3>] ? E_3 : never, [T[keyof T]] extends [HttpRouter.HttpRouter<infer R, any>] ? R : never>;
120
119
  };
121
120
  //# sourceMappingURL=router.d.ts.map
@@ -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":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAG7E,OAAO,KAAK,EAAW,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAGV,UAAU,EACV,IAAI,EAOL,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EAAE,MAAM,EAAa,CAAC,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAGxC,MAAM,MAAM,UAAU,CACpB,CAAC,EACD,CAAC,EAGD,EAAE,GAAG,KAAK,IAET,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAE7E,MAAM,WAAW,IAAI,CAAC,GAAG,SAAS,MAAM;IACtC,GAAG,EAAE,GAAG,CAAA;CACT;AAKD,eAAO,MAAM,UAAU,GAAI,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,oBACjE,GAAG;eAiMH,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAC1C,GAAG;sBAkIN,SAAS,SAAS,GAEf,CAAS;sBAjIkC,GAAG;;sBAA4C,GAAG;+BAiIpF;oBA/BL,EAAE;;;;oBAAF,EAAE;;;YAgCR,eAEY,SAAS,KAoEmC,UAAU,CAAC,UAAU;sBAxMhC,GAAG;;sBAA4C,GAAG;;sBAAlD,GAAG;;sBAA4C,GAAG;qCAsL7F,CAAC,4JA1WH,GAAG,iLAAH,GAAG;sBAoL0C,GAAG;;sBAA4C,GAAG;kEAoMvE,CAAC;sBApMoB,GAAG;;sBAA4C,GAAG;;sBAAlD,GAAG;;sBAA4C,GAAG;qCAsL7F,CAAC,4JA1WH,GAAG,iLAAH,GAAG;sBAoL0C,GAAG;;sBAA4C,GAAG;uEA+LlE,CAAC,eAY9B;WAsDM,GAAG;kBAjQoC,GAAG;;kBAA4C,GAAG;;SAmC/F,EAAE,EAAE,CAAC,EAAE,CAAC;oBA+DF,EAAE;;;;oBAAF,EAAE;;;;SAjDR,EAAE,6EAjPF,GAAG;oBAkSG,EAAE;;;;oBAAF,EAAE;;;;SA/BP,GAAG,SAAS,MAAM,CAChB,MAAM,EACN,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC/B,EACD,EAAE,0KAvQH,GAAG;oBAkSG,EAAE;;;;oBAAF,EAAE;;;;;kBAlGqC,GAAG;;kBAA4C,GAAG;;eAmC3F,CAAC,EAAE,CAAC;oBA+DF,EAAE;;;;oBAAF,EAAE;;;;4FAlSR,GAAG;oBAkSG,EAAE;;;;oBAAF,EAAE;;;;SA/BP,GAAG,SAAS,MAAM,CAChB,MAAM,EACN,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC/B,EACD,EAAE,4KAvQH,GAAG;oBAkSG,EAAE;;;;oBAAF,EAAE;;;;;eAuLK,CAAC;;iBAAwC,CAAC,KAe9C,UAAU,CAAC,UAAU,+HATH,CAAC,oBAY9B;CA0BJ,CAAA"}
package/dist/router.js CHANGED
@@ -16,7 +16,7 @@ export const makeRouter = (handleRequestEnv /* Middleware */) => {
16
16
  // const rdesc = yield* RouteDescriptors.flatMap((_) => _.get)
17
17
  const handler = makeRequestHandler(requestHandler, // one argument if no middleware, 2 if has middleware. TODO: clean this shit up
18
18
  errorHandler, middlewareLayer);
19
- const route = HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler);
19
+ const route = HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler.pipe(Effect.withSpan("Request." + requestHandler.name, { captureStackTrace: () => requestHandler.stack })));
20
20
  // TODO
21
21
  // rdesc.push(makeRouteDescriptor(
22
22
  // requestHandler.Request.path,
@@ -30,6 +30,7 @@ export const makeRouter = (handleRequestEnv /* Middleware */) => {
30
30
  const Response = S.REST.extractResponse(_);
31
31
  return (h) => ({
32
32
  adaptResponse,
33
+ stack: h.stack,
33
34
  h: h.handler,
34
35
  name,
35
36
  Request,
@@ -85,34 +86,46 @@ export const makeRouter = (handleRequestEnv /* Middleware */) => {
85
86
  controllers,
86
87
  ...typedKeysOf(filtered).reduce((prev, cur) => {
87
88
  ;
88
- prev[cur] = (svcOrFnOrEffect, fnOrNone) => Effect.isEffect(svcOrFnOrEffect)
89
- ? class {
90
- static _tag = "d";
91
- static handler = () => svcOrFnOrEffect;
92
- }
93
- : typeof svcOrFnOrEffect === "function"
89
+ prev[cur] = (svcOrFnOrEffect, fnOrNone) => {
90
+ const stack = new Error().stack?.split("\n").slice(2).join("\n");
91
+ return Effect.isEffect(svcOrFnOrEffect)
94
92
  ? class {
93
+ static stack = stack;
95
94
  static _tag = "d";
96
- static handler = (req, ctx) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].Response });
95
+ static handler = () => svcOrFnOrEffect;
97
96
  }
98
- : class {
99
- static _tag = "d";
100
- static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
101
- };
102
- prev[cur + "Raw"] = (svcOrFnOrEffect, fnOrNone) => Effect.isEffect(svcOrFnOrEffect)
103
- ? class {
104
- static _tag = "raw";
105
- static handler = () => svcOrFnOrEffect;
106
- }
107
- : typeof svcOrFnOrEffect === "function"
97
+ : typeof svcOrFnOrEffect === "function"
98
+ ? class {
99
+ static stack = stack;
100
+ static _tag = "d";
101
+ static handler = (req, ctx) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].Response });
102
+ }
103
+ : class {
104
+ static stack = stack;
105
+ static _tag = "d";
106
+ static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
107
+ };
108
+ };
109
+ prev[cur + "Raw"] = (svcOrFnOrEffect, fnOrNone) => {
110
+ const stack = new Error().stack?.split("\n").slice(2).join("\n");
111
+ return Effect.isEffect(svcOrFnOrEffect)
108
112
  ? class {
113
+ static stack = stack;
109
114
  static _tag = "raw";
110
- static handler = (req, ctx) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].Response });
115
+ static handler = () => svcOrFnOrEffect;
111
116
  }
112
- : class {
113
- static _tag = "raw";
114
- static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
115
- };
117
+ : typeof svcOrFnOrEffect === "function"
118
+ ? class {
119
+ static stack = stack;
120
+ static _tag = "raw";
121
+ static handler = (req, ctx) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].Response });
122
+ }
123
+ : class {
124
+ static stack = stack;
125
+ static _tag = "raw";
126
+ static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
127
+ };
128
+ };
116
129
  return prev;
117
130
  }, {})
118
131
  };
@@ -133,4 +146,4 @@ export const makeRouter = (handleRequestEnv /* Middleware */) => {
133
146
  }
134
147
  return { matchFor, matchAll };
135
148
  };
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBY3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRXZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFHNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBZ0J4QyxxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLGdCQUFxQixDQUFDLGdCQUFnQixFQUN0QyxFQUFFO0lBb0JGLFNBQVMsS0FBSyxDQW9CWixjQWVDLEVBQ0QsWUFRQyxFQUNELFVBa0JDO1FBRUQsSUFBSSxlQUFlLEdBQTJDLFNBQVMsQ0FBQTtRQUN2RSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUNoRSxjQUFjLEdBQUcsT0FBYyxDQUFBLENBQUMsT0FBTztZQUN2QyxlQUFlLEdBQUcsZ0JBQWdCLENBQUE7UUFDcEMsQ0FBQztRQUNELDhEQUE4RDtRQUU5RCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FrQmhDLGNBQXFCLEVBQUUsK0VBQStFO1FBQ3RHLFlBQVksRUFDWixlQUFlLENBQ2hCLENBQUE7UUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsU0FBUyxDQUNoQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFDN0IsY0FBYyxDQUFDLE9B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
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBY3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRXZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFHNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBa0J4QyxxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLGdCQUFxQixDQUFDLGdCQUFnQixFQUN0QyxFQUFFO0lBcUJGLFNBQVMsS0FBSyxDQW9CWixjQWVDLEVBQ0QsWUFRQyxFQUNELFVBa0JDO1FBRUQsSUFBSSxlQUFlLEdBQTJDLFNBQVMsQ0FBQTtRQUN2RSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUNoRSxjQUFjLEdBQUcsT0FBYyxDQUFBLENBQUMsT0FBTztZQUN2QyxlQUFlLEdBQUcsZ0JBQWdCLENBQUE7UUFDcEMsQ0FBQztRQUNELDhEQUE4RDtRQUU5RCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FrQmhDLGNBQXFCLEVBQUUsK0VBQStFO1FBQ3RHLFlBQVksRUFDWixlQUFlLENBQ2hCLENBQUE7UUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsU0FBUyxDQUNoQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFDN0IsY0FBYyxDQUFDLE9B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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "1.16.0",
3
+ "version": "1.16.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -18,10 +18,10 @@
18
18
  "proper-lockfile": "^4.1.2",
19
19
  "pure-rand": "6.1.0",
20
20
  "redlock": "^4.2.0",
21
- "@effect-app/core": "1.9.0",
22
- "effect-app": "1.15.0",
21
+ "@effect-app/infra-adapters": "1.10.1",
23
22
  "@effect-app/schema": "1.11.0",
24
- "@effect-app/infra-adapters": "1.10.1"
23
+ "@effect-app/core": "1.9.0",
24
+ "effect-app": "1.15.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@babel/cli": "^7.25.6",
package/src/router.ts CHANGED
@@ -17,7 +17,7 @@ import type {
17
17
  ResFromSchema
18
18
  } from "@effect-app/infra/api/routing"
19
19
  import { defaultErrorHandler, makeRequestHandler } from "@effect-app/infra/api/routing"
20
- import type { Layer, Scope, Types } from "effect-app"
20
+ import type { Layer, Scope } from "effect-app"
21
21
  import { Effect, Predicate, S } from "effect-app"
22
22
  import type { SupportedErrors, ValidationError } from "effect-app/client/errors"
23
23
  import { HttpRouter } from "effect-app/http"
@@ -39,6 +39,8 @@ export interface Hint<Err extends string> {
39
39
  Err: Err
40
40
  }
41
41
 
42
+ type AnyRequestModule = { Request: any; Context: any; Response: any; failure: any }
43
+
42
44
  // TODO: support FLIP
43
45
  export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, boolean]>>(
44
46
  handleRequestEnv: any /* Middleware */
@@ -62,6 +64,7 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
62
64
  CTXMap[key][1]
63
65
  }
64
66
  >
67
+
65
68
  function match<
66
69
  R,
67
70
  M,
@@ -161,7 +164,9 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
161
164
  const route = HttpRouter.makeRoute(
162
165
  requestHandler.Request.method,
163
166
  requestHandler.Request.path,
164
- handler
167
+ handler.pipe(
168
+ Effect.withSpan("Request." + requestHandler.name, { captureStackTrace: () => (requestHandler as any).stack })
169
+ )
165
170
  )
166
171
  // TODO
167
172
  // rdesc.push(makeRouteDescriptor(
@@ -194,9 +199,10 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
194
199
  type Res = S.Schema.Type<Extr<ResSchema>>
195
200
 
196
201
  return <R, E>(
197
- h: { _tag: "raw" | "d"; handler: (r: Req) => Effect<Res, E, R> }
202
+ h: { _tag: "raw" | "d"; handler: (r: Req) => Effect<Res, E, R>; stack?: string }
198
203
  ) => ({
199
204
  adaptResponse,
205
+ stack: h.stack,
200
206
  h: h.handler,
201
207
  name,
202
208
  Request,
@@ -217,6 +223,15 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
217
223
  >)
218
224
  }
219
225
 
226
+ type RouteMatch<
227
+ R,
228
+ M,
229
+ // TODO: specific failure
230
+ // Err extends SupportedErrors | S.ParseResult.ParseError,
231
+ PR = never
232
+ > // RErr = never,
233
+ = HttpRouter.Route<never, Exclude<Exclude<R, EnforceNonEmptyRecord<M>>, PR>>
234
+
220
235
  type HandleVoid<Expected, Actual, Result> = Expected extends void
221
236
  ? Actual extends void ? Result : Hint<"You're returning non void for a void Response, please fix">
222
237
  : Result
@@ -256,7 +271,7 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
256
271
  ) => Effect<A, E, R2>
257
272
  ) =>
258
273
  (req: any, ctx: any) =>
259
- Effect.andThen(allLower(services), (svc2) => f(req, { ...ctx, ...svc2 as any, Response: rsc[action].Response }))
274
+ Effect.andThen(allLower(services), (svc2) => f(req, { ...ctx, ...svc2, Response: rsc[action].Response }))
260
275
  }
261
276
 
262
277
  type MatchWithServicesNew<RT extends "raw" | "d", Key extends keyof Rsc> = {
@@ -266,14 +281,14 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
266
281
  S.Schema.Type<REST.GetResponse<Rsc[Key]>>,
267
282
  A,
268
283
  Handler<
269
- ReqFromSchema<REST.GetRequest<Rsc[Key]>>,
270
- Types.Simplify<GetCTX<REST.GetRequest<Rsc[Key]>>>,
284
+ Rsc[Key],
271
285
  RT,
272
286
  A,
273
287
  E,
274
288
  R2
275
289
  >
276
290
  >
291
+
277
292
  <R2, E, A>(
278
293
  f: (
279
294
  req: ReqFromSchema<REST.GetRequest<Rsc[Key]>>,
@@ -283,8 +298,7 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
283
298
  S.Schema.Type<REST.GetResponse<Rsc[Key]>>,
284
299
  A,
285
300
  Handler<
286
- ReqFromSchema<REST.GetRequest<Rsc[Key]>>,
287
- Types.Simplify<GetCTX<REST.GetRequest<Rsc[Key]>>>,
301
+ Rsc[Key],
288
302
  RT,
289
303
  A,
290
304
  E,
@@ -313,8 +327,7 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
313
327
  S.Schema.Type<REST.GetResponse<Rsc[Key]>>,
314
328
  A,
315
329
  Handler<
316
- ReqFromSchema<REST.GetRequest<Rsc[Key]>>,
317
- Types.Simplify<GetCTX<REST.GetRequest<Rsc[Key]>>>,
330
+ Rsc[Key],
318
331
  RT,
319
332
  A,
320
333
  E,
@@ -324,12 +337,12 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
324
337
  }
325
338
 
326
339
  type Keys = keyof Filtered
327
- type Handler<Req, Context, RT extends "raw" | "d", A, E, R> = {
340
+ type Handler<Action extends AnyRequestModule, RT extends "raw" | "d", A, E, R> = {
328
341
  new(): {}
329
342
  _tag: RT
330
343
  handler: (
331
- req: Req,
332
- ctx: Context
344
+ req: Action["Request"],
345
+ ctx: Action["Context"]
333
346
  ) => Effect<
334
347
  A,
335
348
  E,
@@ -337,21 +350,19 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
337
350
  >
338
351
  }
339
352
 
340
- type AHandler<Action extends Record<string, any>> =
353
+ type AHandler<Action extends AnyRequestModule> =
341
354
  | Handler<
342
- ReqFromSchema<REST.GetRequest<Action>>,
343
- GetCTX<REST.GetRequest<Action>>,
355
+ Action,
344
356
  "raw",
345
357
  ResRawFromSchema<REST.GetResponse<Action>>,
346
- SupportedErrors | S.ParseResult.ParseError | S.Schema.Type<REST.GetRequest<Action>["failure"]>,
358
+ SupportedErrors | S.ParseResult.ParseError | S.Schema.Type<Action["failure"]>,
347
359
  any
348
360
  >
349
361
  | Handler<
350
- ReqFromSchema<REST.GetRequest<Action>>,
351
- GetCTX<REST.GetRequest<Action>>,
362
+ Action,
352
363
  "d",
353
364
  ResFromSchema<REST.GetResponse<Action>>,
354
- SupportedErrors | S.ParseResult.ParseError | S.Schema.Type<REST.GetRequest<Action>["failure"]>,
365
+ SupportedErrors | S.ParseResult.ParseError | S.Schema.Type<Action["failure"]>,
355
366
  any
356
367
  >
357
368
 
@@ -441,36 +452,46 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
441
452
  controllers,
442
453
  ...typedKeysOf(filtered).reduce(
443
454
  (prev, cur) => {
444
- ;(prev as any)[cur] = (svcOrFnOrEffect: any, fnOrNone: any) =>
445
- Effect.isEffect(svcOrFnOrEffect)
455
+ ;(prev as any)[cur] = (svcOrFnOrEffect: any, fnOrNone: any) => {
456
+ const stack = new Error().stack?.split("\n").slice(2).join("\n")
457
+ return Effect.isEffect(svcOrFnOrEffect)
446
458
  ? class {
459
+ static stack = stack
447
460
  static _tag = "d"
448
461
  static handler = () => svcOrFnOrEffect
449
462
  }
450
463
  : typeof svcOrFnOrEffect === "function"
451
464
  ? class {
465
+ static stack = stack
452
466
  static _tag = "d"
453
467
  static handler = (req: any, ctx: any) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].Response })
454
468
  }
455
469
  : class {
470
+ static stack = stack
456
471
  static _tag = "d"
457
472
  static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone)
458
473
  }
459
- ;(prev as any)[(cur as any) + "Raw"] = (svcOrFnOrEffect: any, fnOrNone: any) =>
460
- Effect.isEffect(svcOrFnOrEffect)
474
+ }
475
+ ;(prev as any)[(cur as any) + "Raw"] = (svcOrFnOrEffect: any, fnOrNone: any) => {
476
+ const stack = new Error().stack?.split("\n").slice(2).join("\n")
477
+ return Effect.isEffect(svcOrFnOrEffect)
461
478
  ? class {
479
+ static stack = stack
462
480
  static _tag = "raw"
463
481
  static handler = () => svcOrFnOrEffect
464
482
  }
465
483
  : typeof svcOrFnOrEffect === "function"
466
484
  ? class {
485
+ static stack = stack
467
486
  static _tag = "raw"
468
487
  static handler = (req: any, ctx: any) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].Response })
469
488
  }
470
489
  : class {
490
+ static stack = stack
471
491
  static _tag = "raw"
472
492
  static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone)
473
493
  }
494
+ }
474
495
  return prev
475
496
  },
476
497
  {} as
@@ -516,8 +537,8 @@ export const makeRouter = <CTX, CTXMap extends Record<string, [string, any, bool
516
537
  : never
517
538
 
518
539
  return r as HttpRouter.HttpRouter<
519
- _RRouter<typeof handlers[keyof typeof handlers]>,
520
- _ERouter<typeof handlers[keyof typeof handlers]>
540
+ _ERouter<typeof handlers[keyof typeof handlers]>,
541
+ _RRouter<typeof handlers[keyof typeof handlers]>
521
542
  >
522
543
  }
523
544