effect 3.1.5 → 3.2.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 (115) hide show
  1. package/dist/cjs/Array.js +139 -2
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/Cause.js +8 -1
  4. package/dist/cjs/Cause.js.map +1 -1
  5. package/dist/cjs/Chunk.js +18 -1
  6. package/dist/cjs/Chunk.js.map +1 -1
  7. package/dist/cjs/Config.js.map +1 -1
  8. package/dist/cjs/Data.js +11 -8
  9. package/dist/cjs/Data.js.map +1 -1
  10. package/dist/cjs/Effect.js +106 -18
  11. package/dist/cjs/Effect.js.map +1 -1
  12. package/dist/cjs/Stream.js +19 -1
  13. package/dist/cjs/Stream.js.map +1 -1
  14. package/dist/cjs/Tracer.js.map +1 -1
  15. package/dist/cjs/internal/cause.js +55 -48
  16. package/dist/cjs/internal/cause.js.map +1 -1
  17. package/dist/cjs/internal/channel.js +11 -1
  18. package/dist/cjs/internal/channel.js.map +1 -1
  19. package/dist/cjs/internal/core-effect.js +51 -9
  20. package/dist/cjs/internal/core-effect.js.map +1 -1
  21. package/dist/cjs/internal/core.js +8 -4
  22. package/dist/cjs/internal/core.js.map +1 -1
  23. package/dist/cjs/internal/fiberRuntime.js +27 -14
  24. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  25. package/dist/cjs/internal/layer/circular.js +4 -1
  26. package/dist/cjs/internal/layer/circular.js.map +1 -1
  27. package/dist/cjs/internal/layer.js +11 -1
  28. package/dist/cjs/internal/layer.js.map +1 -1
  29. package/dist/cjs/internal/runtime.js +9 -4
  30. package/dist/cjs/internal/runtime.js.map +1 -1
  31. package/dist/cjs/internal/schedule.js +2 -2
  32. package/dist/cjs/internal/schedule.js.map +1 -1
  33. package/dist/cjs/internal/stream.js +27 -9
  34. package/dist/cjs/internal/stream.js.map +1 -1
  35. package/dist/cjs/internal/tracer.js +31 -1
  36. package/dist/cjs/internal/tracer.js.map +1 -1
  37. package/dist/cjs/internal/version.js +1 -1
  38. package/dist/dts/Array.d.ts +199 -0
  39. package/dist/dts/Array.d.ts.map +1 -1
  40. package/dist/dts/Cause.d.ts +15 -0
  41. package/dist/dts/Cause.d.ts.map +1 -1
  42. package/dist/dts/Chunk.d.ts +20 -0
  43. package/dist/dts/Chunk.d.ts.map +1 -1
  44. package/dist/dts/Config.d.ts +6 -2
  45. package/dist/dts/Config.d.ts.map +1 -1
  46. package/dist/dts/Data.d.ts +46 -13
  47. package/dist/dts/Data.d.ts.map +1 -1
  48. package/dist/dts/Effect.d.ts +122 -15
  49. package/dist/dts/Effect.d.ts.map +1 -1
  50. package/dist/dts/Stream.d.ts +23 -1
  51. package/dist/dts/Stream.d.ts.map +1 -1
  52. package/dist/dts/Tracer.d.ts +1 -0
  53. package/dist/dts/Tracer.d.ts.map +1 -1
  54. package/dist/dts/internal/core-effect.d.ts +7 -1
  55. package/dist/dts/internal/core-effect.d.ts.map +1 -1
  56. package/dist/dts/internal/core.d.ts.map +1 -1
  57. package/dist/dts/internal/stream.d.ts.map +1 -1
  58. package/dist/esm/Array.js +182 -0
  59. package/dist/esm/Array.js.map +1 -1
  60. package/dist/esm/Cause.js +7 -0
  61. package/dist/esm/Cause.js.map +1 -1
  62. package/dist/esm/Chunk.js +16 -0
  63. package/dist/esm/Chunk.js.map +1 -1
  64. package/dist/esm/Config.js.map +1 -1
  65. package/dist/esm/Data.js +11 -8
  66. package/dist/esm/Data.js.map +1 -1
  67. package/dist/esm/Effect.js +103 -15
  68. package/dist/esm/Effect.js.map +1 -1
  69. package/dist/esm/Stream.js +18 -0
  70. package/dist/esm/Stream.js.map +1 -1
  71. package/dist/esm/Tracer.js.map +1 -1
  72. package/dist/esm/internal/cause.js +54 -47
  73. package/dist/esm/internal/cause.js.map +1 -1
  74. package/dist/esm/internal/channel.js +10 -1
  75. package/dist/esm/internal/channel.js.map +1 -1
  76. package/dist/esm/internal/core-effect.js +47 -7
  77. package/dist/esm/internal/core-effect.js.map +1 -1
  78. package/dist/esm/internal/core.js +7 -3
  79. package/dist/esm/internal/core.js.map +1 -1
  80. package/dist/esm/internal/fiberRuntime.js +26 -14
  81. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  82. package/dist/esm/internal/layer/circular.js +4 -1
  83. package/dist/esm/internal/layer/circular.js.map +1 -1
  84. package/dist/esm/internal/layer.js +10 -1
  85. package/dist/esm/internal/layer.js.map +1 -1
  86. package/dist/esm/internal/runtime.js +9 -4
  87. package/dist/esm/internal/runtime.js.map +1 -1
  88. package/dist/esm/internal/schedule.js +2 -2
  89. package/dist/esm/internal/schedule.js.map +1 -1
  90. package/dist/esm/internal/stream.js +23 -7
  91. package/dist/esm/internal/stream.js.map +1 -1
  92. package/dist/esm/internal/tracer.js +29 -0
  93. package/dist/esm/internal/tracer.js.map +1 -1
  94. package/dist/esm/internal/version.js +1 -1
  95. package/package.json +1 -1
  96. package/src/Array.ts +214 -0
  97. package/src/Cause.ts +17 -0
  98. package/src/Chunk.ts +30 -0
  99. package/src/Config.ts +8 -6
  100. package/src/Data.ts +121 -48
  101. package/src/Effect.ts +126 -15
  102. package/src/Stream.ts +31 -1
  103. package/src/Tracer.ts +1 -0
  104. package/src/internal/cause.ts +70 -52
  105. package/src/internal/channel.ts +32 -14
  106. package/src/internal/core-effect.ts +74 -25
  107. package/src/internal/core.ts +8 -3
  108. package/src/internal/fiberRuntime.ts +22 -11
  109. package/src/internal/layer/circular.ts +4 -2
  110. package/src/internal/layer.ts +37 -14
  111. package/src/internal/runtime.ts +10 -5
  112. package/src/internal/schedule.ts +2 -2
  113. package/src/internal/stream.ts +37 -13
  114. package/src/internal/tracer.ts +21 -0
  115. package/src/internal/version.ts +1 -1
@@ -41,6 +41,7 @@ import * as SinkEndReason from "./stream/sinkEndReason.js";
41
41
  import * as ZipAllState from "./stream/zipAllState.js";
42
42
  import * as ZipChunksState from "./stream/zipChunksState.js";
43
43
  import * as InternalTake from "./take.js";
44
+ import * as InternalTracer from "./tracer.js";
44
45
  /** @internal */
45
46
  const StreamSymbolKey = "effect/Stream";
46
47
  /** @internal */
@@ -2027,13 +2028,19 @@ export const toQueue = /*#__PURE__*/dual(args => isStream(args[0]), (self, optio
2027
2028
  /** @internal */
2028
2029
  export const toQueueOfElements = /*#__PURE__*/dual(args => isStream(args[0]), (self, options) => Effect.tap(Effect.acquireRelease(Queue.bounded(options?.capacity ?? 2), queue => Queue.shutdown(queue)), queue => Effect.forkScoped(runIntoQueueElementsScoped(self, queue))));
2029
2030
  /** @internal */
2030
- export const toReadableStream = source => {
2031
+ export const toReadableStream = self => toReadableStreamRuntime(self, Runtime.defaultRuntime);
2032
+ /** @internal */
2033
+ export const toReadableStreamEffect = self => Effect.map(Effect.runtime(), runtime => toReadableStreamRuntime(self, runtime));
2034
+ /** @internal */
2035
+ export const toReadableStreamRuntime = /*#__PURE__*/dual(2, (self, runtime) => {
2036
+ const runSync = Runtime.runSync(runtime);
2037
+ const runPromise = Runtime.runPromise(runtime);
2031
2038
  let pull;
2032
2039
  let scope;
2033
2040
  return new ReadableStream({
2034
2041
  start(controller) {
2035
- scope = Effect.runSync(Scope.make());
2036
- pull = pipe(toPull(source), Scope.use(scope), Effect.runSync, Effect.tap(chunk => Effect.sync(() => {
2042
+ scope = runSync(Scope.make());
2043
+ pull = pipe(toPull(self), Scope.extend(scope), runSync, Effect.tap(chunk => Effect.sync(() => {
2037
2044
  Chunk.map(chunk, a => {
2038
2045
  controller.enqueue(a);
2039
2046
  });
@@ -2047,13 +2054,13 @@ export const toReadableStream = source => {
2047
2054
  }), Effect.asVoid);
2048
2055
  },
2049
2056
  pull() {
2050
- return Effect.runPromise(pull);
2057
+ return runPromise(pull);
2051
2058
  },
2052
2059
  cancel() {
2053
- return Effect.runPromise(Scope.close(scope, Exit.void));
2060
+ return runPromise(Scope.close(scope, Exit.void));
2054
2061
  }
2055
2062
  });
2056
- };
2063
+ });
2057
2064
  /** @internal */
2058
2065
  export const transduce = /*#__PURE__*/dual(2, (self, sink) => {
2059
2066
  const newChannel = core.suspend(() => {
@@ -2134,7 +2141,16 @@ export const whenCaseEffect = /*#__PURE__*/dual(2, (self, pf) => pipe(fromEffect
2134
2141
  /** @internal */
2135
2142
  export const whenEffect = /*#__PURE__*/dual(2, (self, effect) => pipe(fromEffect(effect), flatMap(bool => bool ? self : empty)));
2136
2143
  /** @internal */
2137
- export const withSpan = /*#__PURE__*/dual(3, (self, name, options) => new StreamImpl(channel.withSpan(toChannel(self), name, options)));
2144
+ export const withSpan = function () {
2145
+ const dataFirst = typeof arguments[0] !== "string";
2146
+ const name = dataFirst ? arguments[1] : arguments[0];
2147
+ const options = InternalTracer.addSpanStackTrace(dataFirst ? arguments[2] : arguments[1]);
2148
+ if (dataFirst) {
2149
+ const self = arguments[0];
2150
+ return new StreamImpl(channel.withSpan(toChannel(self), name, options));
2151
+ }
2152
+ return self => new StreamImpl(channel.withSpan(toChannel(self), name, options));
2153
+ };
2138
2154
  /** @internal */
2139
2155
  export const zip = /*#__PURE__*/dual(2, (self, that) => pipe(self, zipWith(that, (a, a2) => [a, a2])));
2140
2156
  /** @internal */