@effect-app/infra 2.1.2 → 2.3.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 CHANGED
@@ -1,5 +1,18 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 2.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d907123: add middleware dependencies []
8
+
9
+ ## 2.2.0
10
+
11
+ ### Minor Changes
12
+
13
+ - c0fd2c2: rename routing3 to routing
14
+ - 2e24efe: make middleware execute a constructor
15
+
3
16
  ## 2.1.2
4
17
 
5
18
  ### Patch Changes
@@ -5,16 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.makeRpc = void 0;
7
7
  var _rpc = require("@effect/rpc");
8
+ var _effectApp = require("effect-app");
8
9
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
9
10
  /* eslint-disable @typescript-eslint/no-unsafe-return */
10
11
  /* eslint-disable @typescript-eslint/no-explicit-any */
11
12
 
12
- const makeRpc = middleware => {
13
- return {
14
- effect: (schema, handler, moduleName) => {
15
- return _rpc.Rpc.effect(schema, middleware.execute(schema, handler, moduleName));
16
- }
17
- };
18
- };
13
+ const makeRpc = middleware => middleware.execute.pipe(_effectApp.Effect.map(execute => ({
14
+ effect: (schema, handler, moduleName) => {
15
+ return _rpc.Rpc.effect(schema, execute(schema, handler, moduleName));
16
+ }
17
+ })));
19
18
  exports.makeRpc = makeRpc;
20
19
  //# sourceMappingURL=DynamicMiddleware.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicMiddleware.cjs","names":["_rpc","require","makeRpc","middleware","effect","schema","handler","moduleName","Rpc","execute","exports"],"sources":["../../../src/api/routing/DynamicMiddleware.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,IAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AA8BO,MAAMC,OAAO,GAClBC,UAAuC,IACrC;EACF,OAAO;IACLC,MAAM,EAAEA,CACNC,MAAqC,EACrCC,OAMC,EACDC,UAAmB,KACjB;MACF,OAAOC,QAAG,CAACJ,MAAM,CACfC,MAAM,EACNF,UAAU,CAACM,OAAO,CAACJ,MAAM,EAAEC,OAAO,EAAEC,UAAU,CAAC,CAChD;IACH;GACD;AACH,CAAC;AAAAG,OAAA,CAAAR,OAAA,GAAAA,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"DynamicMiddleware.cjs","names":["_rpc","require","_effectApp","makeRpc","middleware","execute","pipe","Effect","map","effect","schema","handler","moduleName","Rpc","exports"],"sources":["../../../src/api/routing/DynamicMiddleware.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,IAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AALA;AACA;AACA;;AAyCO,MAAME,OAAO,GAMlBC,UAAkD,IAElDA,UAAU,CAACC,OAAO,CAACC,IAAI,CAACC,iBAAM,CAACC,GAAG,CAAEH,OAAO,KAAM;EAC/CI,MAAM,EAAEA,CACNC,MAAqC,EACrCC,OAMC,EACDC,UAAmB,KACjB;IACF,OAAOC,QAAG,CAACJ,MAAM,CACfC,MAAM,EACNL,OAAO,CAACK,MAAM,EAAEC,OAAO,EAAEC,UAAU,CAAC,CACrC;EACH;CACD,CAAC,CAAC,CAAC;AAAAE,OAAA,CAAAX,OAAA,GAAAA,OAAA","ignoreList":[]}
@@ -3,10 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.toHttpApp = exports.makeRouter = void 0;
6
+ exports.toHttpApp = exports.makeRouter = exports.makeMiddleware = exports.RouterSymbol = void 0;
7
7
  var _rpc = require("@effect/rpc");
8
8
  var _effectApp = require("effect-app");
9
- var _Effect = require("effect-app/Effect");
10
9
  var _http = require("effect-app/http");
11
10
  var _utils = require("effect-app/utils");
12
11
  var _errorReporter = require("../errorReporter.cjs");
@@ -44,8 +43,15 @@ const toHttpApp = (self, options) => {
44
43
  });
45
44
  };
46
45
  exports.toHttpApp = toHttpApp;
46
+ const RouterSymbol = exports.RouterSymbol = Symbol();
47
+ // export interface RouteMatcher<
48
+ // Filtered extends Record<string, any>,
49
+ // CTXMap extends Record<string, any>,
50
+ // Rsc extends Filtered
51
+ // > extends RouteMatcherInt<Filtered, CTXMap, Rsc> {}
52
+ const makeMiddleware = content => content;
53
+ exports.makeMiddleware = makeMiddleware;
47
54
  const makeRouter = (middleware, devMode) => {
48
- const rpc = (0, _DynamicMiddleware.makeRpc)(middleware);
49
55
  function matchFor(rsc) {
50
56
  const meta = rsc.meta;
51
57
  const filtered = (0, _utils.typedKeysOf)(rsc).reduce((acc, cur) => {
@@ -54,126 +60,125 @@ const makeRouter = (middleware, devMode) => {
54
60
  }
55
61
  return acc;
56
62
  }, {});
57
- const matchWithServices = action => {
58
- return (services, f) => req => _effectApp.Effect.andThen(_effectApp.Effect.all({
59
- svc: (0, _Effect.allLower)(services),
60
- ctx: middleware.makeContext
61
- }), ({
62
- ctx,
63
- svc
64
- }) => f(req, {
65
- ...svc,
66
- ...ctx,
67
- Response: rsc[action].success
68
- }));
69
- };
70
- const controllers = controllers => {
71
- const mapped = (0, _utils.typedKeysOf)(filtered).reduce((acc, cur) => {
72
- const handler = controllers[cur];
73
- const req = rsc[cur];
74
- acc[cur] = rpc.effect(handler._tag === "raw" ? class extends req {
75
- static success = _effectApp.S.encodedSchema(req.success);
76
- get [_effectApp.Schema.symbolSerializable]() {
77
- return this.constructor;
78
- }
79
- get [_effectApp.Schema.symbolWithResult]() {
80
- return {
81
- failure: req.failure,
82
- success: _effectApp.S.encodedSchema(req.success)
83
- };
84
- }
85
- } : req, req => _effectApp.Effect.annotateCurrentSpan("requestInput", Object.entries(req).reduce((prev, [key, value]) => {
86
- prev[key] = key === "password" ? "<redacted>" : typeof value === "string" || typeof value === "number" || typeof value === "boolean" ? typeof value === "string" && value.length > 256 ? value.substring(0, 253) + "..." : value : Array.isArray(value) ? `Array[${value.length}]` : value === null || value === undefined ? `${value}` : typeof value === "object" && value ? `Object[${Object.keys(value).length}]` : typeof value;
87
- return prev;
88
- }, {})).pipe(
89
- // can't use andThen due to some being a function and effect
90
- _effectApp.Effect.zipRight(handler.handler(req)), _effectApp.Effect.tapErrorCause(cause => _effectApp.Cause.isFailure(cause) ? logRequestError(cause) : _effectApp.Effect.void), _effectApp.Effect.tapDefect(cause => _effectApp.Effect.all([reportRequestError(cause, {
91
- action: `${meta.moduleName}.${req._tag}`
92
- }), _rpc.Rpc.currentHeaders.pipe(_effectApp.Effect.andThen(headers => {
93
- return _logger.InfraLogger.logError("Finished request", cause).pipe(_effectApp.Effect.annotateLogs({
94
- action: `${meta.moduleName}.${req._tag}`,
95
- req: (0, _utils.pretty)(req),
96
- headers: (0, _utils.pretty)(headers)
97
- // resHeaders: pretty(
98
- // Object
99
- // .entries(headers)
100
- // .reduce((prev, [key, value]) => {
101
- // prev[key] = value && typeof value === "string" ? snipString(value) : value
102
- // return prev
103
- // }, {} as Record<string, any>)
104
- // )
105
- }));
106
- }))])), devMode ? _ => _ : _effectApp.Effect.catchAllDefect(() => _effectApp.Effect.die("Internal Server Error")), _effectApp.Effect.withSpan("Request." + meta.moduleName + "." + req._tag, {
107
- captureStackTrace: () => handler.stack
108
- })), meta.moduleName); // TODO
109
- return acc;
110
- }, {});
111
- const router = _rpc.RpcRouter.make(...Object.values(mapped));
112
- return _http.HttpRouter.empty.pipe(_http.HttpRouter.all("/rpc/" + rsc.meta.moduleName, toHttpApp(router, {
113
- spanPrefix: rsc.meta.moduleName + "."
114
- }),
115
- // TODO: not queries.
116
- {
117
- uninterruptible: true
118
- }));
119
- };
120
- const r = {
121
- controllers,
122
- ...(0, _utils.typedKeysOf)(filtered).reduce((prev, cur) => {
123
- ;
124
- prev[cur] = (svcOrFnOrEffect, fnOrNone) => {
125
- const stack = new Error().stack?.split("\n").slice(2).join("\n");
126
- return _effectApp.Effect.isEffect(svcOrFnOrEffect) ? class {
127
- static stack = stack;
128
- static _tag = "d";
129
- static handler = () => svcOrFnOrEffect;
130
- } : typeof svcOrFnOrEffect === "function" ? class {
131
- static stack = stack;
132
- static _tag = "d";
133
- static handler = req => _effectApp.Effect.andThen(_effectApp.Effect.all({
134
- ctx: middleware.makeContext
135
- }), ({
136
- ctx
137
- }) => svcOrFnOrEffect(req, {
138
- ...ctx,
139
- Response: rsc[cur].success
140
- }));
141
- } : class {
142
- static stack = stack;
143
- static _tag = "d";
144
- static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
145
- };
146
- } // "Raw" variations are for when you don't want to decode just to encode it again on the response
147
- ;
148
- prev[cur + "Raw"] = (svcOrFnOrEffect, fnOrNone) => {
63
+ const items = (0, _utils.typedKeysOf)(filtered).reduce((prev, cur) => {
64
+ ;
65
+ prev[cur] = Object.assign(fnOrEffect => {
66
+ const stack = new Error().stack?.split("\n").slice(2).join("\n");
67
+ return _effectApp.Effect.isEffect(fnOrEffect) ? class {
68
+ static stack = stack;
69
+ static _tag = "d";
70
+ static handler = () => fnOrEffect;
71
+ } : class {
72
+ static stack = stack;
73
+ static _tag = "d";
74
+ static handler = fnOrEffect;
75
+ };
76
+ }, {
77
+ success: rsc[cur].success,
78
+ successRaw: _effectApp.S.encodedSchema(rsc[cur].success),
79
+ failure: rsc[cur].failure,
80
+ raw:
81
+ // "Raw" variations are for when you don't want to decode just to encode it again on the response
82
+ // e.g for direct projection from DB
83
+ // but more importantly, to skip Effectful decoders, like to resolve relationships from the database or remote client.
84
+ fnOrEffect => {
149
85
  const stack = new Error().stack?.split("\n").slice(2).join("\n");
150
- return _effectApp.Effect.isEffect(svcOrFnOrEffect) ? class {
86
+ return _effectApp.Effect.isEffect(fnOrEffect) ? class {
151
87
  static stack = stack;
152
88
  static _tag = "raw";
153
- static handler = () => svcOrFnOrEffect;
154
- } : typeof svcOrFnOrEffect === "function" ? class {
89
+ static handler = () => fnOrEffect;
90
+ } : class {
155
91
  static stack = stack;
156
92
  static _tag = "raw";
157
- static handler = (req, ctx) => svcOrFnOrEffect(req, {
93
+ static handler = (req, ctx) => fnOrEffect(req, {
158
94
  ...ctx,
159
95
  Response: rsc[cur].success
160
96
  });
161
- } : class {
162
- static stack = stack;
163
- static _tag = "raw";
164
- static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
165
97
  };
166
- };
167
- return prev;
168
- }, {})
98
+ }
99
+ });
100
+ return prev;
101
+ }, {});
102
+ const effect = (layers, make) => {
103
+ const r = class Router extends _http.HttpRouter.Tag(`${meta.moduleName}Router`)() {};
104
+ const layer = r.use(router => _effectApp.Effect.gen(function* () {
105
+ const controllers = yield* make(items);
106
+ const rpc = yield* (0, _DynamicMiddleware.makeRpc)(middleware);
107
+ // return make.pipe(Effect.map((c) => controllers(c, layers)))
108
+ const mapped = (0, _utils.typedKeysOf)(filtered).reduce((acc, cur) => {
109
+ const handler = controllers[cur];
110
+ const req = rsc[cur];
111
+ acc[cur] = rpc.effect(handler._tag === "raw" ? class extends req {
112
+ static success = _effectApp.S.encodedSchema(req.success);
113
+ get [_effectApp.Schema.symbolSerializable]() {
114
+ return this.constructor;
115
+ }
116
+ get [_effectApp.Schema.symbolWithResult]() {
117
+ return {
118
+ failure: req.failure,
119
+ success: _effectApp.S.encodedSchema(req.success)
120
+ };
121
+ }
122
+ } : req, req => _effectApp.Effect.annotateCurrentSpan("requestInput", Object.entries(req).reduce((prev, [key, value]) => {
123
+ prev[key] = key === "password" ? "<redacted>" : typeof value === "string" || typeof value === "number" || typeof value === "boolean" ? typeof value === "string" && value.length > 256 ? value.substring(0, 253) + "..." : value : Array.isArray(value) ? `Array[${value.length}]` : value === null || value === undefined ? `${value}` : typeof value === "object" && value ? `Object[${Object.keys(value).length}]` : typeof value;
124
+ return prev;
125
+ }, {})).pipe(
126
+ // can't use andThen due to some being a function and effect
127
+ _effectApp.Effect.zipRight(handler.handler(req)), _effectApp.Effect.tapErrorCause(cause => _effectApp.Cause.isFailure(cause) ? logRequestError(cause) : _effectApp.Effect.void), _effectApp.Effect.tapDefect(cause => _effectApp.Effect.all([reportRequestError(cause, {
128
+ action: `${meta.moduleName}.${req._tag}`
129
+ }), _rpc.Rpc.currentHeaders.pipe(_effectApp.Effect.andThen(headers => {
130
+ return _logger.InfraLogger.logError("Finished request", cause).pipe(_effectApp.Effect.annotateLogs({
131
+ action: `${meta.moduleName}.${req._tag}`,
132
+ req: (0, _utils.pretty)(req),
133
+ headers: (0, _utils.pretty)(headers)
134
+ // resHeaders: pretty(
135
+ // Object
136
+ // .entries(headers)
137
+ // .reduce((prev, [key, value]) => {
138
+ // prev[key] = value && typeof value === "string" ? snipString(value) : value
139
+ // return prev
140
+ // }, {} as Record<string, any>)
141
+ // )
142
+ }));
143
+ }))])), devMode ? _ => _ : _effectApp.Effect.catchAllDefect(() => _effectApp.Effect.die("Internal Server Error")), _effectApp.Effect.withSpan("Request." + meta.moduleName + "." + req._tag, {
144
+ captureStackTrace: () => handler.stack
145
+ })), meta.moduleName); // TODO
146
+ return acc;
147
+ }, {});
148
+ const rpcRouter = _rpc.RpcRouter.make(...Object.values(mapped));
149
+ const httpApp = toHttpApp(rpcRouter, {
150
+ spanPrefix: rsc.meta.moduleName + "."
151
+ });
152
+ const services = (yield* _effectApp.Effect.context()).pipe(_effectApp.Context.omit(_effectApp.Scope.Scope), _effectApp.Context.omit(_effectApp.Tracer.ParentSpan));
153
+ yield* router.all("/", httpApp.pipe(_http.HttpMiddleware.make(_effectApp.Effect.provide(services))),
154
+ // TODO: not queries.
155
+ {
156
+ uninterruptible: true
157
+ });
158
+ }));
159
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
160
+ const routes = layer.pipe(_effectApp.Layer.provideMerge(r.Live), layers ? _effectApp.Layer.provide(layers) : _ => _, _effectApp.Layer.provide(middleware.dependencies));
161
+ // Effect.Effect<HttpRouter.HttpRouter<unknown, HttpRouter.HttpRouter.DefaultServices>, never, UserRouter>
162
+ return {
163
+ moduleName: meta.moduleName,
164
+ Router: r,
165
+ routes
166
+ };
169
167
  };
170
- return r;
168
+ return effect;
171
169
  }
172
- function matchAll(handlers) {
173
- const r = (0, _utils.typedKeysOf)(handlers).reduce((acc, cur) => {
174
- return _http.HttpRouter.concat(acc, handlers[cur]);
175
- }, _http.HttpRouter.empty);
176
- return r;
170
+ function matchAll(handlers, requestLayer) {
171
+ const routers = (0, _utils.typedValuesOf)(handlers);
172
+ const rootRouter = class extends _http.HttpRouter.Tag("RootRouter")() {};
173
+ const r = rootRouter.use(router => _effectApp.Effect.gen(function* () {
174
+ for (const route of routers) {
175
+ yield* router.mount("/rpc/" + route.moduleName, yield* route.Router.router.pipe(_effectApp.Effect.map(_http.HttpRouter.use((0, _effectApp.flow)(_effectApp.Effect.provide(requestLayer))))));
176
+ }
177
+ })).pipe(_effectApp.Layer.provide(routers.map(r => r.routes).flat()));
178
+ return {
179
+ layer: r,
180
+ Router: rootRouter
181
+ };
177
182
  }
178
183
  return {
179
184
  matchAll,
@@ -1 +1 @@
1
- {"version":3,"file":"routing.cjs","names":["_rpc","require","_effectApp","_Effect","_http","_utils","_errorReporter","_logger","_DynamicMiddleware","logRequestError","logError","reportRequestError","reportError","toHttpApp","self","options","handler","RpcRouter","toHandler","Effect","withFiberRuntime","fiber","context","getFiberRef","FiberRef","currentContext","request","Context","unsafeGet","HttpServerRequest","flatMap","json","_","pipe","Stream","provideContext","runCollect","map","Chunk","toReadonlyArray","andThen","status","r","flat","results","Array","isArray","some","_tag","cause","HttpServerResponse","orDie","tapDefect","exports","makeRouter","middleware","devMode","rpc","makeRpc","matchFor","rsc","meta","filtered","typedKeysOf","reduce","acc","cur","Predicate","isObject","matchWithServices","action","services","f","req","all","svc","allLower","ctx","makeContext","Response","success","controllers","mapped","effect","S","encodedSchema","Schema","symbolSerializable","constructor","symbolWithResult","failure","annotateCurrentSpan","Object","entries","prev","key","value","length","substring","undefined","keys","zipRight","tapErrorCause","Cause","isFailure","void","moduleName","Rpc","currentHeaders","headers","InfraLogger","annotateLogs","pretty","catchAllDefect","die","withSpan","captureStackTrace","stack","router","make","values","HttpRouter","empty","spanPrefix","uninterruptible","svcOrFnOrEffect","fnOrNone","Error","split","slice","join","isEffect","matchAll","handlers","concat"],"sources":["../../src/api/routing.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"routing.cjs","names":["_rpc","require","_effectApp","_http","_utils","_errorReporter","_logger","_DynamicMiddleware","logRequestError","logError","reportRequestError","reportError","toHttpApp","self","options","handler","RpcRouter","toHandler","Effect","withFiberRuntime","fiber","context","getFiberRef","FiberRef","currentContext","request","Context","unsafeGet","HttpServerRequest","flatMap","json","_","pipe","Stream","provideContext","runCollect","map","Chunk","toReadonlyArray","andThen","status","r","flat","results","Array","isArray","some","_tag","cause","HttpServerResponse","orDie","tapDefect","exports","RouterSymbol","Symbol","makeMiddleware","content","makeRouter","middleware","devMode","matchFor","rsc","meta","filtered","typedKeysOf","reduce","acc","cur","Predicate","isObject","items","prev","Object","assign","fnOrEffect","stack","Error","split","slice","join","isEffect","success","successRaw","S","encodedSchema","failure","raw","req","ctx","Response","effect","layers","make","Router","HttpRouter","Tag","moduleName","layer","use","router","gen","controllers","rpc","makeRpc","mapped","Schema","symbolSerializable","constructor","symbolWithResult","annotateCurrentSpan","entries","key","value","length","substring","undefined","keys","zipRight","tapErrorCause","Cause","isFailure","void","all","action","Rpc","currentHeaders","headers","InfraLogger","annotateLogs","pretty","catchAllDefect","die","withSpan","captureStackTrace","rpcRouter","values","httpApp","spanPrefix","services","omit","Scope","Tracer","ParentSpan","HttpMiddleware","provide","uninterruptible","routes","Layer","provideMerge","Live","dependencies","matchAll","handlers","requestLayer","routers","typedValuesOf","rootRouter","route","mount","flow"],"sources":["../../src/api/routing.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,19 +1,21 @@
1
1
  import { Rpc } from "@effect/rpc";
2
- import type { Effect, Request, S } from "effect-app";
2
+ import type { Layer, Request, S } from "effect-app";
3
+ import { Effect } from "effect-app";
3
4
  import type { GetEffectContext, RPCContextMap } from "effect-app/client/req";
4
5
  import type * as EffectRequest from "effect/Request";
5
- export interface Middleware<Context, CTXMap extends Record<string, RPCContextMap.Any>> {
6
+ export interface Middleware<Context, CTXMap extends Record<string, RPCContextMap.Any>, R, Layers extends Array<Layer.Layer.Any>> {
7
+ dependencies?: Layers;
6
8
  contextMap: CTXMap;
7
9
  context: Context;
8
- execute: <T extends {
10
+ execute: Effect<(<T extends {
9
11
  config?: {
10
12
  [K in keyof CTXMap]?: any;
11
13
  };
12
- }, Req extends S.TaggedRequest.All, R>(schema: T & S.Schema<Req, any, never>, handler: (request: Req) => Effect.Effect<EffectRequest.Request.Success<Req>, EffectRequest.Request.Error<Req>, R>, moduleName?: string) => (req: Req) => Effect.Effect<Request.Request.Success<Req>, Request.Request.Error<Req>, any>;
14
+ }, Req extends S.TaggedRequest.All, R>(schema: T & S.Schema<Req, any, never>, handler: (request: Req) => Effect.Effect<EffectRequest.Request.Success<Req>, EffectRequest.Request.Error<Req>, R>, moduleName?: string) => (req: Req) => Effect.Effect<Request.Request.Success<Req>, Request.Request.Error<Req>, any>), never, R>;
13
15
  }
14
- export declare const makeRpc: <Context, CTXMap extends Record<string, RPCContextMap.Any>>(middleware: Middleware<Context, CTXMap>) => {
16
+ export declare const makeRpc: <Context, CTXMap extends Record<string, RPCContextMap.Any>, R, Layers extends Array<Layer.Layer.Any>>(middleware: Middleware<Context, CTXMap, R, Layers>) => Effect.Effect<{
15
17
  effect: <T extends {
16
18
  config?: { [K in keyof CTXMap]?: any; };
17
- }, Req extends S.TaggedRequest.All, R>(schema: T & S.Schema<Req, any, never>, handler: (request: Req) => Effect.Effect<EffectRequest.Request.Success<Req>, EffectRequest.Request.Error<Req>, R>, moduleName?: string) => Rpc.Rpc<Req, Context | Exclude<R, GetEffectContext<CTXMap, T["config"]>>>;
18
- };
19
+ }, Req extends S.TaggedRequest.All, R_1>(schema: T & S.Schema<Req, any, never>, handler: (request: Req) => Effect.Effect<EffectRequest.Request.Success<Req>, EffectRequest.Request.Error<Req>, R_1>, moduleName?: string) => Rpc.Rpc<Req, Context | Exclude<R_1, GetEffectContext<CTXMap, T["config"]>>>;
20
+ }, never, R>;
19
21
  //# sourceMappingURL=DynamicMiddleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../src/api/routing/DynamicMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,KAAK,KAAK,aAAa,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,UAAU,CAAC,OAAO,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC;IACnF,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,CACP,CAAC,SAAS;QACR,MAAM,CAAC,EAAE;aAAG,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG;SAAE,CAAA;KACvC,EACD,GAAG,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,EAC/B,CAAC,EAED,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EACrC,OAAO,EAAE,CACP,OAAO,EAAE,GAAG,KACT,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAC3F,UAAU,CAAC,EAAE,MAAM,KAChB,CACH,GAAG,EAAE,GAAG,KACL,MAAM,CAAC,MAAM,CAChB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAC1B,GAAG,CACJ,CAAA;CACF;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,cACnE,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;aAG5B,CAAC,SAAS;QAAE,MAAM,CAAC,EAAE,GAAG,CAAiB,IAAZ,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,GAAE,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,UACvF,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,WAC5B,CACP,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,CAAC,CACF,eACY,MAAM;CAQxB,CAAA"}
1
+ {"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../src/api/routing/DynamicMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,KAAK,KAAK,aAAa,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,UAAU,CACzB,OAAO,EACP,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAChD,CAAC,EACD,MAAM,SAAS,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IAErC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,EACb,CACE,CAAC,SAAS;QACR,MAAM,CAAC,EAAE;aAAG,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG;SAAE,CAAA;KACvC,EACD,GAAG,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,EAC/B,CAAC,EAED,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EACrC,OAAO,EAAE,CACP,OAAO,EAAE,GAAG,KACT,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAC3F,UAAU,CAAC,EAAE,MAAM,KAChB,CACH,GAAG,EAAE,GAAG,KACL,MAAM,CAAC,MAAM,CAChB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAC1B,GAAG,CACJ,GACD,KAAK,EACL,CAAC,CACF,CAAA;CACF;AAED,eAAO,MAAM,OAAO,GAClB,OAAO,EACP,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAChD,CAAC,EACD,MAAM,SAAS,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAEzB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC;aAGvC,CAAC,SAAS;QAAE,MAAM,CAAC,EAAE,GAAG,CAAiB,IAAZ,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,GAAE,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,eACpF,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,WAC5B,CACP,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,GAAC,CACF,eACY,MAAM;YAOnB,CAAA"}
@@ -2,11 +2,10 @@
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-return */
3
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
4
  import { Rpc } from "@effect/rpc";
5
- export const makeRpc = (middleware) => {
6
- return {
7
- effect: (schema, handler, moduleName) => {
8
- return Rpc.effect(schema, middleware.execute(schema, handler, moduleName));
9
- }
10
- };
11
- };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvRHluYW1pY01pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQTZCakMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQ3JCLFVBQXVDLEVBQ3ZDLEVBQUU7SUFDRixPQUFPO1FBQ0wsTUFBTSxFQUFFLENBQ04sTUFBcUMsRUFDckMsT0FNQyxFQUNELFVBQW1CLEVBQ25CLEVBQUU7WUFDRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQ2YsTUFBTSxFQUNOLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FDaEQsQ0FBQTtRQUNILENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIn0=
5
+ import { Effect } from "effect-app";
6
+ export const makeRpc = (middleware) => middleware.execute.pipe(Effect.map((execute) => ({
7
+ effect: (schema, handler, moduleName) => {
8
+ return Rpc.effect(schema, execute(schema, handler, moduleName));
9
+ }
10
+ })));
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvRHluYW1pY01pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBc0NuQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FNckIsVUFBa0QsRUFDbEQsRUFBRSxDQUNGLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFLENBQ04sTUFBcUMsRUFDckMsT0FNQyxFQUNELFVBQW1CLEVBQ25CLEVBQUU7UUFDRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQ2YsTUFBTSxFQUNOLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUNyQyxDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQyxDQUFDLENBQUEifQ==
@@ -1,8 +1,8 @@
1
1
  import type * as HttpApp from "@effect/platform/HttpApp";
2
2
  import { Rpc, RpcRouter } from "@effect/rpc";
3
- import { Effect, S } from "effect-app";
3
+ import type { NonEmptyArray } from "effect-app";
4
+ import { Effect, Layer, S } from "effect-app";
4
5
  import type { GetEffectContext, RPCContextMap } from "effect-app/client/req";
5
- import { type EffectUnunified } from "effect-app/Effect";
6
6
  import type { HttpServerError } from "effect-app/http";
7
7
  import { HttpRouter } from "effect-app/http";
8
8
  import type { Middleware } from "./routing/DynamicMiddleware.js";
@@ -33,54 +33,72 @@ type AnyRequestModule = S.Schema.Any & {
33
33
  type GetSuccess<T> = T extends {
34
34
  success: S.Schema.Any;
35
35
  } ? T["success"] : typeof S.Void;
36
+ type GetSuccessShape<Action extends {
37
+ success?: S.Schema.Any;
38
+ }, RT extends "d" | "raw"> = RT extends "raw" ? S.Schema.Encoded<GetSuccess<Action>> : S.Schema.Type<GetSuccess<Action>>;
36
39
  type GetFailure<T extends {
37
40
  failure?: S.Schema.Any;
38
41
  }> = T["failure"] extends never ? typeof S.Never : T["failure"];
39
- export interface Handler<Action extends AnyRequestModule, RT extends "raw" | "d", A, E, R> {
42
+ type HandlerFull<Action extends AnyRequestModule, RT extends "raw" | "d", A, E, R> = {
40
43
  new (): {};
41
44
  _tag: RT;
42
45
  stack: string;
43
46
  handler: (req: S.Schema.Type<Action>) => Effect<A, E, R>;
47
+ };
48
+ export interface Handler<Action extends AnyRequestModule, RT extends "raw" | "d", R> extends HandlerFull<Action, RT, GetSuccessShape<Action, RT>, S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError, R> {
44
49
  }
45
- type AHandler<Action extends AnyRequestModule> = Handler<Action, "raw", S.Schema.Encoded<GetSuccess<Action>>, S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError, any> | Handler<Action, "d", S.Schema.Type<GetSuccess<Action>>, S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError, any>;
50
+ type AHandler<Action extends AnyRequestModule> = Handler<Action, any, any>;
46
51
  type Filter<T> = {
47
52
  [K in keyof T as T[K] extends S.Schema.All & {
48
53
  success: S.Schema.Any;
49
54
  failure: S.Schema.Any;
50
55
  } ? K : never]: T[K];
51
56
  };
52
- export interface ExtendedMiddleware<Context, CTXMap extends Record<string, RPCContextMap.Any>> extends Middleware<Context, CTXMap> {
53
- makeContext: Effect<{
54
- [K in keyof CTXMap as CTXMap[K][1] extends never ? never : CTXMap[K][0]]: CTXMap[K][1];
55
- }, never, never>;
57
+ export declare const RouterSymbol: unique symbol;
58
+ export interface RouterShape<Rsc> {
59
+ [RouterSymbol]: Rsc;
56
60
  }
57
- export declare const makeRouter: <Context, CTXMap extends Record<string, RPCContextMap.Any>>(middleware: ExtendedMiddleware<Context, CTXMap>, devMode: boolean) => {
61
+ type RPCRouteR<T extends Rpc.Rpc<any, any>> = [T] extends [
62
+ Rpc.Rpc<any, infer R>
63
+ ] ? R : never;
64
+ type Match<Rsc extends Record<string, any>, CTXMap extends Record<string, any>, RT extends "raw" | "d", Key extends keyof Rsc, Context> = {
65
+ <A extends GetSuccessShape<Rsc[Key], RT>, R2 = never, E = never>(f: Effect<A, E, R2>): HandleVoid<GetSuccessShape<Rsc[Key], RT>, A, Handler<Rsc[Key], RT, Exclude<Context | Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>, HttpRouter.HttpRouter.Provided>>>;
66
+ <A extends GetSuccessShape<Rsc[Key], RT>, R2 = never, E = never>(f: (req: S.Schema.Type<Rsc[Key]>) => Effect<A, E, R2>): HandleVoid<GetSuccessShape<Rsc[Key], RT>, A, Handler<Rsc[Key], RT, Exclude<Context | Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>, HttpRouter.HttpRouter.Provided>>>;
67
+ };
68
+ export type RouteMatcher<CTXMap extends Record<string, any>, Rsc extends Record<string, any>, Context> = {
69
+ [Key in keyof Filter<Rsc>]: Match<Rsc, CTXMap, "d", Key, Context> & {
70
+ success: Rsc[Key]["success"];
71
+ successRaw: S.SchemaClass<S.Schema.Encoded<Rsc[Key]["success"]>>;
72
+ failure: Rsc[Key]["failure"];
73
+ /**
74
+ * Requires the Encoded shape (e.g directly undecoded from DB, so that we don't do multiple Decode/Encode)
75
+ */
76
+ raw: Match<Rsc, CTXMap, "raw", Key, Context>;
77
+ };
78
+ };
79
+ export declare const makeMiddleware: <Context, CTXMap extends Record<string, RPCContextMap.Any>, RMW, Layers extends Array<Layer.Layer.Any>>(content: Middleware<Context, CTXMap, RMW, Layers>) => Middleware<Context, CTXMap, RMW, Layers>;
80
+ export declare const makeRouter: <Context, CTXMap extends Record<string, RPCContextMap.Any>, RMW, Layers extends Array<Layer.Layer.Any>>(middleware: Middleware<Context, CTXMap, RMW, Layers>, devMode: boolean) => {
58
81
  matchAll: <T extends {
59
- [key: string]: HttpRouter.HttpRouter<any, any>;
60
- }>(handlers: T) => HttpRouter.HttpRouter<[T[keyof T]] extends [HttpRouter.HttpRouter<infer E, any>] ? E : never, [T[keyof T]] extends [HttpRouter.HttpRouter<any, infer R>] ? R : never>;
82
+ [key: string]: {
83
+ Router: {
84
+ router: Effect<HttpRouter.HttpRouter<any, any>, any, any>;
85
+ };
86
+ routes: Layer.Layer<any, any, any>;
87
+ moduleName: string;
88
+ };
89
+ }, A, E, R>(handlers: T, requestLayer: Layer.Layer<A, E, R>) => {
90
+ layer: Layer.Layer<never, Layer.Layer.Error<(typeof handlers)[keyof typeof handlers]["routes"]>, Layer.Layer.Context<(typeof handlers)[keyof typeof handlers]["routes"]>>;
91
+ Router: HttpRouter.HttpRouter.TagClass<"RootRouter", "RootRouter", Effect.Effect.Success<T[keyof T]["Router"]["router"]> extends infer T_1 ? T_1 extends Effect.Effect.Success<T[keyof T]["Router"]["router"]> ? T_1 extends HttpRouter.HttpRouter<infer E_1, any> ? E_1 : never : never : never, R | Exclude<Effect.Effect.Success<T[keyof T]["Router"]["router"]> extends infer T_2 ? T_2 extends Effect.Effect.Success<T[keyof T]["Router"]["router"]> ? T_2 extends HttpRouter.HttpRouter<any, infer R_1> ? R_1 : never : never : never, A>>;
92
+ };
61
93
  matchFor: <const ModuleName extends string, const Rsc extends Record<string, any>>(rsc: Rsc & {
62
94
  meta: {
63
95
  moduleName: ModuleName;
64
96
  };
65
- }) => {
66
- controllers: <THandlers extends { [K in keyof Filter<Rsc>]: AHandler<Rsc[K]>; }>(controllers: THandlers) => HttpRouter.HttpRouter<HttpServerError.RequestError, Exclude<[(keyof Filter<Rsc> extends infer T extends keyof Filter<Rsc> ? { [K in T]: Rpc.Rpc<Rsc[K], _R<ReturnType<THandlers[K]["handler"]>>>; } : never)[keyof Filter<Rsc>]] extends [Rpc.Rpc<any, infer R>] ? R : never, HttpRouter.HttpRouter.Provided> | Exclude<S.SerializableWithResult.Context<[(keyof Filter<Rsc> extends infer T extends keyof Filter<Rsc> ? { [K in T]: Rpc.Rpc<Rsc[K], _R<ReturnType<THandlers[K]["handler"]>>>; } : never)[keyof Filter<Rsc>]] extends [Rpc.Rpc<infer Req extends S.TaggedRequest.All, any>] ? Req : never>, HttpRouter.HttpRouter.Provided>>;
67
- } & { [Key in keyof Filter<Rsc>]: {
68
- <R2, E, A>(f: Effect<A, E, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A, Handler<Rsc[Key], "d", A, E, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>>>;
69
- <R2, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key]>, ctx: { [key in keyof CTXMap as CTXMap[key][3] extends true ? never : key extends keyof Rsc[Key]["config"] ? Rsc[Key]["config"][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][3] extends true ? never : key_1 extends keyof Rsc[Key]["config"] ? Rsc[Key]["config"][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][3] extends false ? never : key_2 extends keyof Rsc[Key]["config"] ? Rsc[Key]["config"][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][3] extends false ? never : key_3 extends keyof Rsc[Key]["config"] ? Rsc[Key]["config"][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & {
70
- Response: Rsc[Key]["success"];
71
- }) => Effect<A_1, E_1, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_1, Handler<Rsc[Key], "d", A_1, E_1, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>>>;
72
- <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/utils").ComputeFlat<Effect.LowerServices<EffectDeps<SVC>> & { [key in keyof CTXMap as CTXMap[key][3] extends true ? never : key extends keyof Rsc[Key]["config"] ? Rsc[Key]["config"][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][3] extends true ? never : key_1 extends keyof Rsc[Key]["config"] ? Rsc[Key]["config"][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][3] extends false ? never : key_2 extends keyof Rsc[Key]["config"] ? Rsc[Key]["config"][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][3] extends false ? never : key_3 extends keyof Rsc[Key]["config"] ? Rsc[Key]["config"][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & {
73
- Response: Rsc[Key]["success"];
74
- }>) => Effect<A_2, E_2, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_2, Handler<Rsc[Key], "d", A_2, E_2, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>>>;
75
- }; } & { [Key_1 in keyof Filter<Rsc> as Key_1 extends string ? `${Key_1}Raw` : never]: {
76
- <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, Exclude<R2_1, GetEffectContext<CTXMap, Rsc[Key_1]["config"]>>>>;
77
- <R2_1, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key_1]>, ctx: { [key in keyof CTXMap as CTXMap[key][3] extends true ? never : key extends keyof Rsc[Key_1]["config"] ? Rsc[Key_1]["config"][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][3] extends true ? never : key_1 extends keyof Rsc[Key_1]["config"] ? Rsc[Key_1]["config"][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][3] extends false ? never : key_2 extends keyof Rsc[Key_1]["config"] ? Rsc[Key_1]["config"][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][3] extends false ? never : key_3 extends keyof Rsc[Key_1]["config"] ? Rsc[Key_1]["config"][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & {
78
- Response: Rsc[Key_1]["success"];
79
- }) => 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, Exclude<R2_1, GetEffectContext<CTXMap, Rsc[Key_1]["config"]>>>>;
80
- <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/utils").ComputeFlat<Effect.LowerServices<EffectDeps<SVC>> & { [key in keyof CTXMap as CTXMap[key][3] extends true ? never : key extends keyof Rsc[Key_1]["config"] ? Rsc[Key_1]["config"][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][3] extends true ? never : key_1 extends keyof Rsc[Key_1]["config"] ? Rsc[Key_1]["config"][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][3] extends false ? never : key_2 extends keyof Rsc[Key_1]["config"] ? Rsc[Key_1]["config"][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][3] extends false ? never : key_3 extends keyof Rsc[Key_1]["config"] ? Rsc[Key_1]["config"][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & {
81
- Response: Rsc[Key_1]["success"];
82
- }>) => 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, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key_1]["config"]>>>>;
83
- }; };
97
+ }) => <E_1, R_1, THandlers extends { [K in keyof Filter<Rsc>]: AHandler<Rsc[K]>; }, TLayers extends NonEmptyArray<Layer.Layer.Any>>(layers: TLayers, make: (requests: RouteMatcher<CTXMap, Rsc, Context>) => Effect<THandlers, E_1, R_1>) => {
98
+ moduleName: ModuleName;
99
+ Router: HttpRouter.HttpRouter.TagClass<RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<Context, HttpRouter.HttpRouter.Provided | ({ [k in keyof Layers]: Layer.Layer.Success<Layers[k]>; }[number] | { [k_1 in keyof TLayers]: Layer.Layer.Success<TLayers[k_1]>; }[number])> | Exclude<RPCRouteR<{ [K in keyof Filter<Rsc>]: Rpc.Rpc<Rsc[K], _R<ReturnType<THandlers[K]["handler"]>>>; }[keyof Filter<Rsc>]>, HttpRouter.HttpRouter.Provided | ({ [k in keyof Layers]: Layer.Layer.Success<Layers[k]>; }[number] | { [k_1 in keyof TLayers]: Layer.Layer.Success<TLayers[k_1]>; }[number])>>;
100
+ routes: Layer.Layer<RouterShape<Rsc>, E_1 | { [k_2 in keyof TLayers]: Layer.Layer.Error<TLayers[k_2]>; }[number], { [k_3 in keyof TLayers]: Layer.Layer.Context<TLayers[k_3]>; }[number] | Exclude<RMW, { [k in keyof Layers]: Layer.Layer.Success<Layers[k]>; }[number] | { [k_1 in keyof TLayers]: Layer.Layer.Success<TLayers[k_1]>; }[number]> | Exclude<R_1, { [k in keyof Layers]: Layer.Layer.Success<Layers[k]>; }[number] | { [k_1 in keyof TLayers]: Layer.Layer.Success<TLayers[k_1]>; }[number]>>;
101
+ };
84
102
  };
85
103
  export {};
86
104
  //# sourceMappingURL=routing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/api/routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/api/routing.ts"],"names":[],"mappings":"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"}