@livestore/utils 0.4.0-dev.9 → 0.5.0-dev.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 (316) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/NoopTracer.d.ts +7 -8
  3. package/dist/NoopTracer.d.ts.map +1 -1
  4. package/dist/NoopTracer.js +13 -15
  5. package/dist/NoopTracer.js.map +1 -1
  6. package/dist/NoopTracer.test.d.ts +2 -0
  7. package/dist/NoopTracer.test.d.ts.map +1 -0
  8. package/dist/NoopTracer.test.js +17 -0
  9. package/dist/NoopTracer.test.js.map +1 -0
  10. package/dist/binary.js +1 -1
  11. package/dist/binary.js.map +1 -1
  12. package/dist/browser/Opfs/Opfs.d.ts +201 -0
  13. package/dist/browser/Opfs/Opfs.d.ts.map +1 -0
  14. package/dist/browser/Opfs/Opfs.js +170 -0
  15. package/dist/browser/Opfs/Opfs.js.map +1 -0
  16. package/dist/browser/Opfs/debug-utils.d.ts +20 -0
  17. package/dist/browser/Opfs/debug-utils.d.ts.map +1 -0
  18. package/dist/browser/Opfs/debug-utils.js +95 -0
  19. package/dist/browser/Opfs/debug-utils.js.map +1 -0
  20. package/dist/browser/Opfs/mod.d.ts +4 -0
  21. package/dist/browser/Opfs/mod.d.ts.map +1 -0
  22. package/dist/browser/Opfs/mod.js +4 -0
  23. package/dist/browser/Opfs/mod.js.map +1 -0
  24. package/dist/browser/Opfs/utils.d.ts +71 -0
  25. package/dist/browser/Opfs/utils.d.ts.map +1 -0
  26. package/dist/browser/Opfs/utils.js +227 -0
  27. package/dist/browser/Opfs/utils.js.map +1 -0
  28. package/dist/browser/QuotaExceededError.d.ts +60 -0
  29. package/dist/browser/QuotaExceededError.d.ts.map +1 -0
  30. package/dist/browser/QuotaExceededError.js +2 -0
  31. package/dist/browser/QuotaExceededError.js.map +1 -0
  32. package/dist/browser/WebChannelBrowser.d.ts +22 -0
  33. package/dist/browser/WebChannelBrowser.d.ts.map +1 -0
  34. package/dist/browser/WebChannelBrowser.js +87 -0
  35. package/dist/browser/WebChannelBrowser.js.map +1 -0
  36. package/dist/browser/WebError.d.ts +389 -0
  37. package/dist/browser/WebError.d.ts.map +1 -0
  38. package/dist/browser/WebError.js +423 -0
  39. package/dist/browser/WebError.js.map +1 -0
  40. package/dist/browser/WebError.test.d.ts +2 -0
  41. package/dist/browser/WebError.test.d.ts.map +1 -0
  42. package/dist/browser/WebError.test.js +46 -0
  43. package/dist/browser/WebError.test.js.map +1 -0
  44. package/dist/browser/WebLock.d.ts.map +1 -0
  45. package/dist/{effect → browser}/WebLock.js +21 -21
  46. package/dist/browser/WebLock.js.map +1 -0
  47. package/dist/{browser.d.ts → browser/detect.d.ts} +1 -1
  48. package/dist/browser/detect.d.ts.map +1 -0
  49. package/dist/{browser.js → browser/detect.js} +7 -7
  50. package/dist/browser/detect.js.map +1 -0
  51. package/dist/browser/mod.d.ts +8 -0
  52. package/dist/browser/mod.d.ts.map +1 -0
  53. package/dist/browser/mod.js +8 -0
  54. package/dist/browser/mod.js.map +1 -0
  55. package/dist/cuid/cuid.browser.js +1 -1
  56. package/dist/cuid/cuid.browser.js.map +1 -1
  57. package/dist/cuid/cuid.node.js +1 -1
  58. package/dist/cuid/cuid.node.js.map +1 -1
  59. package/dist/effect/Debug.d.ts +38 -0
  60. package/dist/effect/Debug.d.ts.map +1 -0
  61. package/dist/effect/Debug.js +350 -0
  62. package/dist/effect/Debug.js.map +1 -0
  63. package/dist/effect/Effect.d.ts +91 -22
  64. package/dist/effect/Effect.d.ts.map +1 -1
  65. package/dist/effect/Effect.js +126 -38
  66. package/dist/effect/Effect.js.map +1 -1
  67. package/dist/effect/Effect.test.d.ts +2 -0
  68. package/dist/effect/Effect.test.d.ts.map +1 -0
  69. package/dist/effect/Effect.test.js +72 -0
  70. package/dist/effect/Effect.test.js.map +1 -0
  71. package/dist/effect/Error.d.ts +4 -6
  72. package/dist/effect/Error.d.ts.map +1 -1
  73. package/dist/effect/Error.js +1 -1
  74. package/dist/effect/Error.js.map +1 -1
  75. package/dist/effect/Logger.d.ts +0 -6
  76. package/dist/effect/Logger.d.ts.map +1 -1
  77. package/dist/effect/Logger.js +0 -32
  78. package/dist/effect/Logger.js.map +1 -1
  79. package/dist/effect/OtelTracer.d.ts +1 -1
  80. package/dist/effect/OtelTracer.d.ts.map +1 -1
  81. package/dist/effect/OtelTracer.js +2 -3
  82. package/dist/effect/OtelTracer.js.map +1 -1
  83. package/dist/effect/RpcClient.d.ts +7 -7
  84. package/dist/effect/RpcClient.d.ts.map +1 -1
  85. package/dist/effect/RpcClient.js +74 -54
  86. package/dist/effect/RpcClient.js.map +1 -1
  87. package/dist/effect/Schedule.d.ts +1 -1
  88. package/dist/effect/Schedule.d.ts.map +1 -1
  89. package/dist/effect/Schedule.js +2 -2
  90. package/dist/effect/Schedule.js.map +1 -1
  91. package/dist/effect/Schema/debug-diff.d.ts +1 -1
  92. package/dist/effect/Schema/debug-diff.d.ts.map +1 -1
  93. package/dist/effect/Schema/debug-diff.js +9 -10
  94. package/dist/effect/Schema/debug-diff.js.map +1 -1
  95. package/dist/effect/Schema/debug-diff.test.js +7 -4
  96. package/dist/effect/Schema/debug-diff.test.js.map +1 -1
  97. package/dist/effect/Schema/index.d.ts +28 -18
  98. package/dist/effect/Schema/index.d.ts.map +1 -1
  99. package/dist/effect/Schema/index.js +55 -28
  100. package/dist/effect/Schema/index.js.map +1 -1
  101. package/dist/effect/Stream.d.ts +13 -5
  102. package/dist/effect/Stream.d.ts.map +1 -1
  103. package/dist/effect/Stream.js +19 -12
  104. package/dist/effect/Stream.js.map +1 -1
  105. package/dist/effect/Stream.test.js +12 -12
  106. package/dist/effect/Stream.test.js.map +1 -1
  107. package/dist/effect/Subscribable.d.ts +9 -3
  108. package/dist/effect/Subscribable.d.ts.map +1 -1
  109. package/dist/effect/Subscribable.js +20 -35
  110. package/dist/effect/Subscribable.js.map +1 -1
  111. package/dist/effect/SubscriptionRef.d.ts +5 -6
  112. package/dist/effect/SubscriptionRef.d.ts.map +1 -1
  113. package/dist/effect/SubscriptionRef.js +2 -3
  114. package/dist/effect/SubscriptionRef.js.map +1 -1
  115. package/dist/effect/TaskTracing.d.ts +1 -1
  116. package/dist/effect/TaskTracing.d.ts.map +1 -1
  117. package/dist/effect/TaskTracing.js +12 -16
  118. package/dist/effect/TaskTracing.js.map +1 -1
  119. package/dist/effect/WebChannel/WebChannel.d.ts +11 -30
  120. package/dist/effect/WebChannel/WebChannel.d.ts.map +1 -1
  121. package/dist/effect/WebChannel/WebChannel.js +70 -125
  122. package/dist/effect/WebChannel/WebChannel.js.map +1 -1
  123. package/dist/effect/WebChannel/WebChannel.test.js +16 -16
  124. package/dist/effect/WebChannel/WebChannel.test.js.map +1 -1
  125. package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts.map +1 -1
  126. package/dist/effect/WebChannel/broadcastChannelWithAck.js +20 -13
  127. package/dist/effect/WebChannel/broadcastChannelWithAck.js.map +1 -1
  128. package/dist/effect/WebChannel/common.d.ts +17 -18
  129. package/dist/effect/WebChannel/common.d.ts.map +1 -1
  130. package/dist/effect/WebChannel/common.js +7 -7
  131. package/dist/effect/WebChannel/common.js.map +1 -1
  132. package/dist/effect/WebSocket.d.ts +4 -6
  133. package/dist/effect/WebSocket.d.ts.map +1 -1
  134. package/dist/effect/WebSocket.js +17 -17
  135. package/dist/effect/WebSocket.js.map +1 -1
  136. package/dist/effect/WebSocket.test.js +2 -2
  137. package/dist/effect/WebSocket.test.js.map +1 -1
  138. package/dist/effect/mod.browser-build.test.d.ts +2 -0
  139. package/dist/effect/mod.browser-build.test.d.ts.map +1 -0
  140. package/dist/effect/mod.browser-build.test.js +18 -0
  141. package/dist/effect/mod.browser-build.test.js.map +1 -0
  142. package/dist/effect/mod.d.ts +30 -0
  143. package/dist/effect/mod.d.ts.map +1 -0
  144. package/dist/effect/mod.js +30 -0
  145. package/dist/effect/mod.js.map +1 -0
  146. package/dist/effect/spanEvent.d.ts +12 -0
  147. package/dist/effect/spanEvent.d.ts.map +1 -0
  148. package/dist/effect/spanEvent.js +12 -0
  149. package/dist/effect/spanEvent.js.map +1 -0
  150. package/dist/effect/spanEvent.test.d.ts +2 -0
  151. package/dist/effect/spanEvent.test.d.ts.map +1 -0
  152. package/dist/effect/spanEvent.test.js +79 -0
  153. package/dist/effect/spanEvent.test.js.map +1 -0
  154. package/dist/env.d.ts.map +1 -1
  155. package/dist/env.js +1 -1
  156. package/dist/env.js.map +1 -1
  157. package/dist/fast-deep-equal.d.ts.map +1 -1
  158. package/dist/fast-deep-equal.js +9 -10
  159. package/dist/fast-deep-equal.js.map +1 -1
  160. package/dist/global.d.ts +3 -0
  161. package/dist/global.d.ts.map +1 -1
  162. package/dist/global.js.map +1 -1
  163. package/dist/misc.d.ts +9 -1
  164. package/dist/misc.d.ts.map +1 -1
  165. package/dist/misc.js +12 -4
  166. package/dist/misc.js.map +1 -1
  167. package/dist/mod.d.ts +177 -20
  168. package/dist/mod.d.ts.map +1 -1
  169. package/dist/mod.js +159 -22
  170. package/dist/mod.js.map +1 -1
  171. package/dist/node/mod.d.ts +45 -6
  172. package/dist/node/mod.d.ts.map +1 -1
  173. package/dist/node/mod.js +51 -9
  174. package/dist/node/mod.js.map +1 -1
  175. package/dist/object/index.d.ts +0 -9
  176. package/dist/object/index.d.ts.map +1 -1
  177. package/dist/object/index.js +0 -9
  178. package/dist/object/index.js.map +1 -1
  179. package/dist/object/stringify-object.js +2 -2
  180. package/dist/object/stringify-object.js.map +1 -1
  181. package/dist/object/stringify-object.test.js.map +1 -1
  182. package/dist/qr.d.ts +38 -0
  183. package/dist/qr.d.ts.map +1 -0
  184. package/dist/qr.js +109 -0
  185. package/dist/qr.js.map +1 -0
  186. package/dist/set.js +1 -1
  187. package/dist/set.js.map +1 -1
  188. package/dist/string.d.ts +0 -2
  189. package/dist/string.d.ts.map +1 -1
  190. package/dist/string.js +0 -2
  191. package/dist/string.js.map +1 -1
  192. package/package.json +61 -55
  193. package/src/NoopTracer.test.ts +20 -0
  194. package/src/NoopTracer.ts +28 -37
  195. package/src/binary.ts +1 -1
  196. package/src/browser/Opfs/Opfs.ts +463 -0
  197. package/src/browser/Opfs/debug-utils.ts +154 -0
  198. package/src/browser/Opfs/mod.ts +3 -0
  199. package/src/browser/Opfs/utils.ts +297 -0
  200. package/src/browser/QuotaExceededError.ts +60 -0
  201. package/src/browser/WebChannelBrowser.ts +145 -0
  202. package/src/browser/WebError.test.ts +66 -0
  203. package/src/browser/WebError.ts +587 -0
  204. package/src/{effect → browser}/WebLock.ts +27 -28
  205. package/src/{browser.ts → browser/detect.ts} +6 -6
  206. package/src/browser/mod.ts +8 -0
  207. package/src/cuid/cuid.browser.ts +1 -1
  208. package/src/cuid/cuid.node.ts +1 -1
  209. package/src/effect/Debug.ts +477 -0
  210. package/src/effect/Effect.test.ts +117 -0
  211. package/src/effect/Effect.ts +174 -79
  212. package/src/effect/Error.ts +1 -1
  213. package/src/effect/Logger.ts +0 -48
  214. package/src/effect/OtelTracer.ts +2 -3
  215. package/src/effect/RpcClient.ts +85 -65
  216. package/src/effect/Schedule.ts +4 -5
  217. package/src/effect/Schema/debug-diff.test.ts +7 -7
  218. package/src/effect/Schema/debug-diff.ts +11 -12
  219. package/src/effect/Schema/index.ts +121 -57
  220. package/src/effect/Stream.test.ts +14 -13
  221. package/src/effect/Stream.ts +23 -16
  222. package/src/effect/Subscribable.ts +31 -42
  223. package/src/effect/SubscriptionRef.ts +9 -13
  224. package/src/effect/TaskTracing.ts +13 -16
  225. package/src/effect/WebChannel/WebChannel.test.ts +24 -24
  226. package/src/effect/WebChannel/WebChannel.ts +102 -192
  227. package/src/effect/WebChannel/broadcastChannelWithAck.ts +25 -15
  228. package/src/effect/WebChannel/common.ts +16 -17
  229. package/src/effect/WebSocket.test.ts +2 -2
  230. package/src/effect/WebSocket.ts +20 -16
  231. package/src/effect/mod.browser-build.test.ts +19 -0
  232. package/src/effect/{index.ts → mod.ts} +43 -69
  233. package/src/effect/spanEvent.test.ts +92 -0
  234. package/src/effect/spanEvent.ts +17 -0
  235. package/src/env.ts +2 -1
  236. package/src/fast-deep-equal.ts +9 -10
  237. package/src/global.ts +4 -2
  238. package/src/misc.ts +13 -5
  239. package/src/mod.ts +188 -32
  240. package/src/node/mod.ts +57 -12
  241. package/src/object/index.ts +0 -24
  242. package/src/object/stringify-object.test.ts +1 -0
  243. package/src/object/stringify-object.ts +2 -2
  244. package/src/qr.ts +125 -0
  245. package/src/set.ts +1 -1
  246. package/src/string.ts +0 -3
  247. package/dist/.tsbuildinfo.json +0 -1
  248. package/dist/browser.d.ts.map +0 -1
  249. package/dist/browser.js.map +0 -1
  250. package/dist/effect/BucketQueue.d.ts +0 -20
  251. package/dist/effect/BucketQueue.d.ts.map +0 -1
  252. package/dist/effect/BucketQueue.js +0 -34
  253. package/dist/effect/BucketQueue.js.map +0 -1
  254. package/dist/effect/Scheduler.d.ts +0 -4
  255. package/dist/effect/Scheduler.d.ts.map +0 -1
  256. package/dist/effect/Scheduler.js +0 -9
  257. package/dist/effect/Scheduler.js.map +0 -1
  258. package/dist/effect/ServiceContext.d.ts +0 -37
  259. package/dist/effect/ServiceContext.d.ts.map +0 -1
  260. package/dist/effect/ServiceContext.js +0 -55
  261. package/dist/effect/ServiceContext.js.map +0 -1
  262. package/dist/effect/WebLock.d.ts.map +0 -1
  263. package/dist/effect/WebLock.js.map +0 -1
  264. package/dist/effect/index.d.ts +0 -32
  265. package/dist/effect/index.d.ts.map +0 -1
  266. package/dist/effect/index.js +0 -35
  267. package/dist/effect/index.js.map +0 -1
  268. package/dist/guards.d.ts +0 -6
  269. package/dist/guards.d.ts.map +0 -1
  270. package/dist/guards.js +0 -6
  271. package/dist/guards.js.map +0 -1
  272. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts +0 -4
  273. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts.map +0 -1
  274. package/dist/node/ChildProcessRunner/ChildProcessRunner.js +0 -122
  275. package/dist/node/ChildProcessRunner/ChildProcessRunner.js.map +0 -1
  276. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts +0 -2
  277. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts.map +0 -1
  278. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +0 -218
  279. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js.map +0 -1
  280. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +0 -84
  281. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts.map +0 -1
  282. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js +0 -68
  283. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js.map +0 -1
  284. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts +0 -2
  285. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts.map +0 -1
  286. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +0 -52
  287. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js.map +0 -1
  288. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts +0 -23
  289. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts.map +0 -1
  290. package/dist/node/ChildProcessRunner/ChildProcessWorker.js +0 -138
  291. package/dist/node/ChildProcessRunner/ChildProcessWorker.js.map +0 -1
  292. package/dist/object/omit.d.ts +0 -3
  293. package/dist/object/omit.d.ts.map +0 -1
  294. package/dist/object/omit.js +0 -14
  295. package/dist/object/omit.js.map +0 -1
  296. package/dist/object/pick.d.ts +0 -14
  297. package/dist/object/pick.d.ts.map +0 -1
  298. package/dist/object/pick.js +0 -17
  299. package/dist/object/pick.js.map +0 -1
  300. package/dist/time.d.ts +0 -12
  301. package/dist/time.d.ts.map +0 -1
  302. package/dist/time.js +0 -22
  303. package/dist/time.js.map +0 -1
  304. package/src/effect/BucketQueue.ts +0 -49
  305. package/src/effect/Scheduler.ts +0 -13
  306. package/src/effect/ServiceContext.ts +0 -108
  307. package/src/guards.ts +0 -8
  308. package/src/node/ChildProcessRunner/ChildProcessRunner.ts +0 -135
  309. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +0 -302
  310. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts +0 -78
  311. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +0 -66
  312. package/src/node/ChildProcessRunner/ChildProcessWorker.ts +0 -168
  313. package/src/object/omit.ts +0 -17
  314. package/src/object/pick.ts +0 -27
  315. package/src/time.ts +0 -25
  316. /package/dist/{effect → browser}/WebLock.d.ts +0 -0
@@ -1,42 +1,111 @@
1
- import { type Context, Deferred, Duration, Effect, Scope, type Stream } from 'effect';
2
- import type { UnknownException } from 'effect/Cause';
3
- import { type LazyArg } from 'effect/Function';
4
- import type { Predicate, Refinement } from 'effect/Predicate';
1
+ import { Cause, type Context, Deferred, Duration, Effect, Predicate, Scope, type Stream } from 'effect';
5
2
  export * from 'effect/Effect';
6
- /** Same as `Effect.scopeWith` but with a `CloseableScope` instead of a `Scope`. */
7
- export declare const scopeWithCloseable: <R, E, A>(fn: (scope: Scope.CloseableScope) => Effect.Effect<A, E, R | Scope.Scope>) => Effect.Effect<A, E, R | Scope.Scope>;
3
+ export { spanEvent } from './spanEvent.ts';
4
+ /** Same as `Effect.scopeWith` but with a closeable `Scope`. */
5
+ export declare const scopeWithCloseable: <R, E, A>(fn: (scope: Scope.Closeable) => Effect.Effect<A, E, R | Scope.Scope>) => Effect.Effect<A, E, R | Scope.Scope>;
8
6
  export type SyncOrPromiseOrEffect<TResult, TError = never, TContext = never> = TResult | Promise<TResult> | Effect.Effect<TResult, TError, TContext>;
9
- export declare const tryAll: <Res>(fn: () => Res) => Res extends Effect.Effect<infer A, infer E, never> ? Effect.Effect<A, E | UnknownException, never> : Res extends Promise<infer A> ? Effect.Effect<A, UnknownException, never> : Effect.Effect<Res, UnknownException, never>;
7
+ /**
8
+ * Creates an Effect from an operation that may return a value, a Promise-like value, or another Effect.
9
+ *
10
+ * @remarks
11
+ * Synchronous values succeed directly, and Promise-like values are awaited. Synchronous throws and Promise rejections
12
+ * are mapped to `Cause.UnknownError`. When the operation returns an Effect, that Effect is executed rather than
13
+ * produced as a successful value; its failures and service requirements are preserved.
14
+ *
15
+ * @param operation - A callback that may return a synchronous value, a Promise-like value, or an Effect
16
+ * @returns An Effect representing the normalized outcome of the operation
17
+ */
18
+ export declare function trySyncOrPromiseOrEffect<Return>(operation: () => Return): Effect.Effect<Return extends Effect.Effect<infer A, infer _E, infer _R> ? A : Return extends PromiseLike<infer A> ? A : Return, Cause.UnknownError | (Return extends Effect.Effect<infer _A, infer E, infer _R> ? E : never), Return extends Effect.Effect<infer _A, infer _E, infer R> ? R : never>;
10
19
  export declare const acquireReleaseLog: (label: string) => Effect.Effect<void, never, Scope.Scope>;
11
20
  export declare const addFinalizerLog: (...msgs: any[]) => Effect.Effect<void, never, Scope.Scope>;
12
21
  export declare const logBefore: (...msgs: any[]) => <A, E, R>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
13
22
  /** Logs both on errors and defects */
14
23
  export declare const tapCauseLogPretty: <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
24
+ /**
25
+ * Creates a defect, pausing at a breakpoint in development.
26
+ *
27
+ * @param msg - The error message to include in the defect.
28
+ * @param args - Arbitrary arguments available for inspection during debugging.
29
+ *
30
+ * @see {@link shouldNeverHappen} for the non-Effect equivalent that throws synchronously.
31
+ * @see {@link orDieDebugger}
32
+ */
33
+ export declare const dieDebugger: (msg: string, ...args: ReadonlyArray<unknown>) => Effect.Effect<never>;
34
+ /**
35
+ * Converts a failure into a defect, pausing at a breakpoint in development.
36
+ *
37
+ * @param self - The effect on which to apply the operation.
38
+ *
39
+ * @see {@link Effect.orDie}
40
+ * @see {@link dieDebugger}
41
+ */
42
+ export declare const orDieDebugger: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, never, R>;
15
43
  export declare const ignoreIf: {
16
- <E, EB extends E>(refinement: Refinement<NoInfer<E>, EB>): <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<void, Exclude<E, EB>, R>;
17
- <E>(predicate: Predicate<NoInfer<E>>): <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<void, E, R>;
18
- <A, E, R, EB extends E>(self: Effect.Effect<A, E, R>, refinement: Refinement<E, EB>): Effect.Effect<void, Exclude<E, EB>, R>;
19
- <A, E, R>(self: Effect.Effect<A, E, R>, predicate: Predicate<E>): Effect.Effect<void, E, R>;
44
+ <E, EB extends E>(refinement: Predicate.Refinement<NoInfer<E>, EB>): <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<void, Exclude<E, EB>, R>;
45
+ <E>(predicate: Predicate.Predicate<NoInfer<E>>): <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<void, E, R>;
46
+ <A, E, R, EB extends E>(self: Effect.Effect<A, E, R>, refinement: Predicate.Refinement<E, EB>): Effect.Effect<void, Exclude<E, EB>, R>;
47
+ <A, E, R>(self: Effect.Effect<A, E, R>, predicate: Predicate.Predicate<E>): Effect.Effect<void, E, R>;
20
48
  };
21
- export declare const eventListener: <TEvent = unknown>(target: Stream.EventListener<TEvent>, type: string, handler: (event: TEvent) => Effect.Effect<void, never, never>, options?: {
49
+ export declare const eventListener: <TEvent = unknown>(target: Stream.EventListener<TEvent>, type: string, handler: (event: TEvent) => Effect.Effect<void>, options?: {
22
50
  once?: boolean;
23
51
  }) => Effect.Effect<void, never, Scope.Scope>;
24
- export declare const spanEvent: (message: any, attributes?: Record<string, any>) => Effect.Effect<void, never, never>;
25
52
  export declare const logWarnIfTakesLongerThan: ({ label, duration }: {
26
53
  label: string;
27
- duration: Duration.DurationInput;
54
+ duration: Duration.Input;
28
55
  }) => <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
29
56
  export declare const logDuration: (label: string) => <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
30
57
  export declare const tapSync: <A>(tapFn: (a: A) => unknown) => <R, E>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
31
58
  export declare const debugLogEnv: (msg?: string) => Effect.Effect<Context.Context<never>>;
32
- export declare const timeoutDie: <E1>(options: {
33
- onTimeout: LazyArg<E1>;
34
- duration: Duration.DurationInput;
35
- }) => <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
36
- export declare const timeoutDieMsg: (options: {
37
- error: string;
38
- duration: Duration.DurationInput;
39
- }) => <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
59
+ /**
60
+ * Enforces a time limit on an effect, triggering a defect on timeout.
61
+ *
62
+ * @remarks
63
+ *
64
+ * This function allows you to enforce a time limit on the execution of an
65
+ * effect. If the effect does not complete within the given duration, it dies
66
+ * with a {@link Cause.TimeoutError} as an unchecked defect. Unlike
67
+ * {@link Effect.timeout}, which adds `TimeoutError` to the error channel,
68
+ * this function keeps the error channel unchanged by treating the timeout as
69
+ * a defect.
70
+ *
71
+ * The returned effect will either:
72
+ * - Succeed with the original effect's result if it completes within the
73
+ * specified duration.
74
+ * - Die with a {@link Cause.TimeoutError} defect if the time limit is exceeded.
75
+ *
76
+ * @see {@link timeoutOrDieMessage} for a version with a custom message.
77
+ * @see {@link Effect.timeout} for a version that raises a `TimeoutError` as a typed error.
78
+ * @see {@link Effect.timeoutOrElse} for a version with a custom timeout branch.
79
+ */
80
+ export declare const timeoutOrDie: (duration: Duration.Input) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
81
+ /**
82
+ * Enforces a time limit on an effect, triggering a defect with a custom
83
+ * message on timeout.
84
+ *
85
+ * @remarks
86
+ *
87
+ * This function behaves like {@link timeoutOrDie}, but allows you to provide
88
+ * a custom message for the {@link Cause.TimeoutError} defect. This is useful
89
+ * for adding context about which operation timed out, making it easier to
90
+ * diagnose issues in logs or error reports.
91
+ *
92
+ * The returned effect will either:
93
+ * - Succeed with the original effect's result if it completes within the
94
+ * specified duration.
95
+ * - Die with a {@link Cause.TimeoutError} defect containing the provided
96
+ * message if the time limit is exceeded.
97
+ *
98
+ * @see {@link timeoutOrDie} for a version without a custom message.
99
+ * @see {@link Effect.timeout} for a version that raises a `TimeoutError` as a typed error.
100
+ * @see {@link Effect.timeoutOrElse} for a version with a custom timeout branch.
101
+ */
102
+ export declare const timeoutOrDieMessage: (duration: Duration.Input, message: string) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
40
103
  export declare const toForkedDeferred: <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<Deferred.Deferred<A, E>, never, R | Scope.Scope>;
41
104
  export declare const withPerformanceMeasure: (meaureLabel: string) => <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
105
+ declare global {
106
+ /** Debug helper: returns the current Effect span trace */
107
+ var getSpanTrace: () => string;
108
+ /** Debug helper: logs the current Effect span trace */
109
+ var logSpanTrace: () => void;
110
+ }
42
111
  //# sourceMappingURL=Effect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- import * as OtelTracer from '@effect/opentelemetry/Tracer';
2
- import { Cause, Deferred, Duration, Effect, Fiber, FiberRef, HashSet, Logger, pipe, Scope, } from 'effect';
3
- import { log } from 'effect/Console';
4
- import { dual } from 'effect/Function';
5
- import { isPromise } from "../mod.js";
6
- import { UnknownError } from "./Error.js";
1
+ import * as OtelTracer from '@effect/opentelemetry/OtelTracer';
2
+ import { Cause, Console, Deferred, Duration, Effect, Function, Fiber, pipe, Predicate, Scope, } from 'effect';
3
+ import { isDevEnv, objectToString } from "../misc.js";
7
4
  export * from 'effect/Effect';
5
+ export { spanEvent } from "./spanEvent.js";
8
6
  // export const log = <A>(message: A, ...rest: any[]): Effect.Effect<void> =>
9
7
  // Effect.sync(() => {
10
8
  // console.log(message, ...rest)
@@ -17,58 +15,102 @@ export * from 'effect/Effect';
17
15
  // Effect.sync(() => {
18
16
  // console.error(message, ...rest)
19
17
  // })
20
- /** Same as `Effect.scopeWith` but with a `CloseableScope` instead of a `Scope`. */
18
+ /** Same as `Effect.scopeWith` but with a closeable `Scope`. */
21
19
  export const scopeWithCloseable = (fn) => Effect.gen(function* () {
22
- // const parentScope = yield* Scope.Scope
23
- // const scope = yield* Scope.fork(parentScope, ExecutionStrategy.sequential)
24
20
  const scope = yield* Scope.make();
25
21
  yield* Effect.addFinalizer((exit) => Scope.close(scope, exit));
26
- return yield* fn(scope).pipe(Scope.extend(scope));
22
+ return yield* fn(scope).pipe(Scope.provide(scope));
27
23
  });
28
- export const tryAll = (fn) => Effect.try(() => fn()).pipe(Effect.andThen((fnRes) => Effect.isEffect(fnRes)
29
- ? fnRes
30
- : isPromise(fnRes)
31
- ? Effect.promise(() => fnRes)
32
- : Effect.succeed(fnRes)));
24
+ export function trySyncOrPromiseOrEffect(operation) {
25
+ return Effect.try({
26
+ try: () => {
27
+ const result = operation();
28
+ if (Effect.isEffect(result) === true) {
29
+ // @effect-diagnostics-next-line anyUnknownInErrorContext:off -- dynamic implementation boundary; the public overload preserves exact Effect error and requirement channels
30
+ return result;
31
+ }
32
+ if (Predicate.isPromiseLike(result) === true) {
33
+ return Effect.tryPromise(() => result);
34
+ }
35
+ return Effect.succeed(result);
36
+ },
37
+ catch: (cause) => new Cause.UnknownError(cause),
38
+ }).pipe(Effect.flatten);
39
+ }
33
40
  export const acquireReleaseLog = (label) => Effect.acquireRelease(Effect.log(`${label} acquire`), (_, ex) => Effect.log(`${label} release`, ex));
34
41
  export const addFinalizerLog = (...msgs) => Effect.addFinalizer((exit) => Effect.log(...msgs, exit._tag === 'Success' ? 'with success' : `with failure: ${Cause.pretty(exit.cause)}`));
35
42
  export const logBefore = (...msgs) => (eff) => Effect.andThen(Effect.log(...msgs), eff);
36
43
  /** Logs both on errors and defects */
37
- export const tapCauseLogPretty = (eff) => Effect.tapErrorCause(eff, (cause) => Effect.gen(function* () {
38
- if (Cause.isInterruptedOnly(cause)) {
39
- // console.log('interrupted', Cause.pretty(err), err)
44
+ export const tapCauseLogPretty = (eff) => Effect.tapCause(eff, (cause) => Effect.gen(function* () {
45
+ if (Cause.hasInterruptsOnly(cause) === true)
40
46
  return;
41
- }
42
- const span = yield* OtelTracer.currentOtelSpan.pipe(Effect.catchTag('NoSuchElementException', (_) => Effect.succeed(undefined)));
47
+ const span = yield* OtelTracer.currentOtelSpan.pipe(Effect.catchTag('NoSuchElementError', (_) => Effect.void));
43
48
  const firstErrLine = cause.toString().split('\n')[0];
44
49
  yield* Effect.logError(firstErrLine, cause).pipe((_) => span === undefined
45
50
  ? _
46
51
  : Effect.annotateLogs({ spanId: span.spanContext().spanId, traceId: span.spanContext().traceId })(_));
47
52
  }));
48
- export const ignoreIf = dual(2, (self, predicate) => self.pipe(Effect.catchIf(predicate, () => Effect.void)));
53
+ /**
54
+ * Creates a defect, pausing at a breakpoint in development.
55
+ *
56
+ * @param msg - The error message to include in the defect.
57
+ * @param args - Arbitrary arguments available for inspection during debugging.
58
+ *
59
+ * @see {@link shouldNeverHappen} for the non-Effect equivalent that throws synchronously.
60
+ * @see {@link orDieDebugger}
61
+ */
62
+ export const dieDebugger = (msg, ...args) => Effect.suspend(() => {
63
+ if (isDevEnv() === true) {
64
+ // oxlint-disable-next-line eslint(no-debugger) -- intentional breakpoint during development
65
+ debugger;
66
+ void args; // Keeps the variable in scope so it's inspectable when the debugger pauses
67
+ }
68
+ return Effect.die(new Error(msg));
69
+ });
70
+ /**
71
+ * Converts a failure into a defect, pausing at a breakpoint in development.
72
+ *
73
+ * @param self - The effect on which to apply the operation.
74
+ *
75
+ * @see {@link Effect.orDie}
76
+ * @see {@link dieDebugger}
77
+ */
78
+ export const orDieDebugger = (self) => Effect.matchEffect(self, {
79
+ onFailure: (error) =>
80
+ // Keep the debugger hook so that `debugger` runs only when the wrapped effect actually fails, not while building the wrapper.
81
+ Effect.suspend(() => {
82
+ if (isDevEnv() === true) {
83
+ // oxlint-disable-next-line eslint(no-debugger) -- intentional breakpoint for impossible states during development
84
+ debugger;
85
+ }
86
+ return Effect.die(error);
87
+ }),
88
+ onSuccess: Effect.succeed,
89
+ });
90
+ export const ignoreIf = Function.dual(2, (self, predicate) => self.pipe(Effect.catchIf(predicate, () => Effect.void)));
49
91
  export const eventListener = (target, type, handler, options) => Effect.gen(function* () {
50
- const runtime = yield* Effect.runtime();
51
- const handlerFn = (event) => handler(event).pipe(Effect.provide(runtime), Effect.runFork);
92
+ const services = yield* Effect.context();
93
+ const handlerFn = (event) => handler(event).pipe(Effect.runForkWith(services));
52
94
  target.addEventListener(type, handlerFn, { once: options?.once ?? false });
53
95
  yield* Effect.addFinalizer(() => Effect.sync(() => target.removeEventListener(type, handlerFn)));
54
96
  });
55
- export const spanEvent = (message, attributes) => Effect.locallyWith(Effect.log(message).pipe(Effect.annotateLogs(attributes ?? {})), FiberRef.currentLoggers, () => HashSet.make(Logger.tracerLogger));
56
97
  export const logWarnIfTakesLongerThan = ({ label, duration }) => (eff) => Effect.gen(function* () {
57
- const runtime = yield* Effect.runtime();
98
+ const services = yield* Effect.context();
58
99
  let tookLongerThanTimer = false;
59
100
  const timeoutFiber = Effect.sleep(duration).pipe(Effect.tap(() => {
60
101
  tookLongerThanTimer = true;
61
102
  // TODO include span info
62
- return Effect.logWarning(`${label}: Took longer than ${duration}ms`);
63
- }), Effect.provide(runtime), Effect.runFork);
103
+ return Effect.logWarning(`${label}: Took longer than ${objectToString(duration)}ms`);
104
+ }), Effect.runForkWith(services));
64
105
  const start = Date.now();
65
106
  const res = yield* eff.pipe(Effect.exit, Effect.onInterrupt(Effect.fn(function* () {
66
107
  const end = Date.now();
67
108
  yield* Fiber.interrupt(timeoutFiber);
68
- if (tookLongerThanTimer) {
109
+ if (tookLongerThanTimer === true) {
69
110
  yield* Effect.logWarning(`${label}: Interrupted after ${end - start}ms`);
70
111
  }
71
112
  })));
113
+ // eslint-disable-next-line overeng/explicit-boolean-compare -- mutated in forked fiber; TS can't see the mutation
72
114
  if (tookLongerThanTimer) {
73
115
  const end = Date.now();
74
116
  yield* Effect.logWarning(`${label}: Actual duration: ${end - start}ms`);
@@ -80,28 +122,76 @@ export const logDuration = (label) => (eff) => Effect.gen(function* () {
80
122
  const start = Date.now();
81
123
  const res = yield* eff;
82
124
  const end = Date.now();
83
- yield* Effect.log(`${label}: ${Duration.format(end - start)}`);
125
+ yield* Effect.log(`${label}: ${Duration.format(Duration.millis(end - start))}`);
84
126
  return res;
85
127
  });
86
128
  export const tapSync = (tapFn) => (eff) => Effect.tap(eff, (a) => Effect.sync(() => tapFn(a)));
87
- export const debugLogEnv = (msg) => pipe(Effect.context(), Effect.tap((env) => log(msg ?? 'debugLogEnv', env)));
88
- export const timeoutDie = (options) => (self) => Effect.orDie(Effect.timeoutFail(options)(self));
89
- export const timeoutDieMsg = (options) => (self) => Effect.orDie(Effect.timeoutFail({ onTimeout: () => new UnknownError({ cause: options.error }), duration: options.duration })(self));
129
+ export const debugLogEnv = (msg) => pipe(Effect.context(), Effect.tap((env) => Console.log(msg ?? 'debugLogEnv', env)));
130
+ /**
131
+ * Enforces a time limit on an effect, triggering a defect on timeout.
132
+ *
133
+ * @remarks
134
+ *
135
+ * This function allows you to enforce a time limit on the execution of an
136
+ * effect. If the effect does not complete within the given duration, it dies
137
+ * with a {@link Cause.TimeoutError} as an unchecked defect. Unlike
138
+ * {@link Effect.timeout}, which adds `TimeoutError` to the error channel,
139
+ * this function keeps the error channel unchanged by treating the timeout as
140
+ * a defect.
141
+ *
142
+ * The returned effect will either:
143
+ * - Succeed with the original effect's result if it completes within the
144
+ * specified duration.
145
+ * - Die with a {@link Cause.TimeoutError} defect if the time limit is exceeded.
146
+ *
147
+ * @see {@link timeoutOrDieMessage} for a version with a custom message.
148
+ * @see {@link Effect.timeout} for a version that raises a `TimeoutError` as a typed error.
149
+ * @see {@link Effect.timeoutOrElse} for a version with a custom timeout branch.
150
+ */
151
+ export const timeoutOrDie = (duration) => (self) => Effect.timeoutOrElse(self, {
152
+ duration,
153
+ orElse: () => Effect.die(new Cause.TimeoutError()),
154
+ });
155
+ /**
156
+ * Enforces a time limit on an effect, triggering a defect with a custom
157
+ * message on timeout.
158
+ *
159
+ * @remarks
160
+ *
161
+ * This function behaves like {@link timeoutOrDie}, but allows you to provide
162
+ * a custom message for the {@link Cause.TimeoutError} defect. This is useful
163
+ * for adding context about which operation timed out, making it easier to
164
+ * diagnose issues in logs or error reports.
165
+ *
166
+ * The returned effect will either:
167
+ * - Succeed with the original effect's result if it completes within the
168
+ * specified duration.
169
+ * - Die with a {@link Cause.TimeoutError} defect containing the provided
170
+ * message if the time limit is exceeded.
171
+ *
172
+ * @see {@link timeoutOrDie} for a version without a custom message.
173
+ * @see {@link Effect.timeout} for a version that raises a `TimeoutError` as a typed error.
174
+ * @see {@link Effect.timeoutOrElse} for a version with a custom timeout branch.
175
+ */
176
+ export const timeoutOrDieMessage = (duration, message) => (self) => Effect.timeoutOrElse(self, {
177
+ duration,
178
+ orElse: () => Effect.die(new Cause.TimeoutError(message)),
179
+ });
90
180
  export const toForkedDeferred = (eff) => pipe(Deferred.make(), Effect.tap((deferred) => pipe(Effect.exit(eff), Effect.flatMap((ex) => Deferred.done(deferred, ex)), tapCauseLogPretty, Effect.forkScoped)));
91
181
  export const withPerformanceMeasure = (meaureLabel) => (eff) => Effect.acquireUseRelease(Effect.sync(() => globalThis.performance.mark(`${meaureLabel}:start`)), () => eff, () => Effect.sync(() => {
92
182
  globalThis.performance.mark(`${meaureLabel}:end`);
93
183
  globalThis.performance.measure(meaureLabel, `${meaureLabel}:start`, `${meaureLabel}:end`);
94
184
  }));
95
185
  const getSpanTrace = () => {
96
- const fiberOption = Fiber.getCurrentFiber();
97
- if (fiberOption._tag === 'None' || fiberOption.value.currentSpan === undefined) {
186
+ const fiber = Fiber.getCurrent();
187
+ if (fiber === undefined || fiber.currentSpan === undefined) {
98
188
  return 'No current fiber';
99
189
  }
100
190
  return '';
101
191
  // const msg = Effect.runSync(
102
192
  // Effect.fail({ message: '' }).pipe(
103
- // Effect.withParentSpan(fiberOption.value.currentSpan),
104
- // Effect.catchAllCause((cause) => Effect.succeed(cause.toString())),
193
+ // Effect.withParentSpan(fiber.currentSpan),
194
+ // Effect.catchCause((cause) => Effect.succeed(cause.toString())),
105
195
  // ),
106
196
  // )
107
197
  // // remove the first line
@@ -112,8 +202,6 @@ const getSpanTrace = () => {
112
202
  // .join('\n')
113
203
  };
114
204
  const logSpanTrace = () => console.log(getSpanTrace());
115
- // @ts-expect-error TODO fix types
116
205
  globalThis.getSpanTrace = getSpanTrace;
117
- // @ts-expect-error TODO fix types
118
206
  globalThis.logSpanTrace = logSpanTrace;
119
207
  //# sourceMappingURL=Effect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Effect.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Effect.test.d.ts","sourceRoot":"","sources":["../../src/effect/Effect.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ import { describe, expect, expectTypeOf, it } from '@effect/vitest';
2
+ import { Cause, Effect } from 'effect';
3
+ import { trySyncOrPromiseOrEffect } from "./Effect.js";
4
+ describe('trySyncOrPromiseOrEffect', () => {
5
+ it.effect('returns a plain value', () => Effect.gen(function* () {
6
+ const result = yield* trySyncOrPromiseOrEffect(() => 42);
7
+ expect(result).toBe(42);
8
+ }));
9
+ it.effect('evaluates the operation lazily for each execution', () => Effect.gen(function* () {
10
+ let executions = 0;
11
+ const effect = trySyncOrPromiseOrEffect(() => ++executions);
12
+ expect(executions).toBe(0);
13
+ expect(yield* effect).toBe(1);
14
+ expect(yield* effect).toBe(2);
15
+ }));
16
+ it.effect('maps a synchronous throw to an UnknownError', () => Effect.gen(function* () {
17
+ const thrown = new Error('thrown');
18
+ const failure = yield* trySyncOrPromiseOrEffect(() => {
19
+ throw thrown;
20
+ }).pipe(Effect.flip);
21
+ expect(failure).toBeInstanceOf(Cause.UnknownError);
22
+ if (failure instanceof Cause.UnknownError) {
23
+ expect(failure.cause).toBe(thrown);
24
+ }
25
+ }));
26
+ it.effect('awaits a resolving Promise', () => Effect.gen(function* () {
27
+ const result = yield* trySyncOrPromiseOrEffect(() => Promise.resolve('resolved'));
28
+ expect(result).toBe('resolved');
29
+ }));
30
+ it.effect('maps a rejected Promise to an UnknownError', () => Effect.gen(function* () {
31
+ const rejected = new Error('rejected');
32
+ const failure = yield* trySyncOrPromiseOrEffect(() => Promise.reject(rejected)).pipe(Effect.flip);
33
+ expect(failure).toBeInstanceOf(Cause.UnknownError);
34
+ if (failure instanceof Cause.UnknownError) {
35
+ expect(failure.cause).toBe(rejected);
36
+ }
37
+ }));
38
+ it.effect('maps a throwing Promise-like then getter to an UnknownError', () => Effect.gen(function* () {
39
+ const thrown = new Error('throwing then getter');
40
+ const thenable = {
41
+ // oxlint-disable-next-line eslint-plugin-unicorn(no-thenable) -- intentionally exercises Promise-like classification
42
+ get then() {
43
+ throw thrown;
44
+ },
45
+ };
46
+ const failure = yield* trySyncOrPromiseOrEffect(() => thenable).pipe(Effect.flip);
47
+ expect(failure).toBeInstanceOf(Cause.UnknownError);
48
+ if (failure instanceof Cause.UnknownError) {
49
+ expect(failure.cause).toBe(thrown);
50
+ }
51
+ }));
52
+ it.effect('executes and returns the value of a returned Effect', () => Effect.gen(function* () {
53
+ const result = yield* trySyncOrPromiseOrEffect(() => Effect.succeed('effect-value'));
54
+ expect(result).toBe('effect-value');
55
+ }));
56
+ it.effect('preserves a returned Effect failure', () => Effect.gen(function* () {
57
+ const expected = { _tag: 'ExpectedError' };
58
+ const failure = yield* trySyncOrPromiseOrEffect(() => Effect.fail(expected)).pipe(Effect.flip);
59
+ expect(failure).toBe(expected);
60
+ }));
61
+ it('preserves returned Effect success, error, and requirements types', () => {
62
+ const normalized = trySyncOrPromiseOrEffect(() => contextualEffect);
63
+ expectTypeOf(normalized).toEqualTypeOf();
64
+ });
65
+ it('returns an Effect when the operation only throws', () => {
66
+ const normalized = trySyncOrPromiseOrEffect(() => {
67
+ throw new Error('thrown');
68
+ });
69
+ expectTypeOf(normalized).toEqualTypeOf();
70
+ });
71
+ });
72
+ //# sourceMappingURL=Effect.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Effect.test.js","sourceRoot":"","sources":["../../src/effect/Effect.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
1
  import { Schema } from 'effect';
2
- declare const UnknownError_base: Schema.TaggedErrorClass<UnknownError, "UnknownError", {
3
- readonly _tag: Schema.tag<"UnknownError">;
4
- } & {
5
- cause: typeof Schema.Any;
6
- payload: Schema.optional<typeof Schema.Any>;
7
- }>;
2
+ declare const UnknownError_base: Schema.Class<UnknownError, Schema.TaggedStruct<"UnknownError", {
3
+ readonly cause: Schema.Any;
4
+ readonly payload: Schema.optional<Schema.Any>;
5
+ }>, import("effect/Cause").YieldableError>;
8
6
  export declare class UnknownError extends UnknownError_base {
9
7
  }
10
8
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/effect/Error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;;;;;;;AAE/B,qBAAa,YAAa,SAAQ,iBAGhC;CAAG"}
1
+ {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/effect/Error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;;;;;AAE/B,qBAAa,YAAa,SAAQ,iBAGhC;CAAG"}
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'effect';
2
- export class UnknownError extends Schema.TaggedError()('UnknownError', {
2
+ export class UnknownError extends Schema.TaggedError('~@livestore/utils/UnknownError')('UnknownError', {
3
3
  cause: Schema.Any,
4
4
  payload: Schema.optional(Schema.Any),
5
5
  }) {
@@ -1 +1 @@
1
- {"version":3,"file":"Error.js","sourceRoot":"","sources":["../../src/effect/Error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,OAAO,YAAa,SAAQ,MAAM,CAAC,WAAW,EAAgB,CAAC,cAAc,EAAE;IACnF,KAAK,EAAE,MAAM,CAAC,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;CACrC,CAAC;CAAG"}
1
+ {"version":3,"file":"Error.js","sourceRoot":"","sources":["../../src/effect/Error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,OAAO,YAAa,SAAQ,MAAM,CAAC,WAAW,CAAe,gCAAgC,CAAC,CAAC,cAAc,EAAE;IACnH,KAAK,EAAE,MAAM,CAAC,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;CACrC,CAAC;CAAG"}
@@ -1,8 +1,2 @@
1
- import { Logger } from 'effect';
2
1
  export * from 'effect/Logger';
3
- export declare const prettyWithThread: (threadName: string, options?: {
4
- mode?: "tty" | "browser";
5
- }) => import("effect/Layer").Layer<never, never, never>;
6
- export declare const consoleLogger: (threadName: string) => Logger.Logger<unknown, void>;
7
- export declare const consoleWithThread: (threadName: string) => import("effect/Layer").Layer<never, never, never>;
8
2
  //# sourceMappingURL=Logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/effect/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,EAAY,MAAM,QAAQ,CAAA;AAEzD,cAAc,eAAe,CAAA;AAQ7B,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,EAAE,UAAS;IAAE,IAAI,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAAO,sDAO5F,CAAA;AAEH,eAAO,MAAM,aAAa,GAAI,YAAY,MAAM,iCA2B5C,CAAA;AAEJ,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,sDAAoE,CAAA"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/effect/Logger.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -1,34 +1,2 @@
1
- import { Cause, HashMap, Logger, LogLevel } from 'effect';
2
1
  export * from 'effect/Logger';
3
- const defaultDateFormat = (date) => `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date
4
- .getSeconds()
5
- .toString()
6
- .padStart(2, '0')}.${date.getMilliseconds().toString().padStart(3, '0')}`;
7
- export const prettyWithThread = (threadName, options = {}) => Logger.replace(Logger.defaultLogger, Logger.prettyLogger({
8
- formatDate: (date) => `${defaultDateFormat(date)} ${threadName}`,
9
- mode: options.mode,
10
- }));
11
- export const consoleLogger = (threadName) => Logger.make(({ message, annotations, date, logLevel, cause }) => {
12
- const isCloudflareWorker = typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers';
13
- const consoleFn = logLevel === LogLevel.Debug
14
- ? // Cloudflare Workers doesn't support console.debug 🤷
15
- isCloudflareWorker
16
- ? console.log
17
- : console.debug
18
- : logLevel === LogLevel.Info
19
- ? console.info
20
- : logLevel === LogLevel.Warning
21
- ? console.warn
22
- : console.error;
23
- const annotationsObj = Object.fromEntries(HashMap.entries(annotations));
24
- const messages = Array.isArray(message) ? message : [message];
25
- if (Cause.isEmpty(cause) === false) {
26
- messages.push(Cause.pretty(cause, { renderErrorCause: true }));
27
- }
28
- if (Object.keys(annotationsObj).length > 0) {
29
- messages.push(annotationsObj);
30
- }
31
- consoleFn(`[${defaultDateFormat(date)} ${threadName}]`, ...messages);
32
- });
33
- export const consoleWithThread = (threadName) => Logger.replace(Logger.defaultLogger, consoleLogger(threadName));
34
2
  //# sourceMappingURL=Logger.js.map