effect 3.7.3 → 3.8.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 (209) hide show
  1. package/Mailbox/package.json +6 -0
  2. package/dist/cjs/Deferred.js.map +1 -1
  3. package/dist/cjs/Duration.js +99 -35
  4. package/dist/cjs/Duration.js.map +1 -1
  5. package/dist/cjs/Effect.js +30 -3
  6. package/dist/cjs/Effect.js.map +1 -1
  7. package/dist/cjs/Fiber.js.map +1 -1
  8. package/dist/cjs/FiberRef.js.map +1 -1
  9. package/dist/cjs/Logger.js +29 -1
  10. package/dist/cjs/Logger.js.map +1 -1
  11. package/dist/cjs/Mailbox.js +95 -0
  12. package/dist/cjs/Mailbox.js.map +1 -0
  13. package/dist/cjs/MutableHashMap.js +13 -1
  14. package/dist/cjs/MutableHashMap.js.map +1 -1
  15. package/dist/cjs/Number.js +20 -1
  16. package/dist/cjs/Number.js.map +1 -1
  17. package/dist/cjs/Queue.js.map +1 -1
  18. package/dist/cjs/RcMap.js +6 -1
  19. package/dist/cjs/RcMap.js.map +1 -1
  20. package/dist/cjs/RcRef.js.map +1 -1
  21. package/dist/cjs/Ref.js.map +1 -1
  22. package/dist/cjs/Stream.js +11 -2
  23. package/dist/cjs/Stream.js.map +1 -1
  24. package/dist/cjs/SubscriptionRef.js.map +1 -1
  25. package/dist/cjs/SynchronizedRef.js.map +1 -1
  26. package/dist/cjs/index.js +4 -2
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/internal/core.js +32 -25
  29. package/dist/cjs/internal/core.js.map +1 -1
  30. package/dist/cjs/internal/defaultServices.js +8 -5
  31. package/dist/cjs/internal/defaultServices.js.map +1 -1
  32. package/dist/cjs/internal/effect/circular.js +81 -8
  33. package/dist/cjs/internal/effect/circular.js.map +1 -1
  34. package/dist/cjs/internal/fiber.js +51 -26
  35. package/dist/cjs/internal/fiber.js.map +1 -1
  36. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  37. package/dist/cjs/internal/fiberRuntime.js +126 -96
  38. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  39. package/dist/cjs/internal/groupBy.js +6 -1
  40. package/dist/cjs/internal/groupBy.js.map +1 -1
  41. package/dist/cjs/internal/layer.js +3 -3
  42. package/dist/cjs/internal/layer.js.map +1 -1
  43. package/dist/cjs/internal/logger.js +4 -1
  44. package/dist/cjs/internal/logger.js.map +1 -1
  45. package/dist/cjs/internal/mailbox.js +408 -0
  46. package/dist/cjs/internal/mailbox.js.map +1 -0
  47. package/dist/cjs/internal/managedRuntime.js +1 -1
  48. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  49. package/dist/cjs/internal/pubsub.js +6 -1
  50. package/dist/cjs/internal/pubsub.js.map +1 -1
  51. package/dist/cjs/internal/queue.js +6 -1
  52. package/dist/cjs/internal/queue.js.map +1 -1
  53. package/dist/cjs/internal/rcMap.js +7 -1
  54. package/dist/cjs/internal/rcMap.js.map +1 -1
  55. package/dist/cjs/internal/rcRef.js +10 -6
  56. package/dist/cjs/internal/rcRef.js.map +1 -1
  57. package/dist/cjs/internal/ref.js +7 -7
  58. package/dist/cjs/internal/ref.js.map +1 -1
  59. package/dist/cjs/internal/runtime.js +1 -1
  60. package/dist/cjs/internal/runtime.js.map +1 -1
  61. package/dist/cjs/internal/stream.js +7 -2
  62. package/dist/cjs/internal/stream.js.map +1 -1
  63. package/dist/cjs/internal/subscriptionRef.js +7 -8
  64. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  65. package/dist/cjs/internal/version.js +1 -1
  66. package/dist/dts/Deferred.d.ts +21 -2
  67. package/dist/dts/Deferred.d.ts.map +1 -1
  68. package/dist/dts/Duration.d.ts +38 -1
  69. package/dist/dts/Duration.d.ts.map +1 -1
  70. package/dist/dts/Effect.d.ts +45 -0
  71. package/dist/dts/Effect.d.ts.map +1 -1
  72. package/dist/dts/Fiber.d.ts +69 -2
  73. package/dist/dts/Fiber.d.ts.map +1 -1
  74. package/dist/dts/FiberRef.d.ts +21 -2
  75. package/dist/dts/FiberRef.d.ts.map +1 -1
  76. package/dist/dts/Logger.d.ts +28 -0
  77. package/dist/dts/Logger.d.ts.map +1 -1
  78. package/dist/dts/Mailbox.d.ts +220 -0
  79. package/dist/dts/Mailbox.d.ts.map +1 -0
  80. package/dist/dts/MutableHashMap.d.ts +5 -0
  81. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  82. package/dist/dts/Number.d.ts +19 -0
  83. package/dist/dts/Number.d.ts.map +1 -1
  84. package/dist/dts/Queue.d.ts +40 -1
  85. package/dist/dts/Queue.d.ts.map +1 -1
  86. package/dist/dts/RcMap.d.ts +5 -0
  87. package/dist/dts/RcMap.d.ts.map +1 -1
  88. package/dist/dts/RcRef.d.ts +22 -2
  89. package/dist/dts/RcRef.d.ts.map +1 -1
  90. package/dist/dts/Ref.d.ts +22 -2
  91. package/dist/dts/Ref.d.ts.map +1 -1
  92. package/dist/dts/Stream.d.ts +30 -0
  93. package/dist/dts/Stream.d.ts.map +1 -1
  94. package/dist/dts/SubscriptionRef.d.ts +20 -0
  95. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  96. package/dist/dts/SynchronizedRef.d.ts +20 -0
  97. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  98. package/dist/dts/index.d.ts +5 -0
  99. package/dist/dts/index.d.ts.map +1 -1
  100. package/dist/dts/internal/core.d.ts.map +1 -1
  101. package/dist/dts/internal/fiber.d.ts.map +1 -1
  102. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  103. package/dist/dts/internal/logger.d.ts.map +1 -1
  104. package/dist/dts/internal/mailbox.d.ts +2 -0
  105. package/dist/dts/internal/mailbox.d.ts.map +1 -0
  106. package/dist/dts/internal/stream.d.ts +22 -0
  107. package/dist/dts/internal/stream.d.ts.map +1 -1
  108. package/dist/esm/Deferred.js.map +1 -1
  109. package/dist/esm/Duration.js +92 -33
  110. package/dist/esm/Duration.js.map +1 -1
  111. package/dist/esm/Effect.js +27 -0
  112. package/dist/esm/Effect.js.map +1 -1
  113. package/dist/esm/Fiber.js.map +1 -1
  114. package/dist/esm/FiberRef.js.map +1 -1
  115. package/dist/esm/Logger.js +28 -0
  116. package/dist/esm/Logger.js.map +1 -1
  117. package/dist/esm/Mailbox.js +85 -0
  118. package/dist/esm/Mailbox.js.map +1 -0
  119. package/dist/esm/MutableHashMap.js +11 -0
  120. package/dist/esm/MutableHashMap.js.map +1 -1
  121. package/dist/esm/Number.js +19 -0
  122. package/dist/esm/Number.js.map +1 -1
  123. package/dist/esm/Queue.js.map +1 -1
  124. package/dist/esm/RcMap.js +5 -0
  125. package/dist/esm/RcMap.js.map +1 -1
  126. package/dist/esm/RcRef.js.map +1 -1
  127. package/dist/esm/Ref.js.map +1 -1
  128. package/dist/esm/Stream.js +9 -0
  129. package/dist/esm/Stream.js.map +1 -1
  130. package/dist/esm/SubscriptionRef.js.map +1 -1
  131. package/dist/esm/SynchronizedRef.js.map +1 -1
  132. package/dist/esm/index.js +5 -0
  133. package/dist/esm/index.js.map +1 -1
  134. package/dist/esm/internal/core.js +33 -26
  135. package/dist/esm/internal/core.js.map +1 -1
  136. package/dist/esm/internal/defaultServices.js +6 -4
  137. package/dist/esm/internal/defaultServices.js.map +1 -1
  138. package/dist/esm/internal/effect/circular.js +77 -6
  139. package/dist/esm/internal/effect/circular.js.map +1 -1
  140. package/dist/esm/internal/fiber.js +51 -26
  141. package/dist/esm/internal/fiber.js.map +1 -1
  142. package/dist/esm/internal/fiberRefs.js.map +1 -1
  143. package/dist/esm/internal/fiberRuntime.js +124 -95
  144. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  145. package/dist/esm/internal/groupBy.js +6 -1
  146. package/dist/esm/internal/groupBy.js.map +1 -1
  147. package/dist/esm/internal/layer.js +3 -3
  148. package/dist/esm/internal/layer.js.map +1 -1
  149. package/dist/esm/internal/logger.js +3 -0
  150. package/dist/esm/internal/logger.js.map +1 -1
  151. package/dist/esm/internal/mailbox.js +395 -0
  152. package/dist/esm/internal/mailbox.js.map +1 -0
  153. package/dist/esm/internal/managedRuntime.js +1 -1
  154. package/dist/esm/internal/managedRuntime.js.map +1 -1
  155. package/dist/esm/internal/pubsub.js +6 -1
  156. package/dist/esm/internal/pubsub.js.map +1 -1
  157. package/dist/esm/internal/queue.js +6 -1
  158. package/dist/esm/internal/queue.js.map +1 -1
  159. package/dist/esm/internal/rcMap.js +5 -0
  160. package/dist/esm/internal/rcMap.js.map +1 -1
  161. package/dist/esm/internal/rcRef.js +10 -6
  162. package/dist/esm/internal/rcRef.js.map +1 -1
  163. package/dist/esm/internal/ref.js +7 -7
  164. package/dist/esm/internal/ref.js.map +1 -1
  165. package/dist/esm/internal/runtime.js +1 -1
  166. package/dist/esm/internal/runtime.js.map +1 -1
  167. package/dist/esm/internal/stream.js +5 -0
  168. package/dist/esm/internal/stream.js.map +1 -1
  169. package/dist/esm/internal/subscriptionRef.js +7 -8
  170. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  171. package/dist/esm/internal/version.js +1 -1
  172. package/package.json +9 -1
  173. package/src/Deferred.ts +21 -2
  174. package/src/Duration.ts +112 -35
  175. package/src/Effect.ts +52 -0
  176. package/src/Fiber.ts +78 -2
  177. package/src/FiberRef.ts +21 -2
  178. package/src/Logger.ts +30 -0
  179. package/src/Mailbox.ts +236 -0
  180. package/src/MutableHashMap.ts +12 -0
  181. package/src/Number.ts +23 -0
  182. package/src/Queue.ts +42 -1
  183. package/src/RcMap.ts +6 -0
  184. package/src/RcRef.ts +24 -2
  185. package/src/Ref.ts +22 -2
  186. package/src/Stream.ts +36 -0
  187. package/src/SubscriptionRef.ts +22 -0
  188. package/src/SynchronizedRef.ts +20 -0
  189. package/src/index.ts +6 -0
  190. package/src/internal/core.ts +31 -28
  191. package/src/internal/defaultServices.ts +9 -10
  192. package/src/internal/effect/circular.ts +83 -6
  193. package/src/internal/fiber.ts +56 -29
  194. package/src/internal/fiberRefs.ts +1 -2
  195. package/src/internal/fiberRuntime.ts +133 -102
  196. package/src/internal/groupBy.ts +7 -1
  197. package/src/internal/layer.ts +3 -3
  198. package/src/internal/logger.ts +4 -0
  199. package/src/internal/mailbox.ts +461 -0
  200. package/src/internal/managedRuntime.ts +1 -1
  201. package/src/internal/pubsub.ts +9 -2
  202. package/src/internal/queue.ts +7 -1
  203. package/src/internal/rcMap.ts +8 -0
  204. package/src/internal/rcRef.ts +10 -6
  205. package/src/internal/ref.ts +7 -7
  206. package/src/internal/runtime.ts +1 -1
  207. package/src/internal/stream.ts +53 -0
  208. package/src/internal/subscriptionRef.ts +7 -8
  209. package/src/internal/version.ts +1 -1
@@ -21,6 +21,7 @@ import { pipeArguments } from "../Pipeable.js"
21
21
  import { hasProperty, isTagged, type Predicate, type Refinement } from "../Predicate.js"
22
22
  import * as PubSub from "../PubSub.js"
23
23
  import * as Queue from "../Queue.js"
24
+ import * as RcRef from "../RcRef.js"
24
25
  import * as Ref from "../Ref.js"
25
26
  import * as Runtime from "../Runtime.js"
26
27
  import * as Schedule from "../Schedule.js"
@@ -837,6 +838,58 @@ export const broadcastDynamic = dual<
837
838
  ): Effect.Effect<Stream.Stream<A, E>, never, Scope.Scope | R> =>
838
839
  Effect.map(toPubSub(self, maximumLag), (pubsub) => flattenTake(fromPubSub(pubsub))))
839
840
 
841
+ export const share = dual<
842
+ <A, E>(
843
+ config: {
844
+ readonly capacity: "unbounded"
845
+ readonly replay?: number | undefined
846
+ readonly idleTimeToLive?: Duration.DurationInput | undefined
847
+ } | {
848
+ readonly capacity: number
849
+ readonly strategy?: "sliding" | "dropping" | "suspend" | undefined
850
+ readonly replay?: number | undefined
851
+ readonly idleTimeToLive?: Duration.DurationInput | undefined
852
+ }
853
+ ) => <R>(
854
+ self: Stream.Stream<A, E, R>
855
+ ) => Effect.Effect<Stream.Stream<A, E>, never, R | Scope.Scope>,
856
+ <A, E, R>(
857
+ self: Stream.Stream<A, E, R>,
858
+ config: {
859
+ readonly capacity: "unbounded"
860
+ readonly replay?: number | undefined
861
+ readonly idleTimeToLive?: Duration.DurationInput | undefined
862
+ } | {
863
+ readonly capacity: number
864
+ readonly strategy?: "sliding" | "dropping" | "suspend" | undefined
865
+ readonly replay?: number | undefined
866
+ readonly idleTimeToLive?: Duration.DurationInput | undefined
867
+ }
868
+ ) => Effect.Effect<Stream.Stream<A, E>, never, R | Scope.Scope>
869
+ >(
870
+ 2,
871
+ <A, E, R>(
872
+ self: Stream.Stream<A, E, R>,
873
+ options: {
874
+ readonly capacity: "unbounded"
875
+ readonly replay?: number | undefined
876
+ readonly idleTimeToLive?: Duration.DurationInput | undefined
877
+ } | {
878
+ readonly capacity: number
879
+ readonly strategy?: "sliding" | "dropping" | "suspend" | undefined
880
+ readonly replay?: number | undefined
881
+ readonly idleTimeToLive?: Duration.DurationInput | undefined
882
+ }
883
+ ): Effect.Effect<Stream.Stream<A, E>, never, R | Scope.Scope> =>
884
+ Effect.map(
885
+ RcRef.make({
886
+ acquire: broadcastDynamic(self, options),
887
+ idleTimeToLive: options.idleTimeToLive
888
+ }),
889
+ (rcRef) => unwrapScoped(RcRef.get(rcRef))
890
+ )
891
+ )
892
+
840
893
  /** @internal */
841
894
  export const broadcastedQueues = dual<
842
895
  <N extends number>(
@@ -1,6 +1,6 @@
1
1
  import * as Effect from "../Effect.js"
2
+ import * as Effectable from "../Effectable.js"
2
3
  import { dual, pipe } from "../Function.js"
3
- import { pipeArguments } from "../Pipeable.js"
4
4
  import * as PubSub from "../PubSub.js"
5
5
  import * as Readable from "../Readable.js"
6
6
  import * as Ref from "../Ref.js"
@@ -26,9 +26,9 @@ const subscriptionRefVariance = {
26
26
  }
27
27
 
28
28
  /** @internal */
29
- class SubscriptionRefImpl<in out A> implements SubscriptionRef.SubscriptionRef<A> {
30
- readonly [Readable.TypeId]: Readable.TypeId
31
- readonly [Subscribable.TypeId]: Subscribable.TypeId
29
+ class SubscriptionRefImpl<in out A> extends Effectable.Class<A> implements SubscriptionRef.SubscriptionRef<A> {
30
+ readonly [Readable.TypeId]: Readable.TypeId = Readable.TypeId
31
+ readonly [Subscribable.TypeId]: Subscribable.TypeId = Subscribable.TypeId
32
32
  readonly [Ref.RefTypeId] = _ref.refVariance
33
33
  readonly [Synchronized.SynchronizedRefTypeId] = _circular.synchronizedVariance
34
34
  readonly [SubscriptionRefTypeId] = subscriptionRefVariance
@@ -37,12 +37,11 @@ class SubscriptionRefImpl<in out A> implements SubscriptionRef.SubscriptionRef<A
37
37
  readonly pubsub: PubSub.PubSub<A>,
38
38
  readonly semaphore: Effect.Semaphore
39
39
  ) {
40
- this[Readable.TypeId] = Readable.TypeId
41
- this[Subscribable.TypeId] = Subscribable.TypeId
40
+ super()
42
41
  this.get = Ref.get(this.ref)
43
42
  }
44
- pipe() {
45
- return pipeArguments(this, arguments)
43
+ commit() {
44
+ return this.get
46
45
  }
47
46
  readonly get: Effect.Effect<A>
48
47
  get changes(): Stream<A> {
@@ -1,4 +1,4 @@
1
- let moduleVersion = "3.7.3"
1
+ let moduleVersion = "3.8.0"
2
2
 
3
3
  export const getCurrentVersion = () => moduleVersion
4
4