@effect-app/infra 0.85.0-next.3 → 0.85.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.
Files changed (232) hide show
  1. package/CHANGELOG.md +3 -25
  2. package/_cjs/_ext/Array.cjs +2 -3
  3. package/_cjs/_ext/Array.cjs.map +1 -1
  4. package/_cjs/api/defaultErrorHandler.cjs +10 -11
  5. package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
  6. package/_cjs/api/express/makeJsonSchema.cjs +2 -3
  7. package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
  8. package/_cjs/api/express/makeJsonSchema.test.cjs +2 -2
  9. package/_cjs/api/express/makeJsonSchema.test.cjs.map +1 -1
  10. package/_cjs/api/express/makeOpenApiSpecs.cjs +4 -6
  11. package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
  12. package/_cjs/api/express/schema/routing.cjs +22 -23
  13. package/_cjs/api/express/schema/routing.cjs.map +1 -1
  14. package/_cjs/api/reportError.cjs +2 -2
  15. package/_cjs/api/setupRequest.cjs +4 -5
  16. package/_cjs/api/setupRequest.cjs.map +1 -1
  17. package/_cjs/api/writeDocs.cjs +4 -6
  18. package/_cjs/api/writeDocs.cjs.map +1 -1
  19. package/_cjs/errorReporter.cjs +11 -12
  20. package/_cjs/errorReporter.cjs.map +1 -1
  21. package/_cjs/errors.cjs +8 -8
  22. package/_cjs/errors.cjs.map +1 -1
  23. package/_cjs/instrument.cjs +1 -2
  24. package/_cjs/instrument.cjs.map +1 -1
  25. package/_cjs/logger/jsonLogger.cjs +10 -11
  26. package/_cjs/logger/jsonLogger.cjs.map +1 -1
  27. package/_cjs/logger/logFmtLogger.cjs +5 -5
  28. package/_cjs/logger/logFmtLogger.cjs.map +1 -1
  29. package/_cjs/logger/shared.cjs +4 -4
  30. package/_cjs/logger/shared.cjs.map +1 -1
  31. package/_cjs/rateLimit.cjs +7 -8
  32. package/_cjs/rateLimit.cjs.map +1 -1
  33. package/_cjs/services/Emailer/Sendgrid.cjs +12 -14
  34. package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
  35. package/_cjs/services/Emailer/fake.cjs +4 -5
  36. package/_cjs/services/Emailer/fake.cjs.map +1 -1
  37. package/_cjs/services/Operations/live.cjs +29 -31
  38. package/_cjs/services/Operations/live.cjs.map +1 -1
  39. package/_cjs/services/Operations/service.cjs +5 -6
  40. package/_cjs/services/Operations/service.cjs.map +1 -1
  41. package/_cjs/services/QueueMaker/errors.cjs +6 -7
  42. package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
  43. package/_cjs/services/QueueMaker/memQueue.cjs +17 -18
  44. package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
  45. package/_cjs/services/QueueMaker/sbqueue.cjs +15 -16
  46. package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
  47. package/_cjs/services/Repository.cjs +16 -17
  48. package/_cjs/services/Repository.cjs.map +1 -1
  49. package/_cjs/services/RepositoryBase.cjs +33 -35
  50. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  51. package/_cjs/services/RequestContextContainer.cjs +20 -15
  52. package/_cjs/services/RequestContextContainer.cjs.map +1 -1
  53. package/_cjs/services/Store/Cosmos.cjs +46 -49
  54. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  55. package/_cjs/services/Store/Disk.cjs +18 -19
  56. package/_cjs/services/Store/Disk.cjs.map +1 -1
  57. package/_cjs/services/Store/Memory.cjs +39 -43
  58. package/_cjs/services/Store/Memory.cjs.map +1 -1
  59. package/_cjs/services/Store/Redis.cjs +14 -16
  60. package/_cjs/services/Store/Redis.cjs.map +1 -1
  61. package/_cjs/services/Store/codeFilter.test.cjs +1 -1
  62. package/_cjs/services/Store/index.cjs +6 -7
  63. package/_cjs/services/Store/index.cjs.map +1 -1
  64. package/_cjs/services/Store/service.cjs +1 -1
  65. package/_cjs/services/Store/service.cjs.map +1 -1
  66. package/_cjs/services/Store/utils.cjs +13 -13
  67. package/_cjs/services/Store/utils.cjs.map +1 -1
  68. package/_cjs/services/simpledb/cosmosdb.cjs +17 -19
  69. package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
  70. package/_cjs/services/simpledb/diskdb.cjs +8 -9
  71. package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
  72. package/_cjs/services/simpledb/memdb.cjs +9 -11
  73. package/_cjs/services/simpledb/memdb.cjs.map +1 -1
  74. package/_cjs/services/simpledb/mongodb.cjs +18 -20
  75. package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
  76. package/_cjs/services/simpledb/redisdb.cjs +10 -11
  77. package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
  78. package/_cjs/services/simpledb/shared.cjs +5 -5
  79. package/_cjs/services/simpledb/shared.cjs.map +1 -1
  80. package/_cjs/services/simpledb/simpledb.cjs +17 -18
  81. package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
  82. package/_src/api/authorization.jwt.ts +1 -1
  83. package/_src/api/defaultErrorHandler.ts +2 -2
  84. package/_src/api/express/routing.ts.bak +8 -8
  85. package/_src/api/express/schema/routing.ts +59 -37
  86. package/_src/api/setupRequest.ts +11 -10
  87. package/_src/errorReporter.ts +1 -1
  88. package/_src/services/Emailer/Sendgrid.ts +1 -1
  89. package/_src/services/Operations/live.ts +5 -5
  90. package/_src/services/QueueMaker/errors.ts +1 -1
  91. package/_src/services/QueueMaker/memQueue.ts +2 -2
  92. package/_src/services/QueueMaker/sbqueue.ts +1 -1
  93. package/_src/services/Repository.ts +9 -9
  94. package/_src/services/RepositoryBase.ts +6 -8
  95. package/_src/services/RequestContextContainer.ts +12 -7
  96. package/_src/services/Store/Cosmos.ts +12 -17
  97. package/_src/services/Store/Disk.ts +4 -4
  98. package/_src/services/Store/Memory.ts +4 -4
  99. package/_src/services/Store/Redis.ts +1 -1
  100. package/_src/services/Store/index.test.ts.bak +5 -5
  101. package/_src/services/Store/index.ts +1 -1
  102. package/_src/services/Store/utils.ts +16 -16
  103. package/_src/services/simpledb/diskdb.ts +1 -1
  104. package/_src/services/simpledb/memdb.ts +1 -1
  105. package/_src/services/simpledb/redisdb.ts +1 -1
  106. package/_src/services/simpledb/shared.ts +1 -1
  107. package/_src/services/simpledb/simpledb.ts +3 -3
  108. package/dist/RequestContext.d.ts +4 -4
  109. package/dist/_ext/Array.d.ts +1 -1
  110. package/dist/_ext/Array.d.ts.map +1 -1
  111. package/dist/_ext/Array.js +3 -4
  112. package/dist/api/codec.d.ts +1 -1
  113. package/dist/api/codec.d.ts.map +1 -1
  114. package/dist/api/defaultErrorHandler.d.ts +2 -2
  115. package/dist/api/defaultErrorHandler.d.ts.map +1 -1
  116. package/dist/api/defaultErrorHandler.js +11 -13
  117. package/dist/api/express/makeJsonSchema.d.ts +2 -2
  118. package/dist/api/express/makeJsonSchema.d.ts.map +1 -1
  119. package/dist/api/express/makeJsonSchema.js +3 -4
  120. package/dist/api/express/makeOpenApiSpecs.d.ts +1 -1
  121. package/dist/api/express/makeOpenApiSpecs.js +5 -7
  122. package/dist/api/express/schema/routing.d.ts +22 -7
  123. package/dist/api/express/schema/routing.d.ts.map +1 -1
  124. package/dist/api/express/schema/routing.js +23 -24
  125. package/dist/api/reportError.d.ts +5 -5
  126. package/dist/api/reportError.d.ts.map +1 -1
  127. package/dist/api/reportError.js +2 -2
  128. package/dist/api/setupRequest.d.ts +2 -2
  129. package/dist/api/setupRequest.d.ts.map +1 -1
  130. package/dist/api/setupRequest.js +7 -7
  131. package/dist/api/writeDocs.d.ts +1 -1
  132. package/dist/api/writeDocs.d.ts.map +1 -1
  133. package/dist/api/writeDocs.js +5 -7
  134. package/dist/errorReporter.d.ts +3 -3
  135. package/dist/errorReporter.d.ts.map +1 -1
  136. package/dist/errorReporter.js +12 -13
  137. package/dist/errors.d.ts +7 -7
  138. package/dist/errors.js +9 -9
  139. package/dist/instrument.d.ts +1 -1
  140. package/dist/instrument.d.ts.map +1 -1
  141. package/dist/instrument.js +2 -3
  142. package/dist/logger/jsonLogger.d.ts +2 -2
  143. package/dist/logger/jsonLogger.d.ts.map +1 -1
  144. package/dist/logger/jsonLogger.js +11 -12
  145. package/dist/logger/logFmtLogger.d.ts +2 -2
  146. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  147. package/dist/logger/logFmtLogger.js +6 -6
  148. package/dist/logger/shared.d.ts +1 -1
  149. package/dist/logger/shared.d.ts.map +1 -1
  150. package/dist/logger/shared.js +5 -5
  151. package/dist/rateLimit.d.ts +3 -3
  152. package/dist/rateLimit.d.ts.map +1 -1
  153. package/dist/rateLimit.js +8 -9
  154. package/dist/services/Emailer/Sendgrid.d.ts +1 -1
  155. package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
  156. package/dist/services/Emailer/Sendgrid.js +15 -17
  157. package/dist/services/Emailer/fake.d.ts +1 -1
  158. package/dist/services/Emailer/fake.d.ts.map +1 -1
  159. package/dist/services/Emailer/fake.js +5 -6
  160. package/dist/services/Emailer/service.d.ts +3 -3
  161. package/dist/services/Operations/live.d.ts +1 -1
  162. package/dist/services/Operations/live.d.ts.map +1 -1
  163. package/dist/services/Operations/live.js +37 -39
  164. package/dist/services/Operations/service.d.ts +8 -8
  165. package/dist/services/Operations/service.d.ts.map +1 -1
  166. package/dist/services/Operations/service.js +12 -13
  167. package/dist/services/QueueMaker/errors.d.ts +3 -3
  168. package/dist/services/QueueMaker/errors.d.ts.map +1 -1
  169. package/dist/services/QueueMaker/errors.js +6 -7
  170. package/dist/services/QueueMaker/memQueue.d.ts +3 -3
  171. package/dist/services/QueueMaker/memQueue.js +16 -17
  172. package/dist/services/QueueMaker/sbqueue.d.ts +4 -4
  173. package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
  174. package/dist/services/QueueMaker/sbqueue.js +15 -16
  175. package/dist/services/Repository.d.ts +31 -31
  176. package/dist/services/Repository.d.ts.map +1 -1
  177. package/dist/services/Repository.js +17 -18
  178. package/dist/services/RepositoryBase.d.ts +12 -11
  179. package/dist/services/RepositoryBase.d.ts.map +1 -1
  180. package/dist/services/RepositoryBase.js +35 -37
  181. package/dist/services/RequestContextContainer.d.ts +14 -11
  182. package/dist/services/RequestContextContainer.d.ts.map +1 -1
  183. package/dist/services/RequestContextContainer.js +19 -18
  184. package/dist/services/Store/Cosmos.d.ts +3 -3
  185. package/dist/services/Store/Cosmos.d.ts.map +1 -1
  186. package/dist/services/Store/Cosmos.js +51 -54
  187. package/dist/services/Store/Disk.d.ts +3 -3
  188. package/dist/services/Store/Disk.d.ts.map +1 -1
  189. package/dist/services/Store/Disk.js +19 -20
  190. package/dist/services/Store/Memory.d.ts +5 -5
  191. package/dist/services/Store/Memory.d.ts.map +1 -1
  192. package/dist/services/Store/Memory.js +41 -45
  193. package/dist/services/Store/Redis.d.ts +3 -3
  194. package/dist/services/Store/Redis.d.ts.map +1 -1
  195. package/dist/services/Store/Redis.js +15 -17
  196. package/dist/services/Store/index.d.ts +1 -1
  197. package/dist/services/Store/index.d.ts.map +1 -1
  198. package/dist/services/Store/index.js +7 -8
  199. package/dist/services/Store/service.d.ts +8 -8
  200. package/dist/services/Store/service.d.ts.map +1 -1
  201. package/dist/services/Store/service.js +2 -2
  202. package/dist/services/Store/utils.d.ts +2 -2
  203. package/dist/services/Store/utils.d.ts.map +1 -1
  204. package/dist/services/Store/utils.js +21 -21
  205. package/dist/services/simpledb/cosmosdb.d.ts +5 -5
  206. package/dist/services/simpledb/cosmosdb.js +17 -19
  207. package/dist/services/simpledb/diskdb.d.ts +4 -4
  208. package/dist/services/simpledb/diskdb.js +9 -10
  209. package/dist/services/simpledb/memdb.d.ts +4 -4
  210. package/dist/services/simpledb/memdb.js +11 -13
  211. package/dist/services/simpledb/mongodb.d.ts +5 -5
  212. package/dist/services/simpledb/mongodb.js +14 -16
  213. package/dist/services/simpledb/redisdb.d.ts +4 -4
  214. package/dist/services/simpledb/redisdb.js +11 -12
  215. package/dist/services/simpledb/shared.d.ts +4 -4
  216. package/dist/services/simpledb/shared.js +6 -6
  217. package/dist/services/simpledb/simpledb.d.ts +6 -6
  218. package/dist/services/simpledb/simpledb.d.ts.map +1 -1
  219. package/dist/services/simpledb/simpledb.js +15 -16
  220. package/package.json +5 -25
  221. package/_cjs/api/express/schema/requestHandler.cjs +0 -172
  222. package/_cjs/api/express/schema/requestHandler.cjs.map +0 -1
  223. package/_cjs/api/routing.cjs +0 -278
  224. package/_cjs/api/routing.cjs.map +0 -1
  225. package/_src/api/express/schema/requestHandler.ts +0 -372
  226. package/_src/api/routing.ts +0 -660
  227. package/dist/api/express/schema/requestHandler.d.ts +0 -71
  228. package/dist/api/express/schema/requestHandler.d.ts.map +0 -1
  229. package/dist/api/express/schema/requestHandler.js +0 -140
  230. package/dist/api/routing.d.ts +0 -103
  231. package/dist/api/routing.d.ts.map +0 -1
  232. package/dist/api/routing.js +0 -265
@@ -1 +1 @@
1
- {"version":3,"file":"simpledb.cjs","names":["_shared","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InvalidStateError","constructor","message","details","_tag","exports","makeLiveRecordCache","m","Map","type","tsplus_module_1","Effect","sync","ex","nm","makeMap","RecordCache","tsplus_module_2","Tag","LiveRecordCache","tsplus_module_3","effect","getM","eff","gen","$","tsplus_module_4","flatMap","find","tryRead","decode","getCache","read","id","tsplus_module_5","mapOption","tapOption","flatMapOption","data","version","mapBoth","onFailure","err","onSuccess","c","orElse","existing","storeDirectly","save","record","map","tap","x","cv","store","lock","_","tsplus_module_7","match","onNone","tsplus_module_6","Option","none","onSome","confirmVersionAndSave","scoped","zipRight","fail","succeed","OptimisticLockException","unit","some"],"sources":["../../../_src/services/simpledb/simpledb.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"simpledb.cjs","names":["_shared","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InvalidStateError","constructor","message","details","_tag","exports","makeLiveRecordCache","m","Map","type","tsplus_module_1","sync","ex","nm","makeMap","RecordCache","tsplus_module_2","Tag","LiveRecordCache","tsplus_module_3","effect","getM","eff","gen","$","flatMap","find","tryRead","decode","getCache","read","id","tsplus_module_4","mapOption","tapOption","flatMapOption","data","version","mapBoth","onFailure","err","onSuccess","c","orElse","existing","storeDirectly","save","record","map","tap","x","cv","store","lock","_","tsplus_module_6","match","onNone","tsplus_module_5","none","onSome","confirmVersionAndSave","scoped","zipRight","fail","succeed","OptimisticLockException","unit","some"],"sources":["../../../_src/services/simpledb/simpledb.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -42,7 +42,7 @@ export const scopes = Ex.classic(demandScopes)
42
42
  )
43
43
  return (
44
44
  cfg.AUTH_DISABLED
45
- ? Effect.sync(() => null)
45
+ ? Effect(null)
46
46
  : // eslint-disable-next-line @typescript-eslint/no-empty-function
47
47
  handleJwt(req, res, () => scopes(req, res, () => {}))
48
48
  ).zipRight(
@@ -7,7 +7,7 @@ export function defaultBasicErrorHandler<R>(
7
7
  res: express.Response,
8
8
  r2: Effect<R, ValidationError, void>
9
9
  ) {
10
- const sendError = (code: number) => (body: unknown) => Effect.sync(() => res.status(code).send(body))
10
+ const sendError = (code: number) => (body: unknown) => Effect(res.status(code).send(body))
11
11
  return r2
12
12
  .tapErrorCause((cause) => cause.isFailure() ? logRequestError(cause) : Effect.unit)
13
13
  .catchTag("ValidationError", (err) => sendError(400)(err.errors))
@@ -33,7 +33,7 @@ export function defaultErrorHandler<R>(
33
33
  const r3 = req.method === "PATCH"
34
34
  ? r2.retry(optimisticConcurrencySchedule)
35
35
  : r2
36
- const sendError = (code: number) => (body: unknown) => Effect.sync(() => res.status(code).send(body))
36
+ const sendError = (code: number) => (body: unknown) => Effect(res.status(code).send(body))
37
37
  return r3
38
38
  .tapErrorCause((cause) => cause.isFailure() ? logRequestError(cause) : Effect.unit)
39
39
  .catchTags({
@@ -76,7 +76,7 @@ export function match<
76
76
  h
77
77
  )
78
78
  ).zipRight(
79
- Effect.sync(() => makeRouteDescriptor(r.Request.path, r.Request.method, r))
79
+ Effect(makeRouteDescriptor(r.Request.path, r.Request.method, r))
80
80
  )
81
81
  }
82
82
 
@@ -180,14 +180,14 @@ export function handleRequest<
180
180
  }))
181
181
  // final catch all; expecting never so that unhandled known errors will show up
182
182
  .catchAll((err: never) =>
183
- Effect.sync(() =>
183
+ Effect(
184
184
  console.error(
185
185
  "Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect",
186
186
  err
187
187
  )
188
188
  ).flatMap(Effect.die)
189
189
  )
190
- // .tapCause(() => Effect.sync(() => res.status(500).send()))
190
+ // .tapCause(() => Effect(res.status(500).send()))
191
191
  }
192
192
 
193
193
  // Additional convenience helpers
@@ -242,7 +242,7 @@ export function get<
242
242
  r,
243
243
  h
244
244
  )
245
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "GET", r)))
245
+ ).zipRight(Effect(makeRouteDescriptor(path, "GET", r)))
246
246
  }
247
247
 
248
248
  export function post<
@@ -295,7 +295,7 @@ export function post<
295
295
  r,
296
296
  h
297
297
  )
298
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "POST", r)))
298
+ ).zipRight(Effect(makeRouteDescriptor(path, "POST", r)))
299
299
  }
300
300
 
301
301
  export function put<
@@ -348,7 +348,7 @@ export function put<
348
348
  r,
349
349
  h
350
350
  )
351
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "PUT", r)))
351
+ ).zipRight(Effect(makeRouteDescriptor(path, "PUT", r)))
352
352
  }
353
353
 
354
354
  export function patch<
@@ -401,7 +401,7 @@ export function patch<
401
401
  r,
402
402
  h
403
403
  )
404
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "PATCH", r)))
404
+ ).zipRight(Effect(makeRouteDescriptor(path, "PATCH", r)))
405
405
  }
406
406
 
407
407
  function del<
@@ -454,7 +454,7 @@ function del<
454
454
  r,
455
455
  h
456
456
  )
457
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "DELETE", r)))
457
+ ).zipRight(Effect(makeRouteDescriptor(path, "DELETE", r)))
458
458
  }
459
459
 
460
460
  export { del as delete }
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/ban-types */
1
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  import * as MO from "@effect-app/schema"
3
4
  import type { Methods } from "@effect-app/schema"
@@ -5,7 +6,37 @@ import type { Methods } from "@effect-app/schema"
5
6
  import type { JSONSchema, ParameterLocation, SubSchema } from "@effect-app/infra-adapters/Openapi/atlas-plutus"
6
7
  import { isObjectSchema } from "@effect-app/infra-adapters/Openapi/atlas-plutus"
7
8
  import * as OpenApi from "@effect-app/infra-adapters/Openapi/index"
8
- import type { RequestHandler, RequestHandlerOptRes } from "./requestHandler.js"
9
+
10
+ export type Request<
11
+ PathA,
12
+ CookieA,
13
+ QueryA,
14
+ BodyA,
15
+ HeaderA,
16
+ ReqA extends PathA & QueryA & BodyA
17
+ > = MO.ReqResSchemed<unknown, ReqA> & {
18
+ method: Methods
19
+ path: string
20
+ Cookie?: MO.ReqRes<Record<string, string>, CookieA>
21
+ Path?: MO.ReqRes<Record<string, string>, PathA>
22
+ Body?: MO.ReqRes<unknown, BodyA>
23
+ Query?: MO.ReqRes<Record<string, string>, QueryA>
24
+ Headers?: MO.ReqRes<Record<string, string>, HeaderA>
25
+ }
26
+
27
+ export interface RouteRequestHandler<
28
+ PathA,
29
+ CookieA,
30
+ QueryA,
31
+ BodyA,
32
+ HeaderA,
33
+ ReqA extends PathA & QueryA & BodyA,
34
+ ResA
35
+ > {
36
+ Request: Request<PathA, CookieA, QueryA, BodyA, HeaderA, ReqA>
37
+ Response?: MO.ReqRes<unknown, ResA> | MO.ReqResSchemed<unknown, ResA>
38
+ ResponseOpenApi?: any
39
+ }
9
40
 
10
41
  export function asRouteDescriptionAny<R extends RouteDescriptorAny>(i: R) {
11
42
  return i as RouteDescriptorAny
@@ -18,7 +49,6 @@ export function arrAsRouteDescriptionAny<R extends RouteDescriptorAny>(
18
49
  }
19
50
 
20
51
  export interface RouteDescriptor<
21
- R,
22
52
  PathA,
23
53
  CookieA,
24
54
  QueryA,
@@ -26,12 +56,12 @@ export interface RouteDescriptor<
26
56
  HeaderA,
27
57
  ReqA extends PathA & QueryA & BodyA,
28
58
  ResA,
29
- Errors,
30
59
  METHOD extends Methods = Methods
31
60
  > {
61
+ _tag: "Schema"
32
62
  path: string
33
63
  method: METHOD
34
- handler: RequestHandler<R, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, Errors>
64
+ handler: RouteRequestHandler<PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA>
35
65
  info?: {
36
66
  tags: ReadonlyArray<string>
37
67
  }
@@ -44,13 +74,10 @@ export type RouteDescriptorAny = RouteDescriptor<
44
74
  any,
45
75
  any,
46
76
  any,
47
- any,
48
- any,
49
77
  any
50
78
  >
51
79
 
52
80
  export function makeRouteDescriptor<
53
- R,
54
81
  PathA,
55
82
  CookieA,
56
83
  QueryA,
@@ -58,39 +85,34 @@ export function makeRouteDescriptor<
58
85
  HeaderA,
59
86
  ReqA extends PathA & QueryA & BodyA,
60
87
  ResA = void,
61
- Errors = any,
62
88
  METHOD extends Methods = Methods
63
89
  >(
64
90
  path: string,
65
91
  method: METHOD,
66
- handler: RequestHandlerOptRes<
67
- R,
92
+ handler: RouteRequestHandler<
68
93
  PathA,
69
94
  CookieA,
70
95
  QueryA,
71
96
  BodyA,
72
97
  HeaderA,
73
98
  ReqA,
74
- ResA,
75
- Errors
76
- >
77
- ) {
78
- return { path, method, handler, _tag: "Schema" } as RouteDescriptor<
79
- R,
80
- PathA,
81
- CookieA,
82
- QueryA,
83
- BodyA,
84
- HeaderA,
85
- ReqA,
86
- ResA,
87
- Errors,
88
- METHOD
99
+ ResA
89
100
  >
101
+ ): RouteDescriptor<
102
+ PathA,
103
+ CookieA,
104
+ QueryA,
105
+ BodyA,
106
+ HeaderA,
107
+ ReqA,
108
+ ResA,
109
+ METHOD
110
+ > {
111
+ return { path, handler, method, _tag: "Schema" }
90
112
  }
91
113
 
92
114
  export function makeFromSchema<ResA>(
93
- e: RouteDescriptor<any, any, any, any, any, any, ResA, any, any>
115
+ e: RouteDescriptor<any, any, any, any, any, ResA, any>
94
116
  ) {
95
117
  const jsonSchema_ = OpenApi.for
96
118
  const jsonSchema = <E, A>(r: MO.ReqRes<E, A>) => jsonSchema_(r)
@@ -99,33 +121,33 @@ export function makeFromSchema<ResA>(
99
121
  const Res = r ? MO.extractSchema(r) : MO.Void
100
122
  // TODO EffectOption.fromNullable(Req.Headers).flatMapOpt(jsonSchema)
101
123
  // TODO: use the path vs body etc serialisation also in the Client.
102
- const makeReqQuerySchema = Effect.sync(() => Option.fromNullable(Req.Query)).flatMap((_) =>
124
+ const makeReqQuerySchema = Effect(Option.fromNullable(Req.Query)).flatMap((_) =>
103
125
  _.match({
104
- onNone: () => Effect.sync(() => Option.none()),
126
+ onNone: () => Effect(Option.none),
105
127
  onSome: (_) => jsonSchema(_).map(Option.some)
106
128
  })
107
129
  )
108
- const makeReqHeadersSchema = Effect.sync(() => Option.fromNullable(Req.Headers)).flatMap((_) =>
130
+ const makeReqHeadersSchema = Effect(Option.fromNullable(Req.Headers)).flatMap((_) =>
109
131
  _.match({
110
- onNone: () => Effect.sync(() => Option.none()),
132
+ onNone: () => Effect(Option.none),
111
133
  onSome: (_) => jsonSchema(_).map(Option.some)
112
134
  })
113
135
  )
114
- const makeReqCookieSchema = Effect.sync(() => Option.fromNullable(Req.Cookie)).flatMap((_) =>
136
+ const makeReqCookieSchema = Effect(Option.fromNullable(Req.Cookie)).flatMap((_) =>
115
137
  _.match({
116
- onNone: () => Effect.sync(() => Option.none()),
138
+ onNone: () => Effect(Option.none),
117
139
  onSome: (_) => jsonSchema(_).map(Option.some)
118
140
  })
119
141
  )
120
- const makeReqPathSchema = Effect.sync(() => Option.fromNullable(Req.Path)).flatMap((_) =>
142
+ const makeReqPathSchema = Effect(Option.fromNullable(Req.Path)).flatMap((_) =>
121
143
  _.match({
122
- onNone: () => Effect.sync(() => Option.none()),
144
+ onNone: () => Effect(Option.none),
123
145
  onSome: (_) => jsonSchema(_).map(Option.some)
124
146
  })
125
147
  )
126
- const makeReqBodySchema = Effect.sync(() => Option.fromNullable(Req.Body)).flatMap((_) =>
148
+ const makeReqBodySchema = Effect(Option.fromNullable(Req.Body)).flatMap((_) =>
127
149
  _.match({
128
- onNone: () => Effect.sync(() => Option.none()),
150
+ onNone: () => Effect(Option.none),
129
151
  onSome: (_) => jsonSchema(_).map(Option.some)
130
152
  })
131
153
  )
@@ -136,7 +158,7 @@ export function makeFromSchema<ResA>(
136
158
  function makeParameters(inn: ParameterLocation) {
137
159
  return (a: Option<JSONSchema | SubSchema>) => {
138
160
  return a
139
- .flatMap((o) => (isObjectSchema(o) ? Option.some(o) : Option.none()))
161
+ .flatMap((o) => (isObjectSchema(o) ? Option(o) : Option.none))
140
162
  .map((x) => {
141
163
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
142
164
  return Object.keys(x.properties!).map((p) => {
@@ -1,16 +1,15 @@
1
1
  import { RequestId } from "@effect-app/prelude/ids"
2
2
  import { RequestContext } from "../RequestContext.js"
3
- import { RequestContextContainer, RequestContextContainerImpl } from "../services/RequestContextContainer.js"
3
+ import { RequestContextContainer } from "../services/RequestContextContainer.js"
4
4
 
5
5
  /**
6
6
  * @tsplus fluent effect/io/Effect setupRequestFromWith
7
7
  */
8
8
  export function setupReq3<R, E, A>(self: Effect<R, E, A>, name: string) {
9
- return makeInternalRequestContext(name).flatMap((rc) =>
10
- self
9
+ return makeInternalRequestContext(name)
10
+ .flatMap((rc) => RequestContextContainer.flatMap((_) => _.start(rc)))
11
+ > self
11
12
  .withRequestSpan
12
- .provideService(RequestContextContainer, new RequestContextContainerImpl(rc))
13
- )
14
13
  }
15
14
 
16
15
  function makeInternalRequestContext(name: string) {
@@ -27,8 +26,10 @@ function makeInternalRequestContext(name: string) {
27
26
 
28
27
  /** @tsplus getter effect/io/Effect withRequestSpan */
29
28
  export const withRequestSpan = <R, E, A>(f: Effect<R, E, A>) =>
30
- RequestContextContainer.flatMap((c) => c.requestContext).flatMap((ctx) =>
31
- f
32
- .withSpan(`request[${ctx.name}]#${ctx.id}`)
33
- .withLogSpan("request")
34
- )
29
+ RequestContextContainer
30
+ .get
31
+ .flatMap((ctx) =>
32
+ f
33
+ .withSpan(`request[${ctx.name}]#${ctx.id}`)
34
+ .withLogSpan("request")
35
+ )
@@ -73,5 +73,5 @@ export function reportMessage(message: string) {
73
73
  }
74
74
 
75
75
  export function reportMessageM(message: string) {
76
- return Effect.sync(() => reportMessage(message))
76
+ return Effect(reportMessage(message))
77
77
  }
@@ -32,7 +32,7 @@ const makeLiveSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subje
32
32
  void sgMail.send(renderedMsg, false, (err, result) =>
33
33
  err
34
34
  ? cb(Effect.fail(err))
35
- : cb(Effect.sync(() => result)))
35
+ : cb(Effect(result)))
36
36
  )
37
37
  )
38
38
 
@@ -8,7 +8,7 @@ const reportAppError = reportError((cause) => new RequestException(cause))
8
8
 
9
9
  const make = Effect.sync((): Operations => {
10
10
  const ops = new Map<OperationId, Operation>()
11
- const makeOp = Effect.sync(() => OperationId.make())
11
+ const makeOp = Effect(OperationId.make())
12
12
 
13
13
  const cleanup = Effect.sync(() => {
14
14
  const before = new Date().subHours(1)
@@ -29,7 +29,7 @@ const make = Effect.sync((): Operations => {
29
29
  })
30
30
  }
31
31
  function findOp(id: OperationId) {
32
- return Effect.sync(() => Option.fromNullable(ops.get(id)))
32
+ return Effect(Option.fromNullable(ops.get(id)))
33
33
  }
34
34
  function finishOp(id: OperationId, exit: Exit<unknown, unknown>) {
35
35
  return findOp(id).flatMap((_) =>
@@ -52,8 +52,8 @@ const make = Effect.sync((): Operations => {
52
52
  .failureOption
53
53
  .flatMap((_) =>
54
54
  typeof _ === "object" && _ !== null && "message" in _ && LongString.Guard(_.message)
55
- ? Option.some(_.message)
56
- : Option.none()
55
+ ? Option(_.message)
56
+ : Option.none
57
57
  )
58
58
  .value ?? null
59
59
  })
@@ -75,7 +75,7 @@ const make = Effect.sync((): Operations => {
75
75
  cleanup,
76
76
  register: makeOp
77
77
  .tap((id) =>
78
- EffectX.annotateLogscoped("operationId", id)
78
+ Effect.annotateLogscoped("operationId", id)
79
79
  > addOp(id).acquireRelease(
80
80
  (_, exit) => finishOp(id, exit)
81
81
  )
@@ -42,7 +42,7 @@ export function reportNonInterruptedFailure(context?: Record<string, unknown>) {
42
42
  .exit
43
43
  .flatMap((result) =>
44
44
  result.match(
45
- { onFailure: (cause) => report(cause).map(() => result), onSuccess: () => Effect.sync(() => result) }
45
+ { onFailure: (cause) => report(cause).map(() => result), onSuccess: () => Effect(result) }
46
46
  )
47
47
  )
48
48
  }
@@ -43,7 +43,7 @@ export function makeMemQueue<
43
43
  messages
44
44
  .forEachEffect((m) =>
45
45
  // we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
46
- Effect.sync(() =>
46
+ Effect(
47
47
  JSON.stringify(
48
48
  encoder({ body: m, meta: requestContext })
49
49
  )
@@ -60,7 +60,7 @@ export function makeMemQueue<
60
60
  const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName })
61
61
  const processMessage = (msg: string) =>
62
62
  // we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
63
- Effect.sync(() => JSON.parse(msg))
63
+ Effect(JSON.parse(msg))
64
64
  .flatMap(parseDrain)
65
65
  .orDie
66
66
  .flatMap(({ body, meta }) =>
@@ -81,7 +81,7 @@ export function makeServiceBusQueue<
81
81
  return yield* $(
82
82
  subscribe({
83
83
  processMessage: (x) => processMessage(x.body).uninterruptible,
84
- processError: (err) => Effect.sync(() => captureException(err.error))
84
+ processError: (err) => Effect(captureException(err.error))
85
85
  })
86
86
  .provide(receiverLayer)
87
87
  )
@@ -155,7 +155,7 @@ export function project<
155
155
  self: Repository<T, PM, Evt, ItemType>,
156
156
  map: { filter?: Filter<PM>; collect?: (t: PM) => Option<S>; limit?: number; skip?: number }
157
157
  ) {
158
- return self.projectEffect(Effect.sync(() => map))
158
+ return self.projectEffect(Effect(map))
159
159
  }
160
160
 
161
161
  /**
@@ -235,7 +235,7 @@ export function query<
235
235
  // TODO: think about collectPM, collectE, and collect(Parsed)
236
236
  map: { filter?: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number }
237
237
  ) {
238
- return self.queryEffect(Effect.sync(() => map))
238
+ return self.queryEffect(Effect(map))
239
239
  }
240
240
 
241
241
  /**
@@ -252,7 +252,7 @@ export function queryOne<
252
252
  // TODO: think about collectPM, collectE, and collect(Parsed)
253
253
  map: { filter?: Filter<PM>; collect?: (t: T) => Option<S> }
254
254
  ) {
255
- return self.queryOneEffect(Effect.sync(() => map))
255
+ return self.queryOneEffect(Effect(map))
256
256
  }
257
257
 
258
258
  /**
@@ -290,7 +290,7 @@ export function queryAndSavePure<
290
290
  // TODO: think about collectPM, collectE, and collect(Parsed)
291
291
  map: { filter: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number }
292
292
  ) {
293
- return self.queryAndSavePureEffect(Effect.sync(() => map))
293
+ return self.queryAndSavePureEffect(Effect(map))
294
294
  }
295
295
 
296
296
  /**
@@ -443,7 +443,7 @@ export function queryAndSavePureBatched<
443
443
  map: { filter: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number },
444
444
  batchSize = 100
445
445
  ) {
446
- return self.queryAndSavePureEffectBatched(Effect.sync(() => map), batchSize)
446
+ return self.queryAndSavePureEffectBatched(Effect(map), batchSize)
447
447
  }
448
448
 
449
449
  /**
@@ -536,7 +536,7 @@ export interface OneDSLExt<T, Evt> {
536
536
  * @tsplus fluent DSLExt updateWith
537
537
  */
538
538
  export function updateWithOne<T, Evt, S1 extends T, S2 extends T>(self: OneDSL<T, Evt>, upd: (item: S1) => S2) {
539
- return self.update((_: S1) => Effect.sync(() => upd(_)))
539
+ return self.update((_: S1) => Effect(upd(_)))
540
540
  }
541
541
 
542
542
  /**
@@ -546,7 +546,7 @@ export function updateWith<T, Evt, S1 extends T, S2 extends T>(
546
546
  self: AllDSL<T, Evt>,
547
547
  upd: (item: S1[]) => S2[]
548
548
  ) {
549
- return self.update((_: S1[]) => Effect.sync(() => upd(_)))
549
+ return self.update((_: S1[]) => Effect(upd(_)))
550
550
  }
551
551
 
552
552
  export function makeOneDSL<T, Evt>(): OneDSL<T, Evt> {
@@ -603,14 +603,14 @@ export function makeDSL<S1, S2, Evt>() {
603
603
  export interface DSLExt<S1, S2, Evt> extends ReturnType<typeof makeDSL<S1, S2, Evt>> {}
604
604
 
605
605
  export function ifAny<T, R, E, A>(fn: (items: NonEmptyReadonlyArray<T>) => Effect<R, E, A>) {
606
- return (items: Iterable<T>) => Effect.sync(() => items.toNonEmptyArray).flatMapOpt(fn)
606
+ return (items: Iterable<T>) => Effect(items.toNonEmptyArray).flatMapOpt(fn)
607
607
  }
608
608
 
609
609
  /**
610
610
  * @tsplus fluent Iterable ifAny
611
611
  */
612
612
  export function ifAny_<T, R, E, A>(items: Iterable<T>, fn: (items: NonEmptyReadonlyArray<T>) => Effect<R, E, A>) {
613
- return Effect.sync(() => items.toNonEmptyArray).flatMapOpt(fn)
613
+ return Effect(items.toNonEmptyArray).flatMapOpt(fn)
614
614
  }
615
615
 
616
616
  /**
@@ -5,9 +5,10 @@ import { ContextMap, StoreMaker } from "./Store.js"
5
5
  import type { Filter, StoreConfig, Where } from "./Store.js"
6
6
  import type {} from "effect/Equal"
7
7
  import type {} from "effect/Hash"
8
+ import type { Opt } from "@effect-app/core/Option"
8
9
  import { makeCodec } from "@effect-app/infra/api/codec"
9
10
  import { makeFilters } from "@effect-app/infra/filter"
10
- import type { Option, Schema } from "@effect-app/prelude"
11
+ import type { Schema } from "@effect-app/prelude"
11
12
  import { EParserFor } from "@effect-app/prelude/schema"
12
13
  import type { InvalidStateError, OptimisticConcurrencyException } from "../errors.js"
13
14
 
@@ -20,7 +21,7 @@ export const RepositoryBase = <Service>() => {
20
21
  ) => {
21
22
  abstract class RepositoryBaseC implements Repository<T, PM, Evt, ItemType> {
22
23
  itemType: ItemType = itemType
23
- abstract find: (id: T["id"]) => Effect<ContextMap | RequestContextContainer, never, Option<T>>
24
+ abstract find: (id: T["id"]) => Effect<ContextMap | RequestContextContainer, never, Opt<T>>
24
25
  abstract all: Effect<ContextMap, never, T[]>
25
26
  abstract saveAndPublish: (
26
27
  items: Iterable<T>,
@@ -129,8 +130,7 @@ export function makeRepo<
129
130
  }
130
131
 
131
132
  const saveAllE = (a: Iterable<E>) =>
132
- Effect
133
- .sync(() => a.toNonEmptyArray)
133
+ Effect(a.toNonEmptyArray)
134
134
  .flatMapOpt((a) =>
135
135
  Do(($) => {
136
136
  const { get, set } = $(ContextMap)
@@ -145,8 +145,7 @@ export function makeRepo<
145
145
 
146
146
  const saveAndPublish = (items: Iterable<T>, events: Iterable<Evt> = []) =>
147
147
  saveAll(items)
148
- > Effect
149
- .sync(() => events.toNonEmptyArray)
148
+ > Effect(events.toNonEmptyArray)
150
149
  // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
151
150
  .flatMapOpt(publishEvents)
152
151
 
@@ -160,8 +159,7 @@ export function makeRepo<
160
159
  set(e.id, undefined)
161
160
  }
162
161
  yield* $(
163
- Effect
164
- .sync(() => events.toNonEmptyArray)
162
+ Effect(events.toNonEmptyArray)
165
163
  // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
166
164
  .flatMapOpt(publishEvents)
167
165
  )
@@ -1,3 +1,4 @@
1
+ import { RequestId } from "@effect-app/prelude/ids"
1
2
  import { RequestContext } from "../RequestContext.js"
2
3
 
3
4
  /**
@@ -5,7 +6,8 @@ import { RequestContext } from "../RequestContext.js"
5
6
  */
6
7
  export abstract class RequestContextContainer extends TagClass<RequestContextContainer>() {
7
8
  abstract readonly requestContext: Effect<never, never, RequestContext>
8
- abstract readonly update: (f: (rc: RequestContext) => RequestContext) => Effect<never, never, void>
9
+ abstract readonly update: (f: (rc: RequestContext) => RequestContext) => Effect<never, never, RequestContext>
10
+ abstract readonly start: (f: RequestContext) => Effect<never, never, void>
9
11
  static get get(): Effect<RequestContextContainer, never, RequestContext> {
10
12
  return RequestContextContainer.flatMap((_) => _.requestContext)
11
13
  }
@@ -15,16 +17,18 @@ export abstract class RequestContextContainer extends TagClass<RequestContextCon
15
17
  .flatMap((requestContext) =>
16
18
  requestContext.isSome()
17
19
  ? requestContext.value.requestContext.map(Option.some)
18
- : Effect.sync(() => Option.none())
20
+ : Effect(Option.none)
19
21
  )
20
22
  }
21
23
  }
22
24
 
23
25
  export class RequestContextContainerImpl extends RequestContextContainer {
24
- #ref: Ref<RequestContext>
25
- constructor(inp: RequestContext.ConstructorInput) {
26
+ #ref: FiberRef<RequestContext>
27
+ constructor() {
26
28
  super()
27
- this.#ref = Ref.unsafeMake<RequestContext>(new RequestContext(inp))
29
+ this.#ref = FiberRef.unsafeMake<RequestContext>(
30
+ new RequestContext({ name: ReasonableString("root"), rootId: RequestId("root"), locale: "en" })
31
+ )
28
32
  }
29
33
 
30
34
  override get requestContext() {
@@ -32,13 +36,14 @@ export class RequestContextContainerImpl extends RequestContextContainer {
32
36
  }
33
37
 
34
38
  override update = (f: (a: RequestContext) => RequestContext) => this.#ref.getAndUpdate(f)
39
+ override start = (a: RequestContext) => this.#ref.set(a)
35
40
  }
36
41
 
37
42
  /**
38
43
  * @tsplus static RequestContextContainer.Ops live
39
44
  */
40
- export function live(inp: RequestContext.ConstructorInput) {
41
- return new RequestContextContainerImpl(inp)
45
+ export function live() {
46
+ return new RequestContextContainerImpl()
42
47
  }
43
48
 
44
49
  /** @tsplus static RequestContext.Ops Tag */