@effect-app/infra 0.18.1 → 0.18.3

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/_cjs/api/defaultErrorHandler.cjs +7 -6
  3. package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
  4. package/_cjs/api/reportError.cjs +8 -7
  5. package/_cjs/api/reportError.cjs.map +1 -1
  6. package/_cjs/api/routing.cjs +4 -3
  7. package/_cjs/api/routing.cjs.map +1 -1
  8. package/_cjs/api/setupRequest.cjs +9 -8
  9. package/_cjs/api/setupRequest.cjs.map +1 -1
  10. package/_cjs/errorReporter.cjs +5 -4
  11. package/_cjs/errorReporter.cjs.map +1 -1
  12. package/_cjs/services/Operations/service.cjs +5 -4
  13. package/_cjs/services/Operations/service.cjs.map +1 -1
  14. package/_cjs/services/Repository.cjs +6 -5
  15. package/_cjs/services/Repository.cjs.map +1 -1
  16. package/_src/api/defaultErrorHandler.ts +51 -47
  17. package/_src/api/reportError.ts +17 -9
  18. package/_src/api/routing.ts +101 -99
  19. package/_src/api/setupRequest.ts +15 -11
  20. package/_src/errorReporter.ts +30 -26
  21. package/_src/services/Operations/service.ts +29 -23
  22. package/_src/services/Repository.ts +10 -8
  23. package/dist/api/defaultErrorHandler.d.ts.map +1 -1
  24. package/dist/api/defaultErrorHandler.js +8 -7
  25. package/dist/api/reportError.d.ts.map +1 -1
  26. package/dist/api/reportError.js +8 -7
  27. package/dist/api/routing.d.ts +1 -1
  28. package/dist/api/routing.d.ts.map +1 -1
  29. package/dist/api/routing.js +5 -4
  30. package/dist/api/setupRequest.d.ts.map +1 -1
  31. package/dist/api/setupRequest.js +10 -9
  32. package/dist/errorReporter.d.ts.map +1 -1
  33. package/dist/errorReporter.js +6 -5
  34. package/dist/services/Operations/service.d.ts.map +1 -1
  35. package/dist/services/Operations/service.js +6 -5
  36. package/dist/services/Repository.d.ts +9 -9
  37. package/dist/services/Repository.d.ts.map +1 -1
  38. package/dist/services/Repository.js +7 -6
  39. package/dist/services/simpledb/cosmosdb.d.ts +2 -2
  40. package/dist/services/simpledb/diskdb.d.ts +2 -2
  41. package/dist/services/simpledb/memdb.d.ts +2 -2
  42. package/dist/services/simpledb/mongodb.d.ts +2 -2
  43. package/dist/services/simpledb/redisdb.d.ts +2 -2
  44. package/dist/services/simpledb/simpledb.d.ts +3 -3
  45. package/package.json +3 -3
@@ -10,12 +10,16 @@ export class RequestException<E> extends CauseException<E> {
10
10
  export const reportRequestError_ = reportError(cause => new RequestException(cause))
11
11
 
12
12
  export const reportRequestError = (cause: Cause<unknown>, context?: Record<string, unknown> | undefined) =>
13
- RequestContext.Tag.accessWithEffect(requestContext => reportRequestError_(cause, { requestContext, ...context }))
13
+ Debug.untraced(() =>
14
+ RequestContext.Tag.accessWithEffect(requestContext => reportRequestError_(cause, { requestContext, ...context }))
15
+ )
14
16
 
15
17
  export const logRequestError_ = logError(cause => new RequestException(cause))
16
18
 
17
19
  export const logRequestError = (cause: Cause<unknown>, context?: Record<string, unknown> | undefined) =>
18
- RequestContext.Tag.accessWithEffect(requestContext => logRequestError_(cause, { requestContext, ...context }))
20
+ Debug.untraced(() =>
21
+ RequestContext.Tag.accessWithEffect(requestContext => logRequestError_(cause, { requestContext, ...context }))
22
+ )
19
23
 
20
24
  /**
21
25
  * Forks the effect into a new fiber attached to the global scope. Because the
@@ -27,8 +31,10 @@ export const logRequestError = (cause: Cause<unknown>, context?: Record<string,
27
31
  * @tsplus getter effect/io/Effect forkDaemonReportRequest
28
32
  */
29
33
  export function forkDaemonReportRequest<R, E, A>(self: Effect<R, E, A>) {
30
- return self.tapErrorCause(reportRequestError)
31
- .fork.daemonChildren
34
+ return Debug.untraced(() =>
35
+ self.tapErrorCause(reportRequestError)
36
+ .fork.daemonChildren
37
+ )
32
38
  }
33
39
 
34
40
  /**
@@ -41,10 +47,12 @@ export function forkDaemonReportRequest<R, E, A>(self: Effect<R, E, A>) {
41
47
  * @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
42
48
  */
43
49
  export function forkDaemonReportRequestUnexpected<R, E, A>(self: Effect<R, E, A>) {
44
- return self.tapErrorCause(cause =>
45
- cause.isInterruptedOnly() || cause.isDie()
46
- ? reportRequestError(cause)
47
- : logRequestError(cause)
50
+ return Debug.untraced(() =>
51
+ self.tapErrorCause(cause =>
52
+ cause.isInterruptedOnly() || cause.isDie()
53
+ ? reportRequestError(cause)
54
+ : logRequestError(cause)
55
+ )
56
+ .fork.daemonChildren
48
57
  )
49
- .fork.daemonChildren
50
58
  }
@@ -294,116 +294,118 @@ export function makeRequestHandler<
294
294
  }
295
295
 
296
296
  return (req: express.Request, res: express.Response) => {
297
- return Effect.struct({
298
- requestContext: Effect(() => {
299
- const requestContext = makeContext(req)
300
- if (req.method === "GET") {
301
- res.setHeader("Cache-Control", "no-store")
302
- }
303
- res.setHeader("Content-Language", requestContext.locale)
304
- return requestContext
305
- }),
306
- pars: getParams(req)
307
- })
308
- .flatMap(({ pars, requestContext }) =>
309
- RequestSettings.get.flatMap(s =>
310
- Effect.logInfo("Incoming request").apply(
311
- Effect.logAnnotates({
312
- method: req.method,
313
- path: req.originalUrl,
314
- ...s.verbose
315
- ? {
316
- reqPath: pars.path.$$.pretty,
317
- reqQuery: pars.query.$$.pretty,
318
- reqBody: pretty(pars.body),
319
- reqCookies: pretty(pars.cookies),
320
- reqHeaders: pars.headers.$$.pretty
321
- } :
322
- undefined
297
+ return Debug.untraced(restore =>
298
+ Effect.struct({
299
+ requestContext: Effect(() => {
300
+ const requestContext = makeContext(req)
301
+ if (req.method === "GET") {
302
+ res.setHeader("Cache-Control", "no-store")
303
+ }
304
+ res.setHeader("Content-Language", requestContext.locale)
305
+ return requestContext
306
+ }),
307
+ pars: getParams(req)
308
+ })
309
+ .flatMap(({ pars, requestContext }) =>
310
+ RequestSettings.get.flatMap(s =>
311
+ Effect.logInfo("Incoming request").apply(
312
+ Effect.logAnnotates({
313
+ method: req.method,
314
+ path: req.originalUrl,
315
+ ...s.verbose
316
+ ? {
317
+ reqPath: pars.path.$$.pretty,
318
+ reqQuery: pars.query.$$.pretty,
319
+ reqBody: pretty(pars.body),
320
+ reqCookies: pretty(pars.cookies),
321
+ reqHeaders: pars.headers.$$.pretty
322
+ } :
323
+ undefined
324
+ })
325
+ )
326
+ ).zipRight(
327
+ Effect.suspendSucceed(() => {
328
+ const handleRequest = parseRequest(req)
329
+ .map(({ body, path, query }) => {
330
+ const hn = {
331
+ ...body.value,
332
+ ...query.value,
333
+ ...path.value
334
+ } as unknown as ReqA
335
+ return hn
336
+ })
337
+ .flatMap(parsedReq =>
338
+ restore(() => handle(parsedReq as any))()
339
+ .flatMap(r => respond(parsedReq, res, r))
340
+ )
341
+ // Commands should not be interruptable.
342
+ const r = req.method !== "GET" ? handleRequest.uninterruptible : handleRequest // .instrument("Performance.RequestResponse")
343
+ // the first log entry should be of the request start.
344
+ const r2 = makeMiddlewareContext
345
+ ? r.provideSomeContextEffect(makeMiddlewareContext(req, res, requestContext))
346
+ // PR is not relevant here
347
+ : r as Effect<R, E | ValidationError, void>
348
+ return errorHandler(
349
+ req,
350
+ res,
351
+ requestContext,
352
+ r2
353
+ )
323
354
  })
324
355
  )
325
- ).zipRight(
326
- Effect.suspendSucceed(() => {
327
- const handleRequest = parseRequest(req)
328
- .map(({ body, path, query }) => {
329
- const hn = {
330
- ...body.value,
331
- ...query.value,
332
- ...path.value
333
- } as unknown as ReqA
334
- return hn
335
- })
336
- .flatMap(parsedReq =>
337
- handle(parsedReq as any)
338
- .flatMap(r => respond(parsedReq, res, r))
356
+ .tapErrorCause(cause =>
357
+ Effect.tuplePar(
358
+ Effect(() => res.status(500).send()),
359
+ reportRequestError(cause, {
360
+ requestContext,
361
+ path: req.originalUrl,
362
+ method: req.method
363
+ }),
364
+ Effect.suspendSucceed(() => {
365
+ const headers = res.getHeaders()
366
+ return Effect.logErrorCauseMessage(
367
+ "Finished request",
368
+ cause
369
+ ).apply(Effect.logAnnotates({
370
+ method: req.method,
371
+ path: req.originalUrl,
372
+ statusCode: res.statusCode.toString(),
373
+
374
+ reqPath: pars.path.$$.pretty,
375
+ reqQuery: pars.query.$$.pretty,
376
+ reqBody: pretty(pars.body),
377
+ reqCookies: pretty(pars.cookies),
378
+ reqHeaders: pars.headers.$$.pretty,
379
+
380
+ resHeaders: Object.entries(headers).reduce((prev, [key, value]) => {
381
+ prev[key] = value && typeof value === "string" ? snipString(value) : value
382
+ return prev
383
+ }, {} as Record<string, any>)
384
+ .$$.pretty
385
+ }))
386
+ })
339
387
  )
340
- // Commands should not be interruptable.
341
- const r = req.method !== "GET" ? handleRequest.uninterruptible : handleRequest // .instrument("Performance.RequestResponse")
342
- // the first log entry should be of the request start.
343
- const r2 = makeMiddlewareContext
344
- ? r.provideSomeContextEffect(makeMiddlewareContext(req, res, requestContext))
345
- // PR is not relevant here
346
- : r as Effect<R, E | ValidationError, void>
347
- return errorHandler(
348
- req,
349
- res,
350
- requestContext,
351
- r2
388
+ .tapErrorCause(cause => Effect(() => console.error("Error occurred while reporting error", cause)))
352
389
  )
353
- })
354
- )
355
- .tapErrorCause(cause =>
356
- Effect.tuplePar(
357
- Effect(() => res.status(500).send()),
358
- reportRequestError(cause, {
359
- requestContext,
360
- path: req.originalUrl,
361
- method: req.method
362
- }),
363
- Effect.suspendSucceed(() => {
390
+ .tap(() =>
391
+ RequestSettings.get.flatMap(s => {
364
392
  const headers = res.getHeaders()
365
- return Effect.logErrorCauseMessage(
366
- "Finished request",
367
- cause
368
- ).apply(Effect.logAnnotates({
393
+ return Effect.logInfo("Finished request").apply(Effect.logAnnotates({
369
394
  method: req.method,
370
395
  path: req.originalUrl,
371
396
  statusCode: res.statusCode.toString(),
372
-
373
- reqPath: pars.path.$$.pretty,
374
- reqQuery: pars.query.$$.pretty,
375
- reqBody: pretty(pars.body),
376
- reqCookies: pretty(pars.cookies),
377
- reqHeaders: pars.headers.$$.pretty,
378
-
379
- resHeaders: Object.entries(headers).reduce((prev, [key, value]) => {
380
- prev[key] = value && typeof value === "string" ? snipString(value) : value
381
- return prev
382
- }, {} as Record<string, any>)
383
- .$$.pretty
397
+ ...s.verbose
398
+ ? {
399
+ resHeaders: headers.$$.pretty
400
+ } :
401
+ undefined
384
402
  }))
385
403
  })
386
404
  )
387
- .tapErrorCause(cause => Effect(() => console.error("Error occurred while reporting error", cause)))
388
- )
389
- .tap(() =>
390
- RequestSettings.get.flatMap(s => {
391
- const headers = res.getHeaders()
392
- return Effect.logInfo("Finished request").apply(Effect.logAnnotates({
393
- method: req.method,
394
- path: req.originalUrl,
395
- statusCode: res.statusCode.toString(),
396
- ...s.verbose
397
- ? {
398
- resHeaders: headers.$$.pretty
399
- } :
400
- undefined
401
- }))
402
- })
403
- )
404
- .provideService(RequestContext.Tag, requestContext) // otherwise external error reporter breaks.
405
- .setupRequest(requestContext)
406
- )
405
+ .provideService(RequestContext.Tag, requestContext) // otherwise external error reporter breaks.
406
+ .setupRequest(requestContext)
407
+ )
408
+ )
407
409
  }
408
410
  }
409
411
 
@@ -4,13 +4,15 @@ import { RequestContext } from "../RequestContext.js"
4
4
  * @tsplus fluent effect/io/Effect setupRequest
5
5
  */
6
6
  export function setupRequest<R, E, A>(self: Effect<R, E, A>, requestContext: RequestContext) {
7
- return pipe(
8
- self.logSpan("request"),
9
- Effect.logAnnotates({
10
- requestRootId: requestContext.rootId,
11
- requestId: requestContext.id,
12
- requestName: requestContext.name
13
- })
7
+ return Debug.untraced(() =>
8
+ pipe(
9
+ self.logSpan("request"),
10
+ Effect.logAnnotates({
11
+ requestRootId: requestContext.rootId,
12
+ requestId: requestContext.id,
13
+ requestName: requestContext.name
14
+ })
15
+ )
14
16
  )
15
17
  }
16
18
 
@@ -18,16 +20,18 @@ export function setupRequest<R, E, A>(self: Effect<R, E, A>, requestContext: Req
18
20
  * @tsplus getter effect/io/Effect setupRequestFrom
19
21
  */
20
22
  export function setupRequestFrom<R, E, A>(self: Effect<R, E, A>) {
21
- return RequestContext.Tag.accessWithEffect(requestContext => self.setupRequest(requestContext))
23
+ return Debug.untraced(() => RequestContext.Tag.accessWithEffect(requestContext => self.setupRequest(requestContext)))
22
24
  }
23
25
 
24
26
  /**
25
27
  * @tsplus fluent effect/io/Effect setupRequestFromWith
26
28
  */
27
29
  export function setupReq3<R, E, A>(self: Effect<R, E, A>, name: string) {
28
- return self
29
- .setupRequestFrom
30
- .provideService(RequestContext.Tag, makeInternalRequestContext(name))
30
+ return Debug.untraced(() =>
31
+ self
32
+ .setupRequestFrom
33
+ .provideService(RequestContext.Tag, makeInternalRequestContext(name))
34
+ )
31
35
  }
32
36
 
33
37
  function makeInternalRequestContext(name: string) {
@@ -5,21 +5,23 @@ export function reportError<E, E2 extends CauseException<unknown>>(
5
5
  makeError: (cause: Cause<E>) => E2
6
6
  ) {
7
7
  return (cause: Cause<E>, context?: Record<string, unknown>) =>
8
- Effect.gen(function*($) {
9
- if (cause.isInterrupted()) {
10
- yield* $(Effect.logDebug("Interrupted: " + (context ? context.$$.pretty : "")))
11
- return
12
- }
13
- const error = makeError(cause)
14
- const extras = { context, error: error.toJSON() }
15
- reportSentry(error, extras)
16
- yield* $(
17
- cause.logErrorCause.logAnnotate(
18
- "extras",
19
- JSON.stringify({ context, error: { _tag: error._tag, message: error.message } })
8
+ Debug.untraced(() =>
9
+ Effect.gen(function*($) {
10
+ if (cause.isInterrupted()) {
11
+ yield* $(Effect.logDebug("Interrupted: " + (context ? context.$$.pretty : "")))
12
+ return
13
+ }
14
+ const error = makeError(cause)
15
+ const extras = { context, error: error.toJSON() }
16
+ reportSentry(error, extras)
17
+ yield* $(
18
+ cause.logErrorCause.logAnnotate(
19
+ "extras",
20
+ JSON.stringify({ context, error: { _tag: error._tag, message: error.message } })
21
+ )
20
22
  )
21
- )
22
- })
23
+ })
24
+ )
23
25
  }
24
26
 
25
27
  function reportSentry(error: unknown, extras: Record<string, unknown>) {
@@ -32,19 +34,21 @@ export function logError<E, E2 extends CauseException<unknown>>(
32
34
  makeError: (cause: Cause<E>) => E2
33
35
  ) {
34
36
  return (cause: Cause<E>, context?: Record<string, unknown>) =>
35
- Effect.gen(function*($) {
36
- if (cause.isInterrupted()) {
37
- yield* $(Effect.logDebug("Interrupted: " + (context ? context.$$.pretty : "")))
38
- return
39
- }
40
- const error = makeError(cause)
41
- yield* $(
42
- cause.logWarningCause.logAnnotate(
43
- "extras",
44
- JSON.stringify({ context, error: { _tag: error._tag, message: error.message } })
37
+ Debug.untraced(() =>
38
+ Effect.gen(function*($) {
39
+ if (cause.isInterrupted()) {
40
+ yield* $(Effect.logDebug("Interrupted: " + (context ? context.$$.pretty : "")))
41
+ return
42
+ }
43
+ const error = makeError(cause)
44
+ yield* $(
45
+ cause.logWarningCause.logAnnotate(
46
+ "extras",
47
+ JSON.stringify({ context, error: { _tag: error._tag, message: error.message } })
48
+ )
45
49
  )
46
- )
47
- })
50
+ })
51
+ )
48
52
  }
49
53
 
50
54
  export function captureException(error: unknown) {
@@ -19,13 +19,15 @@ export const Operations: OperationsOps = Tag<Operations>()
19
19
  * @tsplus getter effect/io/Effect forkOperation
20
20
  */
21
21
  export function forkOperation<R, E, A>(self: Effect<R, E, A>) {
22
- return Operations.accessWithEffect(
23
- Operations =>
24
- Scope.make()
25
- .flatMap(scope =>
26
- Operations.register.extend(scope)
27
- .tap(() => self.use(scope).forkDaemonReportRequestUnexpected)
28
- )
22
+ return Debug.untraced(() =>
23
+ Operations.accessWithEffect(
24
+ Operations =>
25
+ Scope.make()
26
+ .flatMap(scope =>
27
+ Operations.register.extend(scope)
28
+ .tap(() => self.use(scope).forkDaemonReportRequestUnexpected)
29
+ )
30
+ )
29
31
  )
30
32
  }
31
33
 
@@ -33,20 +35,22 @@ export function forkOperation<R, E, A>(self: Effect<R, E, A>) {
33
35
  * @tsplus getter function forkOperation
34
36
  */
35
37
  export function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<R, E, A>) {
36
- return (inp: Inp) => fnc(inp).forkOperation
38
+ return (inp: Inp) => Debug.untraced(() => fnc(inp).forkOperation)
37
39
  }
38
40
 
39
41
  /**
40
42
  * @tsplus static effect/io/Effect.Ops forkOperation
41
43
  */
42
44
  export function forkOperation2<R, E, A>(self: (opId: OperationId) => Effect<R, E, A>) {
43
- return Operations.accessWithEffect(
44
- Operations =>
45
- Scope.make()
46
- .flatMap(scope =>
47
- Operations.register.extend(scope)
48
- .tap(id => self(id).use(scope).forkDaemonReportRequestUnexpected)
49
- )
45
+ return Debug.untraced(restore =>
46
+ Operations.accessWithEffect(
47
+ Operations =>
48
+ Scope.make()
49
+ .flatMap(scope =>
50
+ Operations.register.extend(scope)
51
+ .tap(id => restore(self)(id).use(scope).forkDaemonReportRequestUnexpected)
52
+ )
53
+ )
50
54
  )
51
55
  }
52
56
 
@@ -57,13 +61,15 @@ export function forkOperationWithEffect<R, R2, E, E2, A, A2>(
57
61
  self: (id: OperationId) => Effect<R, E, A>,
58
62
  fnc: (id: OperationId) => Effect<R2, E2, A2>
59
63
  ) {
60
- return Operations.accessWithEffect(
61
- Operations =>
62
- Scope.make()
63
- .flatMap(scope =>
64
- Operations.register.extend(scope)
65
- .tap(opId => self(opId).use(scope).forkDaemonReportRequestUnexpected)
66
- .tap(opId => fnc(opId).interruptible.forkScoped.extend(scope))
67
- )
64
+ return Debug.untraced(restore =>
65
+ Operations.accessWithEffect(
66
+ Operations =>
67
+ Scope.make()
68
+ .flatMap(scope =>
69
+ Operations.register.extend(scope)
70
+ .tap(opId => restore(self)(opId).use(scope).forkDaemonReportRequestUnexpected)
71
+ .tap(opId => restore(fnc)(opId).interruptible.forkScoped.extend(scope))
72
+ )
73
+ )
68
74
  )
69
75
  }
@@ -279,8 +279,10 @@ export function queryAndSavePureEffect<
279
279
  map: Effect<R, E, { filter: Filter<PM>; collect: (t: T) => Option<S>; limit?: number; skip?: number }>
280
280
  ) {
281
281
  return <R2, A, E2, S2 extends T>(pure: Effect<FixEnv<R2, Evt, Chunk<S>, Iterable<S2>>, E2, A>) =>
282
- queryEffect(self, map)
283
- .flatMap(_ => self.saveManyWithPure_(_, pure))
282
+ Debug.untraced(restore =>
283
+ queryEffect(self, map)
284
+ .flatMap(restore(_ => self.saveManyWithPure_(_, pure)))
285
+ )
284
286
  }
285
287
 
286
288
  /**
@@ -411,12 +413,12 @@ function saveAllWithEffectInt<
411
413
  self: Repository<T, PM, Evt, Id, ItemType>,
412
414
  gen: Effect<R, E, readonly [Iterable<P>, Iterable<Evt>, A]>
413
415
  ) {
414
- return gen
415
- .flatMap(
416
- ([items, events, a]) =>
417
- self.saveAndPublish(items, events)
418
- .map(() => a)
419
- )
416
+ return Debug.untraced(restore =>
417
+ gen
418
+ .flatMap(
419
+ ([items, events, a]) => restore(() => self.saveAndPublish(items, events))().map(() => a)
420
+ )
421
+ )
420
422
  }
421
423
 
422
424
  const anyDSL = makeDSL<any, any, any>()
@@ -1 +1 @@
1
- {"version":3,"file":"defaultErrorHandler.d.ts","sourceRoot":"","sources":["../../_src/api/defaultErrorHandler.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,8BAA8B,EAC9B,iBAAiB,EACjB,eAAe,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,IAAI,EAAE,OAAO,CAAC,OAAO,EACrB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,eAAe,EAAE,cAAc,EAC/B,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,uEAgBrC;AAKD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,CAAC,EAAE,cAAc,EACjB,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,uEAwCrC;AAED,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,8BAA8B,CAAA"}
1
+ {"version":3,"file":"defaultErrorHandler.d.ts","sourceRoot":"","sources":["../../_src/api/defaultErrorHandler.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,8BAA8B,EAC9B,iBAAiB,EACjB,eAAe,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,IAAI,EAAE,OAAO,CAAC,OAAO,EACrB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,eAAe,EAAE,cAAc,EAC/B,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,uEAkBrC;AAKD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,CAAC,EAAE,cAAc,EACjB,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,uEA0CrC;AAED,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,8BAA8B,CAAA"}
@@ -1,21 +1,22 @@
1
1
  import * as tsplus_module_1 from "@effect/io/Effect";
2
2
  import * as tsplus_module_2 from "@effect/io/Cause";
3
3
  import * as tsplus_module_3 from "@effect-app/core/Effect";
4
- import * as tsplus_module_4 from "@effect/io/Schedule";
4
+ import * as tsplus_module_4 from "@effect/io/Debug";
5
+ import * as tsplus_module_5 from "@effect/io/Schedule";
5
6
  import { logRequestError } from "./reportError.js";
6
7
  export function defaultBasicErrorHandler(_req, res, _requestContext, r2) {
7
- return tsplus_module_1.catchAll(tsplus_module_1.catchTag(tsplus_module_1.tapErrorCause(r2, cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit), "ValidationError", err => tsplus_module_1.sync(() => {
8
+ return tsplus_module_4.untraced(() => tsplus_module_1.catchAll(tsplus_module_1.catchTag(tsplus_module_1.tapErrorCause(r2, cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit), "ValidationError", err => tsplus_module_1.sync(() => {
8
9
  res.status(400).send(err.errors);
9
10
  }))
10
11
  // final catch all; expecting never so that unhandled known errors will show up
11
- , (err) => tsplus_module_1.flatMap(tsplus_module_1.map(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_1.die));
12
+ , (err) => tsplus_module_1.flatMap(tsplus_module_1.map(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_1.die)));
12
13
  }
13
- const optimisticConcurrencySchedule = tsplus_module_4.intersect(tsplus_module_4.recurWhile(a => a._tag === "OptimisticConcurrencyException"))(tsplus_module_4.once());
14
+ const optimisticConcurrencySchedule = tsplus_module_5.intersect(tsplus_module_5.recurWhile(a => a._tag === "OptimisticConcurrencyException"))(tsplus_module_5.once());
14
15
  export function defaultErrorHandler(req, res, _, r2) {
15
16
  const r3 = req.method === "PATCH"
16
17
  ? tsplus_module_1.retry(r2, optimisticConcurrencySchedule)
17
18
  : r2;
18
- return tsplus_module_1.catchAll(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.tapErrorCause(r3, cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit), "ValidationError", err => tsplus_module_1.sync(() => {
19
+ return tsplus_module_4.untraced(() => tsplus_module_1.catchAll(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.tapErrorCause(r3, cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit), "ValidationError", err => tsplus_module_1.sync(() => {
19
20
  res.status(400).send(err.errors);
20
21
  })), "NotFoundError", err => tsplus_module_1.sync(() => {
21
22
  res.status(404).send(err);
@@ -30,6 +31,6 @@ export function defaultErrorHandler(req, res, _, r2) {
30
31
  res.status(412).send(err);
31
32
  }))
32
33
  // final catch all; expecting never so that unhandled known errors will show up
33
- , (err) => tsplus_module_1.flatMap(tsplus_module_1.map(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_1.die));
34
+ , (err) => tsplus_module_1.flatMap(tsplus_module_1.map(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_1.die)));
34
35
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL2RlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVsRCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLElBQXFCLEVBQ3JCLEdBQXFCLEVBQ3JCLGVBQStCLEVBQy9CLEVBQW9DO0lBRXBDLE9BQU8seUJBQUEseUJBQUEsOEJBQUEsRUFBRSxFQUNRLEtBQUssQ0FBQyxFQUFFLENBQUMsMEJBQUEsS0FBSyxDQUFZLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFZLENBQUMsRUFDdkUsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDakMscUJBQU8sR0FBRyxFQUFFO1FBQ1YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsK0VBQStFO01BQ3JFLENBQUMsR0FBVSxFQUFFLEVBQUUsQ0FDdkIsd0JBQUEsb0JBQUEseUJBQ0UsZ0dBQWdHLEdBQUcsR0FBRyxDQUN2RyxFQUNNLEdBQUcsRUFBRSxDQUFDLEdBQWMsQ0FBQyxzQkFDTixDQUN2QixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sNkJBQTZCLDZCQUNqQywyQkFBcUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGdDQUFnQyxDQUFDLEVBRGxELHNCQUFlLENBQ21DLENBQUE7QUFFeEYsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxHQUFvQixFQUNwQixHQUFxQixFQUNyQixDQUFpQixFQUNqQixFQUFvQztJQUVwQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxLQUFLLE9BQU87UUFDL0IsQ0FBQyxDQUFDLHNCQUFBLEVBQUUsRUFBTyw2QkFBNkIsQ0FBQztRQUN6QyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ04sT0FBTyx5QkFBQSx5QkFBQSx5QkFBQSx5QkFBQSx5QkFBQSx5QkFBQSx5QkFBQSw4QkFBQSxFQUFFLEVBQ1EsS0FBSyxDQUFDLEVBQUUsQ0FBQywwQkFBQSxLQUFLLENBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQVksQ0FBQyxFQUN2RSxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNqQyxxQkFBTyxHQUFHLEVBQUU7UUFDVixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEMsQ0FBQyxDQUFDLENBQUMsRUFDSyxlQUFlLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDL0IscUJBQU8sR0FBRyxFQUFFO1FBQ1YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLENBQUMsRUFDSyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNsQyxxQkFBTyxHQUFHLEVBQUU7UUFDVixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQyxFQUNLLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ25DLHFCQUFPLEdBQUcsRUFBRTtRQUNWLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFDLEVBQ0ssbUJBQW1CLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDbkMscUJBQU8sR0FBRyxFQUFFO1FBQ1YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLENBQUMsRUFDSyxnQ0FBZ0MsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNoRCxxQkFBTyxHQUFHLEVBQUU7UUFDViw0SUFBNEk7UUFDNUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCwrRUFBK0U7TUFDckUsQ0FBQyxHQUFVLEVBQUUsRUFBRSxDQUN2Qix3QkFBQSxvQkFBQSx5QkFDRSxnR0FBZ0csR0FBRyxHQUFHLENBQ3ZHLEVBQ00sR0FBRyxFQUFFLENBQUMsR0FBYyxDQUFDLHNCQUNOLENBQ3ZCLENBQUE7QUFDTCxDQUFDIn0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL2RlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxJQUFxQixFQUNyQixHQUFxQixFQUNyQixlQUErQixFQUMvQixFQUFvQztJQUVwQyxPQUFPLHlCQUFlLEdBQUcsRUFBRSxDQUN6Qix5QkFBQSx5QkFBQSw4QkFBQSxFQUFFLEVBQ2UsS0FBSyxDQUFDLEVBQUUsQ0FBQywwQkFBQSxLQUFLLENBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQVksQ0FBQyxFQUN2RSxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNqQyxxQkFBTyxHQUFHLEVBQUU7UUFDVixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCwrRUFBK0U7TUFDckUsQ0FBQyxHQUFVLEVBQUUsRUFBRSxDQUN2Qix3QkFBQSxvQkFBQSx5QkFDRSxnR0FBZ0csR0FBRyxHQUFHLENBQ3ZHLEVBQ00sR0FBRyxFQUFFLENBQUMsR0FBYyxDQUFDLHNCQUNOLENBQ3ZCLENBQ0osQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLDZCQUE2Qiw2QkFDakMsMkJBQXFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxnQ0FBZ0MsQ0FBQyxFQURsRCxzQkFBZSxDQUNtQyxDQUFBO0FBRXhGLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsR0FBb0IsRUFDcEIsR0FBcUIsRUFDckIsQ0FBaUIsRUFDakIsRUFBb0M7SUFFcEMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sS0FBSyxPQUFPO1FBQy9CLENBQUMsQ0FBQyxzQkFBQSxFQUFFLEVBQU8sNkJBQTZCLENBQUM7UUFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNOLE9BQU8seUJBQWUsR0FBRyxFQUFFLENBQ3pCLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLDhCQUFBLEVBQUUsRUFDZSxLQUFLLENBQUMsRUFBRSxDQUFDLDBCQUFBLEtBQUssQ0FBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxxQkFBWSxDQUFDLEVBQ3ZFLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2pDLHFCQUFPLEdBQUcsRUFBRTtRQUNWLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUMsQ0FBQyxFQUNLLGVBQWUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUMvQixxQkFBTyxHQUFHLEVBQUU7UUFDVixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQyxFQUNLLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2xDLHFCQUFPLEdBQUcsRUFBRTtRQUNWLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFDLEVBQ0ssbUJBQW1CLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDbkMscUJBQU8sR0FBRyxFQUFFO1FBQ1YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLENBQUMsRUFDSyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNuQyxxQkFBTyxHQUFHLEVBQUU7UUFDVixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQyxFQUNLLGdDQUFnQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2hELHFCQUFPLEdBQUcsRUFBRTtRQUNWLDRJQUE0STtRQUM1SSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLCtFQUErRTtNQUNyRSxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQ3ZCLHdCQUFBLG9CQUFBLHlCQUNFLGdHQUFnRyxHQUFHLEdBQUcsQ0FDdkcsRUFDTSxHQUFHLEVBQUUsQ0FBQyxHQUFjLENBQUMsc0JBQ04sQ0FDdkIsQ0FDSixDQUFBO0FBQ0gsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"reportError.d.ts","sourceRoot":"","sources":["../../_src/api/reportError.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AACD,eAAO,MAAM,mBAAmB,6JAAoD,CAAA;AAEpF,eAAO,MAAM,kBAAkB,UAAW,MAAM,OAAO,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEACY,CAAA;AAEnH,eAAO,MAAM,gBAAgB,6JAAiD,CAAA;AAE9E,eAAO,MAAM,eAAe,UAAW,MAAM,OAAO,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEACY,CAAA;;;;;;;;;;AAWhH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gHAGrE;;;;;;;;;;AAWD,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gHAO/E"}
1
+ {"version":3,"file":"reportError.d.ts","sourceRoot":"","sources":["../../_src/api/reportError.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AACD,eAAO,MAAM,mBAAmB,6JAAoD,CAAA;AAEpF,eAAO,MAAM,kBAAkB,UAAW,MAAM,OAAO,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAGpG,CAAA;AAEH,eAAO,MAAM,gBAAgB,6JAAiD,CAAA;AAE9E,eAAO,MAAM,eAAe,UAAW,MAAM,OAAO,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAGjG,CAAA;;;;;;;;;;AAWH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gHAKrE;;;;;;;;;;AAWD,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gHAS/E"}
@@ -1,6 +1,7 @@
1
1
  import * as tsplus_module_1 from "@effect-app/infra/RequestContext";
2
2
  import * as tsplus_module_2 from "@effect/io/Effect";
3
- import * as tsplus_module_3 from "@effect/io/Cause";
3
+ import * as tsplus_module_3 from "@effect/io/Debug";
4
+ import * as tsplus_module_4 from "@effect/io/Cause";
4
5
  import { logError, reportError } from "../errorReporter.js";
5
6
  import { CauseException } from "../errors.js";
6
7
  import "../RequestContext.js";
@@ -10,9 +11,9 @@ export class RequestException extends CauseException {
10
11
  }
11
12
  }
12
13
  export const reportRequestError_ = reportError(cause => new RequestException(cause));
13
- export const reportRequestError = (cause, context) => tsplus_module_2.serviceWithEffect(tsplus_module_1.tag, requestContext => reportRequestError_(cause, { requestContext, ...context }));
14
+ export const reportRequestError = (cause, context) => tsplus_module_3.untraced(() => tsplus_module_2.serviceWithEffect(tsplus_module_1.tag, requestContext => reportRequestError_(cause, { requestContext, ...context })));
14
15
  export const logRequestError_ = logError(cause => new RequestException(cause));
15
- export const logRequestError = (cause, context) => tsplus_module_2.serviceWithEffect(tsplus_module_1.tag, requestContext => logRequestError_(cause, { requestContext, ...context }));
16
+ export const logRequestError = (cause, context) => tsplus_module_3.untraced(() => tsplus_module_2.serviceWithEffect(tsplus_module_1.tag, requestContext => logRequestError_(cause, { requestContext, ...context })));
16
17
  /**
17
18
  * Forks the effect into a new fiber attached to the global scope. Because the
18
19
  * new fiber is attached to the global scope, when the fiber executing the
@@ -23,7 +24,7 @@ export const logRequestError = (cause, context) => tsplus_module_2.serviceWithEf
23
24
  * @tsplus getter effect/io/Effect forkDaemonReportRequest
24
25
  */
25
26
  export function forkDaemonReportRequest(self) {
26
- return tsplus_module_2.daemonChildren(tsplus_module_2.fork(tsplus_module_2.tapErrorCause(self, reportRequestError)));
27
+ return tsplus_module_3.untraced(() => tsplus_module_2.daemonChildren(tsplus_module_2.fork(tsplus_module_2.tapErrorCause(self, reportRequestError))));
27
28
  }
28
29
  /**
29
30
  * Forks the effect into a new fiber attached to the global scope. Because the
@@ -35,8 +36,8 @@ export function forkDaemonReportRequest(self) {
35
36
  * @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
36
37
  */
37
38
  export function forkDaemonReportRequestUnexpected(self) {
38
- return tsplus_module_2.daemonChildren(tsplus_module_2.fork(tsplus_module_2.tapErrorCause(self, cause => tsplus_module_3.isInterruptedOnly(cause) || tsplus_module_3.isDie(cause)
39
+ return tsplus_module_3.untraced(() => tsplus_module_2.daemonChildren(tsplus_module_2.fork(tsplus_module_2.tapErrorCause(self, cause => tsplus_module_4.isInterruptedOnly(cause) || tsplus_module_4.isDie(cause)
39
40
  ? reportRequestError(cause)
40
- : logRequestError(cause))));
41
+ : logRequestError(cause)))));
41
42
  }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0RXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2FwaS9yZXBvcnRFcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDN0MsT0FBK0Isc0JBQXNCLENBQUE7QUFFckQsTUFBTSxPQUFPLGdCQUFvQixTQUFRLGNBQWlCO0lBQ3hELFlBQVksS0FBZTtRQUN6QixLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7Q0FDRjtBQUNELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUVwRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQXFCLEVBQUUsT0FBNkMsRUFBRSxFQUFFLENBQ3pHLHVEQUFvQyxjQUFjLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLGNBQWMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVuSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFOUUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBcUIsRUFBRSxPQUE2QyxFQUFFLEVBQUUsQ0FDdEcsdURBQW9DLGNBQWMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRWhIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFVLElBQXFCO0lBQ3BFLDJEQUFPLDhCQUFBLElBQUksRUFBZSxrQkFBa0IsQ0FBQyxHQUN2QjtBQUN4QixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQVUsSUFBcUI7SUFDOUUsMkRBQU8sOEJBQUEsSUFBSSxFQUFlLEtBQUssQ0FBQyxFQUFFLENBQ2hDLGtDQUFBLEtBQUssQ0FBb0IsSUFBSSxzQkFBQSxLQUFLLENBQVE7UUFDeEMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUMzQixHQUNxQjtBQUN4QixDQUFDIn0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0RXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2FwaS9yZXBvcnRFcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzdDLE9BQStCLHNCQUFzQixDQUFBO0FBRXJELE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxjQUFpQjtJQUN4RCxZQUFZLEtBQWU7UUFDekIsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0Y7QUFDRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFcEYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFxQixFQUFFLE9BQTZDLEVBQUUsRUFBRSxDQUN6Ryx5QkFBZSxHQUFHLEVBQUUsQ0FDbEIsdURBQW9DLGNBQWMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUNsSCxDQUFBO0FBRUgsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQXFCLEVBQUUsT0FBNkMsRUFBRSxFQUFFLENBQ3RHLHlCQUFlLEdBQUcsRUFBRSxDQUNsQix1REFBb0MsY0FBYyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQy9HLENBQUE7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBVSxJQUFxQjtJQUNwRSxPQUFPLHlCQUFlLEdBQUcsRUFBRSxxREFDekIsOEJBQUEsSUFBSSxFQUFlLGtCQUFrQixDQUFDLEVBQ2hCLENBQ3ZCLENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQVUsSUFBcUI7SUFDOUUsT0FBTyx5QkFBZSxHQUFHLEVBQUUscURBQ3pCLDhCQUFBLElBQUksRUFBZSxLQUFLLENBQUMsRUFBRSxDQUN6QixrQ0FBQSxLQUFLLENBQW9CLElBQUksc0JBQUEsS0FBSyxDQUFRO1FBQ3hDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FDM0IsRUFDcUIsQ0FDdkIsQ0FBQTtBQUNILENBQUMifQ==
@@ -94,7 +94,7 @@ export interface ReqHandler<Req, R, E, Res, ReqSchema extends MO.SchemaAny, ResS
94
94
  * })
95
95
  * ```
96
96
  */
97
- export declare function matchResource<TModules extends Record<string, Record<string, any>>>(mod: TModules): <THandlers extends { [K in keyof TModules]: (req: InstanceType<GetRequest<TModules[K]> extends infer T ? T extends GetRequest<TModules[K]> ? T extends new (...args: any[]) => any ? T : never : never : never>) => import("@effect/io/Effect").Effect<any, SupportedErrors, MO.ParsedShapeOf<Extr<GetResponse<TModules[K]>>>>; }>(handlers: THandlers) => { [K_1 in keyof TModules]: ReqHandler<InstanceType<GetRequest<TModules[K_1]> extends infer T_1 ? T_1 extends GetRequest<TModules[K_1]> ? T_1 extends new (...args: any[]) => any ? T_1 : never : never : never>, _R<ReturnType<THandlers[K_1]>>, _E<ReturnType<THandlers[K_1]>>, MO.ParsedShapeOf<Extr<GetResponse<TModules[K_1]>>>, GetRequest<TModules[K_1]>, GetResponse<TModules[K_1]>, any>; };
97
+ export declare function matchResource<TModules extends Record<string, Record<string, any>>>(mod: TModules): <THandlers extends { [K in keyof TModules]: (req: InstanceType<GetRequest<TModules[K]> extends infer T ? T extends GetRequest<TModules[K]> ? T extends new (...args: any[]) => any ? T : never : never : never>) => import("@effect/io/Effect").Effect<any, SupportedErrors, MO.ParsedShapeOf<Extr<GetResponse<TModules[K]>>>>; }>(handlers: THandlers) => { [K_1 in keyof TModules]: ReqHandler<InstanceType<GetRequest<TModules[K_1]> extends infer T ? T extends GetRequest<TModules[K_1]> ? T extends new (...args: any[]) => any ? T : never : never : never>, _R<ReturnType<THandlers[K_1]>>, _E<ReturnType<THandlers[K_1]>>, MO.ParsedShapeOf<Extr<GetResponse<TModules[K_1]>>>, GetRequest<TModules[K_1]>, GetResponse<TModules[K_1]>, any>; };
98
98
  export type ReqFromSchema<ReqSchema> = InstanceType<ReqSchema extends {
99
99
  new (...args: any[]): any;
100
100
  } ? ReqSchema : never>;