@effect-app/infra 1.42.0 → 1.43.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.
@@ -176,10 +176,7 @@ export const makeRouter = <Context, CTXMap extends Record<string, RPCContextMap.
176
176
  return acc
177
177
  }, {} as Filtered)
178
178
 
179
- type MatchWithServicesNew2<RT extends "raw" | "d", Key extends keyof Rsc> = {
180
- success: RT extends "raw" ? S.SchemaClass<S.Schema.Encoded<Rsc[Key]["success"]>> : Rsc[Key]["success"]
181
- failure: Rsc[Key]["failure"]
182
-
179
+ type Match<RT extends "raw" | "d", Key extends keyof Rsc> = {
183
180
  // TODO: deal with HandleVoid and ability to extends from GetSuccessShape...
184
181
  // aka we want to make sure that the return type is void if the success is void,
185
182
  // and make sure A is the actual expected type
@@ -227,200 +224,47 @@ export const makeRouter = <Context, CTXMap extends Record<string, RPCContextMap.
227
224
  }
228
225
  }, {
229
226
  success: rsc[cur].success,
230
- failure: rsc[cur].failure
231
- }) // "Raw" variations are for when you don't want to decode just to encode it again on the response
232
- // e.g for direct projection from DB
233
- // but more importantly, to skip Effectful decoders, like to resolve relationships from the database or remote client.
234
- ;(prev as any)[(cur as any) + "Raw"] = Object.assign((fnOrEffect: any) => {
235
- const stack = new Error().stack?.split("\n").slice(2).join("\n")
236
- return Effect.isEffect(fnOrEffect)
237
- ? class {
238
- static stack = stack
239
- static _tag = "raw"
240
- static handler = () => fnOrEffect
241
- }
242
- : class {
243
- static stack = stack
244
- static _tag = "raw"
245
- static handler = (req: any, ctx: any) => fnOrEffect(req, { ...ctx, Response: rsc[cur].success })
227
+ successRaw: S.encodedSchema(rsc[cur].success),
228
+ failure: rsc[cur].failure,
229
+ raw: // "Raw" variations are for when you don't want to decode just to encode it again on the response
230
+ // e.g for direct projection from DB
231
+ // but more importantly, to skip Effectful decoders, like to resolve relationships from the database or remote client.
232
+ (fnOrEffect: any) => {
233
+ const stack = new Error().stack?.split("\n").slice(2).join("\n")
234
+ return Effect.isEffect(fnOrEffect)
235
+ ? class {
236
+ static stack = stack
237
+ static _tag = "raw"
238
+ static handler = () => fnOrEffect
239
+ }
240
+ : class {
241
+ static stack = stack
242
+ static _tag = "raw"
243
+ static handler = (req: any, ctx: any) => fnOrEffect(req, { ...ctx, Response: rsc[cur].success })
244
+ }
246
245
  }
247
- }, {
248
- success: S.encodedSchema(rsc[cur].success),
249
- failure: rsc[cur].failure
250
246
  })
251
247
  return prev
252
248
  },
253
- {} as
254
- & {
255
- // use Rsc as Key over using Keys, so that the Go To on X.Action remain in tact in Controllers files
256
- /**
257
- * Requires the Type shape
258
- */
259
- [Key in keyof Filtered]: MatchWithServicesNew2<"d", Key>
260
- }
261
- & {
262
- // use Rsc as Key over using Keys, so that the Go To on X.Action remain in tact in Controllers files
249
+ {} as {
250
+ // use Rsc as Key over using Keys, so that the Go To on X.Action remain in tact in Controllers files
251
+ /**
252
+ * Requires the Type shape
253
+ */
254
+ [Key in keyof Filtered]: Match<"d", Key> & {
255
+ success: Rsc[Key]["success"]
256
+ successRaw: S.SchemaClass<S.Schema.Encoded<Rsc[Key]["success"]>>
257
+ failure: Rsc[Key]["failure"]
263
258
  /**
264
259
  * Requires the Encoded shape (e.g directly undecoded from DB, so that we don't do multiple Decode/Encode)
265
260
  */
266
- [Key in keyof Filtered as Key extends string ? `${Key}Raw` : never]: MatchWithServicesNew2<"raw", Key>
261
+ raw: Match<"raw", Key>
267
262
  }
263
+ }
268
264
  )
269
265
 
270
266
  type Keys = keyof Filtered
271
267
 
272
- const controllers = <
273
- THandlers extends {
274
- // import to keep them separate via | for type checking!!
275
- [K in Keys]: AHandler<Rsc[K]>
276
- },
277
- TLayers extends NonEmptyArray<Layer.Layer.Any>
278
- >(
279
- controllers: THandlers,
280
- layers?: TLayers
281
- ) => {
282
- const mapped = typedKeysOf(filtered).reduce((acc, cur) => {
283
- const handler = controllers[cur as keyof typeof controllers]
284
- const req = rsc[cur]
285
-
286
- acc[cur] = rpc.effect(
287
- handler._tag === "raw"
288
- ? class extends (req as any) {
289
- static success = S.encodedSchema(req.success)
290
- get [Serializable.symbol]() {
291
- return this.constructor
292
- }
293
- get [Serializable.symbolResult]() {
294
- return {
295
- failure: req.failure,
296
- success: S.encodedSchema(req.success)
297
- }
298
- }
299
- } as any
300
- : req,
301
- (req) =>
302
- Effect
303
- .annotateCurrentSpan(
304
- "requestInput",
305
- Object.entries(req).reduce((prev, [key, value]: [string, unknown]) => {
306
- prev[key] = key === "password"
307
- ? "<redacted>"
308
- : typeof value === "string" || typeof value === "number" || typeof value === "boolean"
309
- ? typeof value === "string" && value.length > 256
310
- ? (value.substring(0, 253) + "...")
311
- : value
312
- : Array.isArray(value)
313
- ? `Array[${value.length}]`
314
- : value === null || value === undefined
315
- ? `${value}`
316
- : typeof value === "object" && value
317
- ? `Object[${Object.keys(value).length}]`
318
- : typeof value
319
- return prev
320
- }, {} as Record<string, string | number | boolean>)
321
- )
322
- .pipe(
323
- // can't use andThen due to some being a function and effect
324
- Effect.zipRight(handler.handler(req as any) as any),
325
- Effect.tapErrorCause((cause) => Cause.isFailure(cause) ? logRequestError(cause) : Effect.void),
326
- Effect.tapDefect((cause) =>
327
- Effect
328
- .all([
329
- reportRequestError(cause, {
330
- action: `${meta.moduleName}.${req._tag}`
331
- }),
332
- Rpc.currentHeaders.pipe(Effect.andThen((headers) => {
333
- return InfraLogger
334
- .logError("Finished request", cause)
335
- .pipe(Effect.annotateLogs({
336
- action: `${meta.moduleName}.${req._tag}`,
337
- req: pretty(req),
338
- headers: pretty(headers)
339
- // resHeaders: pretty(
340
- // Object
341
- // .entries(headers)
342
- // .reduce((prev, [key, value]) => {
343
- // prev[key] = value && typeof value === "string" ? snipString(value) : value
344
- // return prev
345
- // }, {} as Record<string, any>)
346
- // )
347
- }))
348
- }))
349
- ])
350
- ),
351
- devMode ? (_) => _ : Effect.catchAllDefect(() => Effect.die("Internal Server Error")),
352
- Effect.withSpan("Request." + meta.moduleName + "." + req._tag, {
353
- captureStackTrace: () => handler.stack
354
- })
355
- ),
356
- meta.moduleName
357
- ) // TODO
358
- return acc
359
- }, {} as any) as {
360
- [K in Keys]: Rpc.Rpc<
361
- Rsc[K],
362
- _R<ReturnType<THandlers[K]["handler"]>>
363
- >
364
- }
365
-
366
- const rpcRouter = RpcRouter.make(...Object.values(mapped) as any) as RpcRouter.RpcRouter<
367
- RPCRouteReq<typeof mapped[keyof typeof mapped]>,
368
- RPCRouteR<typeof mapped[keyof typeof mapped]>
369
- >
370
-
371
- type Router = RouterShape<Rsc>
372
- const r: HttpRouter.HttpRouter.TagClass<
373
- Router,
374
- `${typeof meta.moduleName}Router`,
375
- never,
376
- Exclude<
377
- RPCRouteR<
378
- { [K in keyof Filter<Rsc>]: Rpc.Rpc<Rsc[K], _R<ReturnType<THandlers[K]["handler"]>>> }[keyof Filter<Rsc>]
379
- >,
380
- { [k in keyof TLayers]: Layer.Layer.Success<TLayers[k]> }[number]
381
- >
382
- > = (class Router extends HttpRouter.Tag(`${meta.moduleName}Router`)<Router>() {}) as any
383
-
384
- const layer = r.use((router) =>
385
- Effect.gen(function*() {
386
- const httpApp = toHttpApp(rpcRouter, {
387
- spanPrefix: rsc
388
- .meta
389
- .moduleName + "."
390
- })
391
- const services = (yield* Effect.context<never>()).pipe(
392
- Context.omit(Scope.Scope as never),
393
- Context.omit(Tracer.ParentSpan as never)
394
- )
395
- yield* router
396
- .all(
397
- "/",
398
- (httpApp
399
- .pipe(HttpMiddleware.make(Effect.provide(services)))) as any,
400
- // TODO: not queries.
401
- { uninterruptible: true }
402
- )
403
- })
404
- )
405
-
406
- const routes = layer.pipe(
407
- Layer.provideMerge(r.Live),
408
- layers ? Layer.provide(layers) : (_) => _
409
- ) as Layer.Layer<
410
- Router,
411
- { [k in keyof TLayers]: Layer.Layer.Error<TLayers[k]> }[number],
412
- { [k in keyof TLayers]: Layer.Layer.Context<TLayers[k]> }[number]
413
- >
414
-
415
- // Effect.Effect<HttpRouter.HttpRouter<unknown, HttpRouter.HttpRouter.DefaultServices>, never, UserRouter>
416
-
417
- return {
418
- moduleName: meta.moduleName,
419
- Router: r,
420
- routes
421
- }
422
- }
423
-
424
268
  const effect = <
425
269
  E,
426
270
  R,
@@ -578,11 +422,7 @@ export const makeRouter = <Context, CTXMap extends Record<string, RPCContextMap.
578
422
  }
579
423
  }
580
424
 
581
- const r = {
582
- effect,
583
- controllers
584
- }
585
- return r
425
+ return effect
586
426
  }
587
427
 
588
428
  type HR<T> = T extends HttpRouter.HttpRouter<any, infer R> ? R : never
@@ -1,256 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.toHttpApp = exports.makeRouter = exports.RouterSymbol = void 0;
7
- var _utils = require("@effect-app/core/utils");
8
- var _rpc = require("@effect/rpc");
9
- var _schema = require("@effect/schema");
10
- var _effectApp = require("effect-app");
11
- var _http = require("effect-app/http");
12
- var _errorReporter = require("../errorReporter.cjs");
13
- var _logger = require("../logger.cjs");
14
- var _DynamicMiddleware = require("./routing/DynamicMiddleware.cjs");
15
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
16
- /* eslint-disable @typescript-eslint/no-empty-object-type */
17
- /* eslint-disable @typescript-eslint/no-explicit-any */
18
- /*
19
- TODO: Effect.retry(r2, optimisticConcurrencySchedule) / was for PATCH only
20
- TODO: uninteruptible commands! was for All except GET.
21
- */
22
-
23
- const logRequestError = (0, _errorReporter.logError)("Request");
24
- const reportRequestError = (0, _errorReporter.reportError)("Request");
25
- /**
26
- * Plain jane JSON version
27
- * @deprecated use HttpRpcRouterNoStream.toHttpApp once support options
28
- */
29
- const toHttpApp = (self, options) => {
30
- const handler = _rpc.RpcRouter.toHandler(self, options);
31
- return _effectApp.Effect.withFiberRuntime(fiber => {
32
- const context = fiber.getFiberRef(_effectApp.FiberRef.currentContext);
33
- const request = _effectApp.Context.unsafeGet(context, _http.HttpServerRequest.HttpServerRequest);
34
- return _effectApp.Effect.flatMap(request.json, _ => handler(_).pipe(_effectApp.Stream.provideContext(context), _effectApp.Stream.runCollect, _effectApp.Effect.map(_ => _effectApp.Chunk.toReadonlyArray(_)), _effectApp.Effect.andThen(_ => {
35
- let status = 200;
36
- for (const r of _.flat()) {
37
- if (typeof r === "number") continue;
38
- const results = Array.isArray(r) ? r : [r];
39
- if (results.some(_ => _._tag === "Failure" && _.cause._tag === "Die")) {
40
- status = 500;
41
- break;
42
- }
43
- if (results.some(_ => _._tag === "Failure" && _.cause._tag === "Fail")) {
44
- status = 422; // 418
45
- break;
46
- }
47
- }
48
- return _http.HttpServerResponse.json(_, {
49
- status
50
- });
51
- }), _effectApp.Effect.orDie, _effectApp.Effect.tapDefect((0, _errorReporter.reportError)("RPCHttpApp"))));
52
- });
53
- };
54
- exports.toHttpApp = toHttpApp;
55
- const RouterSymbol = exports.RouterSymbol = Symbol();
56
- const makeRouter = (middleware, devMode) => {
57
- const rpc = (0, _DynamicMiddleware.makeRpc)(middleware);
58
- function matchFor(rsc) {
59
- const meta = rsc.meta;
60
- const filtered = (0, _utils.typedKeysOf)(rsc).reduce((acc, cur) => {
61
- if (_effectApp.Predicate.isObject(rsc[cur]) && rsc[cur]["success"]) {
62
- acc[cur] = rsc[cur];
63
- }
64
- return acc;
65
- }, {});
66
- const items = (0, _utils.typedKeysOf)(filtered).reduce((prev, cur) => {
67
- ;
68
- prev[cur] = Object.assign(fnOrEffect => {
69
- const stack = new Error().stack?.split("\n").slice(2).join("\n");
70
- return _effectApp.Effect.isEffect(fnOrEffect) ? class {
71
- static stack = stack;
72
- static _tag = "d";
73
- static handler = () => fnOrEffect;
74
- } : class {
75
- static stack = stack;
76
- static _tag = "d";
77
- static handler = fnOrEffect;
78
- };
79
- }, {
80
- success: rsc[cur].success,
81
- failure: rsc[cur].failure
82
- }) // "Raw" variations are for when you don't want to decode just to encode it again on the response
83
- ;
84
- prev[cur + "Raw"] = Object.assign(fnOrEffect => {
85
- const stack = new Error().stack?.split("\n").slice(2).join("\n");
86
- return _effectApp.Effect.isEffect(fnOrEffect) ? class {
87
- static stack = stack;
88
- static _tag = "raw";
89
- static handler = () => fnOrEffect;
90
- } : class {
91
- static stack = stack;
92
- static _tag = "raw";
93
- static handler = (req, ctx) => fnOrEffect(req, {
94
- ...ctx,
95
- Response: rsc[cur].success
96
- });
97
- };
98
- }, {
99
- success: _effectApp.S.encodedSchema(rsc[cur].success),
100
- failure: rsc[cur].failure
101
- });
102
- return prev;
103
- }, {});
104
- const controllers = (controllers, layers) => {
105
- const mapped = (0, _utils.typedKeysOf)(filtered).reduce((acc, cur) => {
106
- const handler = controllers[cur];
107
- const req = rsc[cur];
108
- acc[cur] = rpc.effect(handler._tag === "raw" ? class extends req {
109
- static success = _effectApp.S.encodedSchema(req.success);
110
- get [_schema.Serializable.symbol]() {
111
- return this.constructor;
112
- }
113
- get [_schema.Serializable.symbolResult]() {
114
- return {
115
- failure: req.failure,
116
- success: _effectApp.S.encodedSchema(req.success)
117
- };
118
- }
119
- } : req, req => _effectApp.Effect.annotateCurrentSpan("requestInput", Object.entries(req).reduce((prev, [key, value]) => {
120
- 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;
121
- return prev;
122
- }, {})).pipe(
123
- // can't use andThen due to some being a function and effect
124
- _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, {
125
- action: `${meta.moduleName}.${req._tag}`
126
- }), _rpc.Rpc.currentHeaders.pipe(_effectApp.Effect.andThen(headers => {
127
- return _logger.InfraLogger.logError("Finished request", cause).pipe(_effectApp.Effect.annotateLogs({
128
- action: `${meta.moduleName}.${req._tag}`,
129
- req: (0, _utils.pretty)(req),
130
- headers: (0, _utils.pretty)(headers)
131
- // resHeaders: pretty(
132
- // Object
133
- // .entries(headers)
134
- // .reduce((prev, [key, value]) => {
135
- // prev[key] = value && typeof value === "string" ? snipString(value) : value
136
- // return prev
137
- // }, {} as Record<string, any>)
138
- // )
139
- }));
140
- }))])), devMode ? _ => _ : _effectApp.Effect.catchAllDefect(() => _effectApp.Effect.die("Internal Server Error")), _effectApp.Effect.withSpan("Request." + meta.moduleName + "." + req._tag, {
141
- captureStackTrace: () => handler.stack
142
- })), meta.moduleName); // TODO
143
- return acc;
144
- }, {});
145
- const rpcRouter = _rpc.RpcRouter.make(...Object.values(mapped));
146
- const r = class Router extends _http.HttpRouter.Tag(`${meta.moduleName}Router`)() {};
147
- const layer = r.use(router => _effectApp.Effect.gen(function* () {
148
- const httpApp = toHttpApp(rpcRouter, {
149
- spanPrefix: rsc.meta.moduleName + "."
150
- });
151
- const services = (yield* _effectApp.Effect.context()).pipe(_effectApp.Context.omit(_effectApp.Scope.Scope), _effectApp.Context.omit(_effectApp.Tracer.ParentSpan));
152
- yield* router.all("/", httpApp.pipe(_http.HttpMiddleware.make(_effectApp.Effect.provide(services))),
153
- // TODO: not queries.
154
- {
155
- uninterruptible: true
156
- });
157
- }));
158
- const routes = layer.pipe(_effectApp.Layer.provideMerge(r.Live), layers ? _effectApp.Layer.provide(layers) : _ => _);
159
- // Effect.Effect<HttpRouter.HttpRouter<unknown, HttpRouter.HttpRouter.DefaultServices>, never, UserRouter>
160
- return {
161
- moduleName: meta.moduleName,
162
- Router: r,
163
- routes
164
- };
165
- };
166
- const effect = (layers, make) => {
167
- const r = class Router extends _http.HttpRouter.Tag(`${meta.moduleName}Router`)() {};
168
- const layer = r.use(router => _effectApp.Effect.gen(function* () {
169
- const controllers = yield* make(items);
170
- // return make.pipe(Effect.map((c) => controllers(c, layers)))
171
- const mapped = (0, _utils.typedKeysOf)(filtered).reduce((acc, cur) => {
172
- const handler = controllers[cur];
173
- const req = rsc[cur];
174
- acc[cur] = rpc.effect(handler._tag === "raw" ? class extends req {
175
- static success = _effectApp.S.encodedSchema(req.success);
176
- get [_schema.Serializable.symbol]() {
177
- return this.constructor;
178
- }
179
- get [_schema.Serializable.symbolResult]() {
180
- return {
181
- failure: req.failure,
182
- success: _effectApp.S.encodedSchema(req.success)
183
- };
184
- }
185
- } : req, req => _effectApp.Effect.annotateCurrentSpan("requestInput", Object.entries(req).reduce((prev, [key, value]) => {
186
- 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;
187
- return prev;
188
- }, {})).pipe(
189
- // can't use andThen due to some being a function and effect
190
- _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, {
191
- action: `${meta.moduleName}.${req._tag}`
192
- }), _rpc.Rpc.currentHeaders.pipe(_effectApp.Effect.andThen(headers => {
193
- return _logger.InfraLogger.logError("Finished request", cause).pipe(_effectApp.Effect.annotateLogs({
194
- action: `${meta.moduleName}.${req._tag}`,
195
- req: (0, _utils.pretty)(req),
196
- headers: (0, _utils.pretty)(headers)
197
- // resHeaders: pretty(
198
- // Object
199
- // .entries(headers)
200
- // .reduce((prev, [key, value]) => {
201
- // prev[key] = value && typeof value === "string" ? snipString(value) : value
202
- // return prev
203
- // }, {} as Record<string, any>)
204
- // )
205
- }));
206
- }))])), devMode ? _ => _ : _effectApp.Effect.catchAllDefect(() => _effectApp.Effect.die("Internal Server Error")), _effectApp.Effect.withSpan("Request." + meta.moduleName + "." + req._tag, {
207
- captureStackTrace: () => handler.stack
208
- })), meta.moduleName); // TODO
209
- return acc;
210
- }, {});
211
- const rpcRouter = _rpc.RpcRouter.make(...Object.values(mapped));
212
- const httpApp = toHttpApp(rpcRouter, {
213
- spanPrefix: rsc.meta.moduleName + "."
214
- });
215
- const services = (yield* _effectApp.Effect.context()).pipe(_effectApp.Context.omit(_effectApp.Scope.Scope), _effectApp.Context.omit(_effectApp.Tracer.ParentSpan));
216
- yield* router.all("/", httpApp.pipe(_http.HttpMiddleware.make(_effectApp.Effect.provide(services))),
217
- // TODO: not queries.
218
- {
219
- uninterruptible: true
220
- });
221
- }));
222
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
223
- const routes = layer.pipe(_effectApp.Layer.provideMerge(r.Live), layers ? _effectApp.Layer.provide(layers) : _ => _);
224
- // Effect.Effect<HttpRouter.HttpRouter<unknown, HttpRouter.HttpRouter.DefaultServices>, never, UserRouter>
225
- return {
226
- moduleName: meta.moduleName,
227
- Router: r,
228
- routes
229
- };
230
- };
231
- const r = {
232
- effect,
233
- controllers
234
- };
235
- return r;
236
- }
237
- function matchAll(handlers, requestLayer) {
238
- const routers = (0, _utils.typedValuesOf)(handlers);
239
- const rootRouter = class extends _http.HttpRouter.Tag("RootRouter")() {};
240
- const r = rootRouter.use(router => _effectApp.Effect.gen(function* () {
241
- for (const route of routers) {
242
- yield* router.mount("/rpc/" + route.moduleName, yield* route.Router.router.pipe(_effectApp.Effect.map(_http.HttpRouter.use((0, _effectApp.flow)(_effectApp.Effect.provide(requestLayer))))));
243
- }
244
- })).pipe(_effectApp.Layer.provide(routers.map(r => r.routes).flat()));
245
- return {
246
- layer: r,
247
- Router: rootRouter
248
- };
249
- }
250
- return {
251
- matchAll,
252
- matchFor
253
- };
254
- };
255
- exports.makeRouter = makeRouter;
256
- //# sourceMappingURL=routing2 copy.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routing2 copy.cjs","names":["_utils","require","_rpc","_schema","_effectApp","_http","_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","makeRouter","middleware","devMode","rpc","makeRpc","matchFor","rsc","meta","filtered","typedKeysOf","reduce","acc","cur","Predicate","isObject","items","prev","Object","assign","fnOrEffect","stack","Error","split","slice","join","isEffect","success","failure","req","ctx","Response","S","encodedSchema","controllers","layers","mapped","effect","Serializable","symbol","constructor","symbolResult","annotateCurrentSpan","entries","key","value","length","substring","undefined","keys","zipRight","tapErrorCause","Cause","isFailure","void","all","action","moduleName","Rpc","currentHeaders","headers","InfraLogger","annotateLogs","pretty","catchAllDefect","die","withSpan","captureStackTrace","rpcRouter","make","values","Router","HttpRouter","Tag","layer","use","router","gen","httpApp","spanPrefix","services","omit","Scope","Tracer","ParentSpan","HttpMiddleware","provide","uninterruptible","routes","Layer","provideMerge","Live","matchAll","handlers","requestLayer","routers","typedValuesOf","rootRouter","route","mount","flow"],"sources":["../../src/api/routing2 copy.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,105 +0,0 @@
1
- import type * as HttpApp from "@effect/platform/HttpApp";
2
- import { Rpc, RpcRouter } from "@effect/rpc";
3
- import type { NonEmptyArray } from "effect-app";
4
- import { Effect, Layer, S } from "effect-app";
5
- import type { GetEffectContext, RPCContextMap } from "effect-app/client/req";
6
- import type { HttpServerError } from "effect-app/http";
7
- import { HttpRouter } from "effect-app/http";
8
- import type { Middleware } from "./routing/DynamicMiddleware.js";
9
- export type _R<T extends Effect<any, any, any>> = [T] extends [
10
- Effect<any, any, infer R>
11
- ] ? R : never;
12
- export type _E<T extends Effect<any, any, any>> = [T] extends [
13
- Effect<any, infer E, any>
14
- ] ? E : never;
15
- export type EffectDeps<A> = {
16
- [K in keyof A as A[K] extends Effect<any, any, any> ? K : never]: A[K] extends Effect<any, any, any> ? A[K] : never;
17
- };
18
- /**
19
- * Plain jane JSON version
20
- * @deprecated use HttpRpcRouterNoStream.toHttpApp once support options
21
- */
22
- export declare const toHttpApp: <R extends RpcRouter.RpcRouter<any, any>>(self: R, options?: {
23
- readonly spanPrefix?: string;
24
- }) => HttpApp.Default<HttpServerError.RequestError, RpcRouter.RpcRouter.Context<R>>;
25
- export interface Hint<Err extends string> {
26
- Err: Err;
27
- }
28
- type HandleVoid<Expected, Actual, Result> = [Expected] extends [void] ? [Actual] extends [void] ? Result : Hint<"You're returning non void for a void Response, please fix"> : Result;
29
- type AnyRequestModule = S.Schema.Any & {
30
- success?: S.Schema.Any;
31
- failure?: S.Schema.Any;
32
- };
33
- type GetSuccess<T> = T extends {
34
- success: S.Schema.Any;
35
- } ? T["success"] : typeof S.Void;
36
- type GetFailure<T extends {
37
- failure?: S.Schema.Any;
38
- }> = T["failure"] extends never ? typeof S.Never : T["failure"];
39
- export interface Handler<Action extends AnyRequestModule, RT extends "raw" | "d", A, E, R> {
40
- new (): {};
41
- _tag: RT;
42
- stack: string;
43
- handler: (req: S.Schema.Type<Action>) => Effect<A, E, R>;
44
- }
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>;
46
- type Filter<T> = {
47
- [K in keyof T as T[K] extends S.Schema.All & {
48
- success: S.Schema.Any;
49
- failure: S.Schema.Any;
50
- } ? K : never]: T[K];
51
- };
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>;
56
- }
57
- export declare const RouterSymbol: unique symbol;
58
- export interface RouterShape<Rsc> {
59
- [RouterSymbol]: Rsc;
60
- }
61
- type RPCRouteR<T extends Rpc.Rpc<any, any>> = [T] extends [
62
- Rpc.Rpc<any, infer R>
63
- ] ? R : never;
64
- export declare const makeRouter: <Context, CTXMap extends Record<string, RPCContextMap.Any>>(middleware: ExtendedMiddleware<Context, CTXMap>, devMode: boolean) => {
65
- matchAll: <T extends {
66
- [key: string]: {
67
- Router: {
68
- router: Effect<HttpRouter.HttpRouter<any, any>, any, any>;
69
- };
70
- routes: Layer.Layer<any, any, any>;
71
- moduleName: string;
72
- };
73
- }, A, E, R>(handlers: T, requestLayer: Layer.Layer<A, E, R>) => {
74
- layer: Layer.Layer<never, Layer.Layer.Error<(typeof handlers)[keyof typeof handlers]["routes"]>, Layer.Layer.Context<(typeof handlers)[keyof typeof handlers]["routes"]>>;
75
- 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>>;
76
- };
77
- matchFor: <const ModuleName extends string, const Rsc extends Record<string, any>>(rsc: Rsc & {
78
- meta: {
79
- moduleName: ModuleName;
80
- };
81
- }) => {
82
- effect: <E_1, R_1, THandlers extends { [K in keyof Filter<Rsc>]: AHandler<Rsc[K]>; }, TLayers extends NonEmptyArray<Layer.Layer.Any>>(layers: TLayers, make: (requests: { [Key in keyof Filter<Rsc>]: {
83
- <A_1 extends S.Schema.Type<GetSuccess<Rsc[Key]>>, R2 = never, E_2 = never>(f: Effect<A_1, E_2, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_1, Handler<Rsc[Key], "d", A_1, E_2, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>>>;
84
- <A_1 extends S.Schema.Type<GetSuccess<Rsc[Key]>>, R2_1 = never, E_3 = never>(f: (req: S.Schema.Type<Rsc[Key]>) => Effect<A_1, E_3, R2_1>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_1, Handler<Rsc[Key], "d", A_1, E_3, Exclude<R2_1, GetEffectContext<CTXMap, Rsc[Key]["config"]>>>>;
85
- success: Rsc[Key]["success"];
86
- failure: Rsc[Key]["failure"];
87
- }; } & { [Key_1 in keyof Filter<Rsc> as Key_1 extends string ? `${Key_1}Raw` : never]: {
88
- <A_1 extends S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, R2 = never, E_2 = never>(f: Effect<A_1, E_2, R2>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A_1, Handler<Rsc[Key_1], "raw", A_1, E_2, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key_1]["config"]>>>>;
89
- <A_1 extends S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, R2_1 = never, E_3 = never>(f: (req: S.Schema.Type<Rsc[Key_1]>) => Effect<A_1, E_3, R2_1>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A_1, Handler<Rsc[Key_1], "raw", A_1, E_3, Exclude<R2_1, GetEffectContext<CTXMap, Rsc[Key_1]["config"]>>>>;
90
- success: S.SchemaClass<S.Schema.Encoded<Rsc[Key_1]["success"]>, S.Schema.Encoded<Rsc[Key_1]["success"]>, never>;
91
- failure: Rsc[Key_1]["failure"];
92
- }; }) => Effect<THandlers, E_1, R_1>) => {
93
- moduleName: ModuleName;
94
- Router: HttpRouter.HttpRouter.TagClass<RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<RPCRouteR<{ [K in keyof Filter<Rsc>]: Rpc.Rpc<Rsc[K], _R<ReturnType<THandlers[K]["handler"]>>>; }[keyof Filter<Rsc>]>, { [k in keyof TLayers]: Layer.Layer.Success<TLayers[k]>; }[number]>>;
95
- routes: Layer.Layer<RouterShape<Rsc>, E_1 | { [k_1 in keyof TLayers]: Layer.Layer.Error<TLayers[k_1]>; }[number], { [k_2 in keyof TLayers]: Layer.Layer.Context<TLayers[k_2]>; }[number] | Exclude<R_1, { [k_3 in keyof TLayers]: Layer.Layer.Success<TLayers[k_3]>; }[number]>>;
96
- };
97
- controllers: <THandlers_1 extends { [K in keyof Filter<Rsc>]: AHandler<Rsc[K]>; }, TLayers_1 extends NonEmptyArray<Layer.Layer.Any>>(controllers: THandlers_1, layers?: TLayers_1) => {
98
- moduleName: ModuleName;
99
- Router: HttpRouter.HttpRouter.TagClass<RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<RPCRouteR<{ [K in keyof Filter<Rsc>]: Rpc.Rpc<Rsc[K], _R<ReturnType<THandlers_1[K]["handler"]>>>; }[keyof Filter<Rsc>]>, { [k in keyof TLayers_1]: Layer.Layer.Success<TLayers_1[k]>; }[number]>>;
100
- routes: Layer.Layer<RouterShape<Rsc>, { [k_1 in keyof TLayers_1]: Layer.Layer.Error<TLayers_1[k_1]>; }[number], { [k_2 in keyof TLayers_1]: Layer.Layer.Context<TLayers_1[k_2]>; }[number]>;
101
- };
102
- };
103
- };
104
- export {};
105
- //# sourceMappingURL=routing2%20copy.d.ts.map