effect 3.10.19 → 3.11.1

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 (172) hide show
  1. package/dist/cjs/BigDecimal.js +125 -24
  2. package/dist/cjs/BigDecimal.js.map +1 -1
  3. package/dist/cjs/Channel.js +44 -4
  4. package/dist/cjs/Channel.js.map +1 -1
  5. package/dist/cjs/Config.js +8 -1
  6. package/dist/cjs/Config.js.map +1 -1
  7. package/dist/cjs/Context.js +26 -1
  8. package/dist/cjs/Context.js.map +1 -1
  9. package/dist/cjs/Cron.js +75 -67
  10. package/dist/cjs/Cron.js.map +1 -1
  11. package/dist/cjs/DateTime.js +111 -661
  12. package/dist/cjs/DateTime.js.map +1 -1
  13. package/dist/cjs/Effect.js +82 -4
  14. package/dist/cjs/Effect.js.map +1 -1
  15. package/dist/cjs/Inspectable.js +8 -4
  16. package/dist/cjs/Inspectable.js.map +1 -1
  17. package/dist/cjs/JSONSchema.js.map +1 -1
  18. package/dist/cjs/Micro.js +1099 -1072
  19. package/dist/cjs/Micro.js.map +1 -1
  20. package/dist/cjs/STM.js.map +1 -1
  21. package/dist/cjs/Schema.js +57 -8
  22. package/dist/cjs/Schema.js.map +1 -1
  23. package/dist/cjs/Sink.js +9 -1
  24. package/dist/cjs/Sink.js.map +1 -1
  25. package/dist/cjs/Stream.js +55 -14
  26. package/dist/cjs/Stream.js.map +1 -1
  27. package/dist/cjs/Utils.js +7 -1
  28. package/dist/cjs/Utils.js.map +1 -1
  29. package/dist/cjs/internal/channel/channelExecutor.js +5 -9
  30. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  31. package/dist/cjs/internal/channel.js +156 -130
  32. package/dist/cjs/internal/channel.js.map +1 -1
  33. package/dist/cjs/internal/config.js +13 -4
  34. package/dist/cjs/internal/config.js.map +1 -1
  35. package/dist/cjs/internal/context.js +46 -3
  36. package/dist/cjs/internal/context.js.map +1 -1
  37. package/dist/cjs/internal/dateTime.js +747 -0
  38. package/dist/cjs/internal/dateTime.js.map +1 -0
  39. package/dist/cjs/internal/fiberRuntime.js +34 -11
  40. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  41. package/dist/cjs/internal/groupBy.js +9 -3
  42. package/dist/cjs/internal/groupBy.js.map +1 -1
  43. package/dist/cjs/internal/layer.js +1 -1
  44. package/dist/cjs/internal/layer.js.map +1 -1
  45. package/dist/cjs/internal/mailbox.js +1 -1
  46. package/dist/cjs/internal/mailbox.js.map +1 -1
  47. package/dist/cjs/internal/pool.js +4 -2
  48. package/dist/cjs/internal/pool.js.map +1 -1
  49. package/dist/cjs/internal/sink.js +25 -21
  50. package/dist/cjs/internal/sink.js.map +1 -1
  51. package/dist/cjs/internal/stream.js +70 -71
  52. package/dist/cjs/internal/stream.js.map +1 -1
  53. package/dist/cjs/internal/version.js +1 -1
  54. package/dist/cjs/internal/version.js.map +1 -1
  55. package/dist/dts/BigDecimal.d.ts +56 -1
  56. package/dist/dts/BigDecimal.d.ts.map +1 -1
  57. package/dist/dts/Channel.d.ts +66 -5
  58. package/dist/dts/Channel.d.ts.map +1 -1
  59. package/dist/dts/Config.d.ts +23 -1
  60. package/dist/dts/Config.d.ts.map +1 -1
  61. package/dist/dts/Context.d.ts +111 -0
  62. package/dist/dts/Context.d.ts.map +1 -1
  63. package/dist/dts/Cron.d.ts +15 -6
  64. package/dist/dts/Cron.d.ts.map +1 -1
  65. package/dist/dts/DateTime.d.ts +41 -41
  66. package/dist/dts/DateTime.d.ts.map +1 -1
  67. package/dist/dts/Effect.d.ts +88 -1
  68. package/dist/dts/Effect.d.ts.map +1 -1
  69. package/dist/dts/Inspectable.d.ts.map +1 -1
  70. package/dist/dts/JSONSchema.d.ts +1 -0
  71. package/dist/dts/JSONSchema.d.ts.map +1 -1
  72. package/dist/dts/Micro.d.ts +875 -872
  73. package/dist/dts/Micro.d.ts.map +1 -1
  74. package/dist/dts/STM.d.ts +2 -0
  75. package/dist/dts/STM.d.ts.map +1 -1
  76. package/dist/dts/Schema.d.ts +32 -0
  77. package/dist/dts/Schema.d.ts.map +1 -1
  78. package/dist/dts/Sink.d.ts +8 -0
  79. package/dist/dts/Sink.d.ts.map +1 -1
  80. package/dist/dts/Stream.d.ts +166 -59
  81. package/dist/dts/Stream.d.ts.map +1 -1
  82. package/dist/dts/Utils.d.ts +4 -0
  83. package/dist/dts/Utils.d.ts.map +1 -1
  84. package/dist/dts/internal/context.d.ts +1 -1
  85. package/dist/dts/internal/context.d.ts.map +1 -1
  86. package/dist/dts/internal/dateTime.d.ts +2 -0
  87. package/dist/dts/internal/dateTime.d.ts.map +1 -0
  88. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  89. package/dist/dts/internal/stream.d.ts.map +1 -1
  90. package/dist/esm/BigDecimal.js +119 -20
  91. package/dist/esm/BigDecimal.js.map +1 -1
  92. package/dist/esm/Channel.js +42 -2
  93. package/dist/esm/Channel.js.map +1 -1
  94. package/dist/esm/Config.js +7 -0
  95. package/dist/esm/Config.js.map +1 -1
  96. package/dist/esm/Context.js +25 -0
  97. package/dist/esm/Context.js.map +1 -1
  98. package/dist/esm/Cron.js +75 -67
  99. package/dist/esm/Cron.js.map +1 -1
  100. package/dist/esm/DateTime.js +109 -624
  101. package/dist/esm/DateTime.js.map +1 -1
  102. package/dist/esm/Effect.js +77 -0
  103. package/dist/esm/Effect.js.map +1 -1
  104. package/dist/esm/Inspectable.js +8 -4
  105. package/dist/esm/Inspectable.js.map +1 -1
  106. package/dist/esm/JSONSchema.js.map +1 -1
  107. package/dist/esm/Micro.js +1077 -1047
  108. package/dist/esm/Micro.js.map +1 -1
  109. package/dist/esm/STM.js.map +1 -1
  110. package/dist/esm/Schema.js +54 -0
  111. package/dist/esm/Schema.js.map +1 -1
  112. package/dist/esm/Sink.js +8 -0
  113. package/dist/esm/Sink.js.map +1 -1
  114. package/dist/esm/Stream.js +53 -12
  115. package/dist/esm/Stream.js.map +1 -1
  116. package/dist/esm/Utils.js +5 -0
  117. package/dist/esm/Utils.js.map +1 -1
  118. package/dist/esm/internal/channel/channelExecutor.js +5 -7
  119. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  120. package/dist/esm/internal/channel.js +152 -129
  121. package/dist/esm/internal/channel.js.map +1 -1
  122. package/dist/esm/internal/config.js +11 -3
  123. package/dist/esm/internal/config.js.map +1 -1
  124. package/dist/esm/internal/context.js +42 -2
  125. package/dist/esm/internal/context.js.map +1 -1
  126. package/dist/esm/internal/dateTime.js +704 -0
  127. package/dist/esm/internal/dateTime.js.map +1 -0
  128. package/dist/esm/internal/fiberRuntime.js +31 -9
  129. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  130. package/dist/esm/internal/groupBy.js +9 -3
  131. package/dist/esm/internal/groupBy.js.map +1 -1
  132. package/dist/esm/internal/layer.js +1 -1
  133. package/dist/esm/internal/layer.js.map +1 -1
  134. package/dist/esm/internal/mailbox.js +1 -1
  135. package/dist/esm/internal/mailbox.js.map +1 -1
  136. package/dist/esm/internal/pool.js +4 -2
  137. package/dist/esm/internal/pool.js.map +1 -1
  138. package/dist/esm/internal/sink.js +23 -20
  139. package/dist/esm/internal/sink.js.map +1 -1
  140. package/dist/esm/internal/stream.js +66 -69
  141. package/dist/esm/internal/stream.js.map +1 -1
  142. package/dist/esm/internal/version.js +1 -1
  143. package/dist/esm/internal/version.js.map +1 -1
  144. package/package.json +1 -1
  145. package/src/BigDecimal.ts +131 -21
  146. package/src/Channel.ts +81 -5
  147. package/src/Config.ts +24 -1
  148. package/src/Context.ts +119 -0
  149. package/src/Cron.ts +85 -68
  150. package/src/DateTime.ts +151 -754
  151. package/src/Effect.ts +340 -1
  152. package/src/Inspectable.ts +11 -7
  153. package/src/JSONSchema.ts +1 -0
  154. package/src/Micro.ts +2005 -1757
  155. package/src/STM.ts +2 -0
  156. package/src/Schema.ts +60 -0
  157. package/src/Sink.ts +11 -0
  158. package/src/Stream.ts +171 -71
  159. package/src/Utils.ts +8 -0
  160. package/src/internal/channel/channelExecutor.ts +37 -33
  161. package/src/internal/channel.ts +504 -467
  162. package/src/internal/config.ts +18 -6
  163. package/src/internal/context.ts +56 -4
  164. package/src/internal/dateTime.ts +1126 -0
  165. package/src/internal/fiberRuntime.ts +35 -16
  166. package/src/internal/groupBy.ts +13 -22
  167. package/src/internal/layer.ts +5 -8
  168. package/src/internal/mailbox.ts +6 -4
  169. package/src/internal/pool.ts +4 -1
  170. package/src/internal/sink.ts +55 -35
  171. package/src/internal/stream.ts +299 -299
  172. package/src/internal/version.ts +1 -1
@@ -7,7 +7,7 @@ import * as Effect from "../../Effect.js"
7
7
  import * as ExecutionStrategy from "../../ExecutionStrategy.js"
8
8
  import * as Exit from "../../Exit.js"
9
9
  import * as Fiber from "../../Fiber.js"
10
- import { identity, pipe } from "../../Function.js"
10
+ import { dual, identity, pipe } from "../../Function.js"
11
11
  import * as Option from "../../Option.js"
12
12
  import * as Scope from "../../Scope.js"
13
13
  import type * as UpstreamPullStrategy from "../../UpstreamPullStrategy.js"
@@ -1092,14 +1092,18 @@ export const readUpstream = <A, E2, R, E>(
1092
1092
  }
1093
1093
 
1094
1094
  /** @internal */
1095
- export const run = <Env, InErr, InDone, OutErr, OutDone>(
1096
- self: Channel.Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>
1097
- ): Effect.Effect<OutDone, OutErr, Exclude<Env, Scope.Scope>> => pipe(runScoped(self), Effect.scoped)
1098
-
1099
- /** @internal */
1100
- export const runScoped = <Env, InErr, InDone, OutErr, OutDone>(
1101
- self: Channel.Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>
1102
- ): Effect.Effect<OutDone, OutErr, Env | Scope.Scope> => {
1095
+ export const runIn = dual<
1096
+ (scope: Scope.Scope) => <Env, InErr, InDone, OutErr, OutDone>(
1097
+ self: Channel.Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>
1098
+ ) => Effect.Effect<OutDone, OutErr, Env>,
1099
+ <Env, InErr, InDone, OutErr, OutDone>(
1100
+ self: Channel.Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>,
1101
+ scope: Scope.Scope
1102
+ ) => Effect.Effect<OutDone, OutErr, Env>
1103
+ >(2, <Env, InErr, InDone, OutErr, OutDone>(
1104
+ self: Channel.Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>,
1105
+ scope: Scope.Scope
1106
+ ) => {
1103
1107
  const run = (
1104
1108
  channelDeferred: Deferred.Deferred<OutDone, OutErr>,
1105
1109
  scopeDeferred: Deferred.Deferred<void>,
@@ -1109,8 +1113,7 @@ export const runScoped = <Env, InErr, InDone, OutErr, OutDone>(
1109
1113
  Effect.sync(() => new ChannelExecutor(self, void 0, identity)),
1110
1114
  (exec) =>
1111
1115
  Effect.suspend(() =>
1112
- pipe(
1113
- runScopedInterpret(exec.run() as ChannelState.ChannelState<OutErr, Env>, exec),
1116
+ runScopedInterpret(exec.run() as ChannelState.ChannelState<OutErr, Env>, exec).pipe(
1114
1117
  Effect.intoDeferred(channelDeferred),
1115
1118
  Effect.zipRight(Deferred.await(channelDeferred)),
1116
1119
  Effect.zipLeft(Deferred.await(scopeDeferred))
@@ -1128,33 +1131,34 @@ export const runScoped = <Env, InErr, InDone, OutErr, OutDone>(
1128
1131
  }
1129
1132
  )
1130
1133
  return Effect.uninterruptibleMask((restore) =>
1131
- Effect.flatMap(Effect.scope, (parent) =>
1132
- pipe(
1133
- Effect.all([
1134
- Scope.fork(parent, ExecutionStrategy.sequential),
1135
- Deferred.make<OutDone, OutErr>(),
1136
- Deferred.make<void>()
1137
- ]),
1138
- Effect.flatMap(([child, channelDeferred, scopeDeferred]) =>
1139
- pipe(
1140
- Effect.forkScoped(restore(run(channelDeferred, scopeDeferred, child))),
1141
- Effect.flatMap((fiber) =>
1142
- pipe(
1143
- Scope.addFinalizer(
1144
- parent,
1145
- Deferred.succeed(scopeDeferred, void 0).pipe(
1146
- Effect.zipRight(Effect.yieldNow())
1134
+ Effect.all([
1135
+ Scope.fork(scope, ExecutionStrategy.sequential),
1136
+ Deferred.make<OutDone, OutErr>(),
1137
+ Deferred.make<void>()
1138
+ ]).pipe(Effect.flatMap(([child, channelDeferred, scopeDeferred]) =>
1139
+ restore(run(channelDeferred, scopeDeferred, child)).pipe(
1140
+ Effect.forkIn(scope),
1141
+ Effect.flatMap((fiber) =>
1142
+ scope.addFinalizer(() =>
1143
+ Deferred.isDone(channelDeferred).pipe(
1144
+ Effect.flatMap((isDone) =>
1145
+ isDone
1146
+ ? Deferred.succeed(scopeDeferred, void 0).pipe(
1147
+ Effect.zipRight(Fiber.await(fiber)),
1148
+ Effect.zipRight(Fiber.inheritAll(fiber))
1149
+ )
1150
+ : Deferred.succeed(scopeDeferred, void 0).pipe(
1151
+ Effect.zipRight(Fiber.interrupt(fiber)),
1152
+ Effect.zipRight(Fiber.inheritAll(fiber))
1147
1153
  )
1148
- ),
1149
- Effect.zipRight(restore(Deferred.await(channelDeferred))),
1150
- Effect.zipLeft(Fiber.inheritAll(fiber))
1151
1154
  )
1152
1155
  )
1153
- )
1156
+ ).pipe(Effect.zipRight(restore(Deferred.await(channelDeferred))))
1154
1157
  )
1155
- ))
1158
+ )
1159
+ ))
1156
1160
  )
1157
- }
1161
+ })
1158
1162
 
1159
1163
  /** @internal */
1160
1164
  const runScopedInterpret = <Env, InErr, InDone, OutErr, OutDone>(