effect 3.12.4 → 3.12.5

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 (43) hide show
  1. package/dist/cjs/Arbitrary.js +72 -14
  2. package/dist/cjs/Arbitrary.js.map +1 -1
  3. package/dist/cjs/Inspectable.js +0 -4
  4. package/dist/cjs/Inspectable.js.map +1 -1
  5. package/dist/cjs/ParseResult.js +2 -2
  6. package/dist/cjs/ParseResult.js.map +1 -1
  7. package/dist/cjs/Schema.js +154 -93
  8. package/dist/cjs/Schema.js.map +1 -1
  9. package/dist/cjs/internal/dateTime.js +12 -3
  10. package/dist/cjs/internal/dateTime.js.map +1 -1
  11. package/dist/cjs/internal/effect/circular.js +15 -2
  12. package/dist/cjs/internal/effect/circular.js.map +1 -1
  13. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  14. package/dist/cjs/internal/version.js +1 -1
  15. package/dist/dts/Arbitrary.d.ts.map +1 -1
  16. package/dist/dts/Inspectable.d.ts.map +1 -1
  17. package/dist/dts/ParseResult.d.ts +11 -0
  18. package/dist/dts/ParseResult.d.ts.map +1 -1
  19. package/dist/dts/Schema.d.ts +34 -15
  20. package/dist/dts/Schema.d.ts.map +1 -1
  21. package/dist/esm/Arbitrary.js +72 -14
  22. package/dist/esm/Arbitrary.js.map +1 -1
  23. package/dist/esm/Inspectable.js +0 -3
  24. package/dist/esm/Inspectable.js.map +1 -1
  25. package/dist/esm/ParseResult.js +2 -2
  26. package/dist/esm/ParseResult.js.map +1 -1
  27. package/dist/esm/Schema.js +149 -86
  28. package/dist/esm/Schema.js.map +1 -1
  29. package/dist/esm/internal/dateTime.js +11 -2
  30. package/dist/esm/internal/dateTime.js.map +1 -1
  31. package/dist/esm/internal/effect/circular.js +15 -2
  32. package/dist/esm/internal/effect/circular.js.map +1 -1
  33. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  34. package/dist/esm/internal/version.js +1 -1
  35. package/package.json +1 -1
  36. package/src/Arbitrary.ts +84 -14
  37. package/src/Inspectable.ts +0 -1
  38. package/src/ParseResult.ts +15 -2
  39. package/src/Schema.ts +191 -93
  40. package/src/internal/dateTime.ts +12 -2
  41. package/src/internal/effect/circular.ts +19 -17
  42. package/src/internal/fiberRuntime.ts +2 -1
  43. package/src/internal/version.ts +1 -1
@@ -27,7 +27,6 @@ import type * as Types from "../../Types.js"
27
27
  import * as internalCause from "../cause.js"
28
28
  import * as effect from "../core-effect.js"
29
29
  import * as core from "../core.js"
30
- import * as executionStrategy from "../executionStrategy.js"
31
30
  import * as internalFiber from "../fiber.js"
32
31
  import * as fiberRuntime from "../fiberRuntime.js"
33
32
  import { globalScope } from "../fiberScope.js"
@@ -362,23 +361,26 @@ export const forkIn = dual<
362
361
  >(
363
362
  2,
364
363
  (self, scope) =>
365
- core.uninterruptibleMask((restore) =>
366
- core.flatMap(scope.fork(executionStrategy.sequential), (child) =>
367
- pipe(
368
- restore(self),
369
- core.onExit((exit) => child.close(exit)),
370
- fiberRuntime.forkDaemon,
371
- core.tap((fiber) =>
372
- child.addFinalizer(() =>
373
- core.fiberIdWith((fiberId) =>
374
- Equal.equals(fiberId, fiber.id()) ?
375
- core.void :
376
- core.asVoid(core.interruptFiber(fiber))
377
- )
378
- )
364
+ core.withFiberRuntime((parent, parentStatus) => {
365
+ const scopeImpl = scope as fiberRuntime.ScopeImpl
366
+ const fiber = fiberRuntime.unsafeFork(self, parent, parentStatus.runtimeFlags, globalScope)
367
+ if (scopeImpl.state._tag === "Open") {
368
+ const finalizer = () =>
369
+ core.fiberIdWith((fiberId) =>
370
+ Equal.equals(fiberId, fiber.id()) ?
371
+ core.void :
372
+ core.asVoid(core.interruptFiber(fiber))
379
373
  )
380
- ))
381
- )
374
+ scopeImpl.state.finalizers.add(finalizer)
375
+ fiber.addObserver(() => {
376
+ if (scopeImpl.state._tag === "Closed") return
377
+ scopeImpl.state.finalizers.delete(finalizer)
378
+ })
379
+ } else {
380
+ fiber.unsafeInterruptAsFork(parent.id())
381
+ }
382
+ return core.succeed(fiber)
383
+ })
382
384
  )
383
385
 
384
386
  /** @internal */
@@ -3207,7 +3207,8 @@ export const scopeTag = Context.GenericTag<Scope.Scope>("effect/Scope")
3207
3207
  /* @internal */
3208
3208
  export const scope: Effect.Effect<Scope.Scope, never, Scope.Scope> = scopeTag
3209
3209
 
3210
- interface ScopeImpl extends Scope.CloseableScope {
3210
+ /** @internal */
3211
+ export interface ScopeImpl extends Scope.CloseableScope {
3211
3212
  state: {
3212
3213
  readonly _tag: "Open"
3213
3214
  readonly finalizers: Set<Scope.Scope.Finalizer>
@@ -1,4 +1,4 @@
1
- let moduleVersion = "3.12.4"
1
+ let moduleVersion = "3.12.5"
2
2
 
3
3
  export const getCurrentVersion = () => moduleVersion
4
4