effect 3.12.7 → 3.12.8

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 (117) hide show
  1. package/dist/cjs/BigDecimal.js +1 -1
  2. package/dist/cjs/BigDecimal.js.map +1 -1
  3. package/dist/cjs/Cause.js +630 -167
  4. package/dist/cjs/Cause.js.map +1 -1
  5. package/dist/cjs/Chunk.js +4 -8
  6. package/dist/cjs/Chunk.js.map +1 -1
  7. package/dist/cjs/ConfigProvider.js +1 -0
  8. package/dist/cjs/ConfigProvider.js.map +1 -1
  9. package/dist/cjs/Cron.js +26 -10
  10. package/dist/cjs/Cron.js.map +1 -1
  11. package/dist/cjs/Duration.js +7 -4
  12. package/dist/cjs/Duration.js.map +1 -1
  13. package/dist/cjs/Effect.js.map +1 -1
  14. package/dist/cjs/Either.js +5 -24
  15. package/dist/cjs/Either.js.map +1 -1
  16. package/dist/cjs/Layer.js.map +1 -1
  17. package/dist/cjs/Option.js +1042 -363
  18. package/dist/cjs/Option.js.map +1 -1
  19. package/dist/cjs/ParseResult.js +41 -18
  20. package/dist/cjs/ParseResult.js.map +1 -1
  21. package/dist/cjs/Schedule.js +8 -1
  22. package/dist/cjs/Schedule.js.map +1 -1
  23. package/dist/cjs/Schema.js +51 -10
  24. package/dist/cjs/Schema.js.map +1 -1
  25. package/dist/cjs/internal/cause.js +23 -108
  26. package/dist/cjs/internal/cause.js.map +1 -1
  27. package/dist/cjs/internal/core.js +4 -5
  28. package/dist/cjs/internal/core.js.map +1 -1
  29. package/dist/cjs/internal/layer.js.map +1 -1
  30. package/dist/cjs/internal/schedule.js.map +1 -1
  31. package/dist/cjs/internal/secret.js +6 -5
  32. package/dist/cjs/internal/secret.js.map +1 -1
  33. package/dist/cjs/internal/stream.js +21 -23
  34. package/dist/cjs/internal/stream.js.map +1 -1
  35. package/dist/cjs/internal/version.js +1 -1
  36. package/dist/dts/BigDecimal.d.ts.map +1 -1
  37. package/dist/dts/Cause.d.ts +1157 -304
  38. package/dist/dts/Cause.d.ts.map +1 -1
  39. package/dist/dts/Chunk.d.ts +3 -6
  40. package/dist/dts/Chunk.d.ts.map +1 -1
  41. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  42. package/dist/dts/Cron.d.ts +25 -9
  43. package/dist/dts/Cron.d.ts.map +1 -1
  44. package/dist/dts/Duration.d.ts +1 -1
  45. package/dist/dts/Duration.d.ts.map +1 -1
  46. package/dist/dts/Effect.d.ts +3 -2
  47. package/dist/dts/Effect.d.ts.map +1 -1
  48. package/dist/dts/Either.d.ts.map +1 -1
  49. package/dist/dts/Layer.d.ts +1 -1
  50. package/dist/dts/Layer.d.ts.map +1 -1
  51. package/dist/dts/Option.d.ts +2288 -784
  52. package/dist/dts/Option.d.ts.map +1 -1
  53. package/dist/dts/ParseResult.d.ts +4 -4
  54. package/dist/dts/ParseResult.d.ts.map +1 -1
  55. package/dist/dts/Schedule.d.ts +7 -0
  56. package/dist/dts/Schedule.d.ts.map +1 -1
  57. package/dist/dts/Schema.d.ts +15 -4
  58. package/dist/dts/Schema.d.ts.map +1 -1
  59. package/dist/dts/internal/core.d.ts.map +1 -1
  60. package/dist/dts/internal/stream.d.ts +1 -1
  61. package/dist/dts/internal/stream.d.ts.map +1 -1
  62. package/dist/esm/BigDecimal.js +1 -1
  63. package/dist/esm/BigDecimal.js.map +1 -1
  64. package/dist/esm/Cause.js +630 -167
  65. package/dist/esm/Cause.js.map +1 -1
  66. package/dist/esm/Chunk.js +4 -8
  67. package/dist/esm/Chunk.js.map +1 -1
  68. package/dist/esm/ConfigProvider.js +1 -0
  69. package/dist/esm/ConfigProvider.js.map +1 -1
  70. package/dist/esm/Cron.js +27 -11
  71. package/dist/esm/Cron.js.map +1 -1
  72. package/dist/esm/Duration.js +7 -4
  73. package/dist/esm/Duration.js.map +1 -1
  74. package/dist/esm/Effect.js.map +1 -1
  75. package/dist/esm/Either.js +5 -24
  76. package/dist/esm/Either.js.map +1 -1
  77. package/dist/esm/Layer.js.map +1 -1
  78. package/dist/esm/Option.js +1041 -363
  79. package/dist/esm/Option.js.map +1 -1
  80. package/dist/esm/ParseResult.js +41 -18
  81. package/dist/esm/ParseResult.js.map +1 -1
  82. package/dist/esm/Schedule.js +7 -0
  83. package/dist/esm/Schedule.js.map +1 -1
  84. package/dist/esm/Schema.js +51 -10
  85. package/dist/esm/Schema.js.map +1 -1
  86. package/dist/esm/internal/cause.js +22 -108
  87. package/dist/esm/internal/cause.js.map +1 -1
  88. package/dist/esm/internal/core.js +4 -5
  89. package/dist/esm/internal/core.js.map +1 -1
  90. package/dist/esm/internal/layer.js.map +1 -1
  91. package/dist/esm/internal/schedule.js.map +1 -1
  92. package/dist/esm/internal/secret.js +5 -4
  93. package/dist/esm/internal/secret.js.map +1 -1
  94. package/dist/esm/internal/stream.js +21 -23
  95. package/dist/esm/internal/stream.js.map +1 -1
  96. package/dist/esm/internal/version.js +1 -1
  97. package/package.json +1 -1
  98. package/src/BigDecimal.ts +1 -1
  99. package/src/Cause.ts +1158 -304
  100. package/src/Chunk.ts +8 -11
  101. package/src/ConfigProvider.ts +1 -0
  102. package/src/Cron.ts +28 -11
  103. package/src/Duration.ts +10 -5
  104. package/src/Effect.ts +5 -2
  105. package/src/Either.ts +11 -28
  106. package/src/Layer.ts +1 -1
  107. package/src/Option.ts +2314 -820
  108. package/src/ParseResult.ts +53 -29
  109. package/src/Schedule.ts +8 -0
  110. package/src/Schema.ts +68 -12
  111. package/src/internal/cause.ts +38 -137
  112. package/src/internal/core.ts +4 -5
  113. package/src/internal/layer.ts +1 -1
  114. package/src/internal/schedule.ts +7 -6
  115. package/src/internal/secret.ts +6 -4
  116. package/src/internal/stream.ts +24 -37
  117. package/src/internal/version.ts +1 -1
@@ -23,15 +23,17 @@ export const SecretTypeId: Secret.SecretTypeId = Symbol.for(
23
23
  */
24
24
  export const isSecret = (u: unknown): u is Secret.Secret => hasProperty(u, SecretTypeId)
25
25
 
26
+ const SecretProto = {
27
+ ...redacted_.proto,
28
+ [SecretTypeId]: SecretTypeId
29
+ }
30
+
26
31
  /**
27
32
  * @internal
28
33
  * @deprecated
29
34
  */
30
35
  export const make = (bytes: Array<number>): Secret.Secret => {
31
- const secret = Object.create({
32
- ...redacted_.proto,
33
- [SecretTypeId]: SecretTypeId
34
- })
36
+ const secret = Object.create(SecretProto)
35
37
  Object.defineProperty(secret, "toString", {
36
38
  enumerable: false,
37
39
  value() {
@@ -25,7 +25,7 @@ import * as RcRef from "../RcRef.js"
25
25
  import * as Ref from "../Ref.js"
26
26
  import * as Runtime from "../Runtime.js"
27
27
  import * as Schedule from "../Schedule.js"
28
- import * as Scope from "../Scope.js"
28
+ import type * as Scope from "../Scope.js"
29
29
  import type * as Sink from "../Sink.js"
30
30
  import type * as Stream from "../Stream.js"
31
31
  import type * as Emit from "../StreamEmit.js"
@@ -7085,52 +7085,39 @@ export const toReadableStreamRuntime = dual<
7085
7085
  runtime: Runtime.Runtime<XR>,
7086
7086
  options?: { readonly strategy?: QueuingStrategy<A> | undefined }
7087
7087
  ): ReadableStream<A> => {
7088
- const runSync = Runtime.runSync(runtime)
7089
7088
  const runFork = Runtime.runFork(runtime)
7089
+ let currentResolve: (() => void) | undefined = undefined
7090
+ let fiber: Fiber.RuntimeFiber<void, E> | undefined = undefined
7091
+ const latch = Effect.unsafeMakeLatch(false)
7090
7092
 
7091
- let pull: Effect.Effect<void, never, R>
7092
- let scope: Scope.CloseableScope
7093
7093
  return new ReadableStream<A>({
7094
7094
  start(controller) {
7095
- scope = runSync(Scope.make())
7096
- const pullChunk: Effect.Effect<Chunk.Chunk<A>, Option.Option<E>, R> = pipe(
7097
- toPull(self),
7098
- Scope.extend(scope),
7099
- runSync,
7100
- Effect.flatMap((chunk) => Chunk.isEmpty(chunk) ? pullChunk : Effect.succeed(chunk))
7101
- )
7102
- pull = pipe(
7103
- pullChunk,
7104
- Effect.tap((chunk) =>
7105
- Effect.sync(() => {
7106
- Chunk.map(chunk, (a) => {
7107
- controller.enqueue(a)
7108
- })
7109
- })
7110
- ),
7111
- Effect.tapErrorCause(() => Scope.close(scope, Exit.void)),
7112
- Effect.catchTags({
7113
- "None": () =>
7114
- Effect.sync(() => {
7115
- controller.close()
7116
- }),
7117
- "Some": (error) =>
7118
- Effect.sync(() => {
7119
- controller.error(error.value)
7120
- })
7121
- }),
7122
- Effect.asVoid
7123
- )
7095
+ fiber = runFork(runForEachChunk(self, (chunk) =>
7096
+ latch.whenOpen(Effect.sync(() => {
7097
+ latch.unsafeClose()
7098
+ for (const item of chunk) {
7099
+ controller.enqueue(item)
7100
+ }
7101
+ currentResolve!()
7102
+ currentResolve = undefined
7103
+ }))))
7104
+ fiber.addObserver((exit) => {
7105
+ if (exit._tag === "Failure") {
7106
+ controller.error(Cause.squash(exit.cause))
7107
+ } else {
7108
+ controller.close()
7109
+ }
7110
+ })
7124
7111
  },
7125
7112
  pull() {
7126
7113
  return new Promise<void>((resolve) => {
7127
- runFork(pull, { scope }).addObserver((_) => resolve())
7114
+ currentResolve = resolve
7115
+ Effect.runSync(latch.open)
7128
7116
  })
7129
7117
  },
7130
7118
  cancel() {
7131
- return new Promise<void>((resolve) => {
7132
- runFork(Scope.close(scope, Exit.void)).addObserver((_) => resolve())
7133
- })
7119
+ if (!fiber) return
7120
+ return Effect.runPromise(Effect.asVoid(Fiber.interrupt(fiber)))
7134
7121
  }
7135
7122
  }, options?.strategy)
7136
7123
  }
@@ -1,4 +1,4 @@
1
- let moduleVersion = "3.12.7"
1
+ let moduleVersion = "3.12.8"
2
2
 
3
3
  export const getCurrentVersion = () => moduleVersion
4
4