effect 3.2.0 → 3.2.2

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 (62) hide show
  1. package/dist/cjs/Config.js.map +1 -1
  2. package/dist/cjs/Effect.js.map +1 -1
  3. package/dist/cjs/Tracer.js.map +1 -1
  4. package/dist/cjs/Utils.js +20 -1
  5. package/dist/cjs/Utils.js.map +1 -1
  6. package/dist/cjs/internal/cause.js +13 -6
  7. package/dist/cjs/internal/cause.js.map +1 -1
  8. package/dist/cjs/internal/config.js.map +1 -1
  9. package/dist/cjs/internal/core-effect.js +21 -15
  10. package/dist/cjs/internal/core-effect.js.map +1 -1
  11. package/dist/cjs/internal/core.js +13 -16
  12. package/dist/cjs/internal/core.js.map +1 -1
  13. package/dist/cjs/internal/fiberRuntime.js +11 -10
  14. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  15. package/dist/cjs/internal/stm/core.js +12 -11
  16. package/dist/cjs/internal/stm/core.js.map +1 -1
  17. package/dist/cjs/internal/tracer.js +13 -14
  18. package/dist/cjs/internal/tracer.js.map +1 -1
  19. package/dist/cjs/internal/version.js +1 -1
  20. package/dist/dts/Config.d.ts +4 -4
  21. package/dist/dts/Config.d.ts.map +1 -1
  22. package/dist/dts/Effect.d.ts +24 -1
  23. package/dist/dts/Effect.d.ts.map +1 -1
  24. package/dist/dts/Tracer.d.ts +2 -1
  25. package/dist/dts/Tracer.d.ts.map +1 -1
  26. package/dist/dts/Utils.d.ts +12 -0
  27. package/dist/dts/Utils.d.ts.map +1 -1
  28. package/dist/dts/internal/core-effect.d.ts.map +1 -1
  29. package/dist/dts/internal/core.d.ts.map +1 -1
  30. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  31. package/dist/esm/Config.js.map +1 -1
  32. package/dist/esm/Effect.js.map +1 -1
  33. package/dist/esm/Tracer.js.map +1 -1
  34. package/dist/esm/Utils.js +19 -0
  35. package/dist/esm/Utils.js.map +1 -1
  36. package/dist/esm/internal/cause.js +12 -5
  37. package/dist/esm/internal/cause.js.map +1 -1
  38. package/dist/esm/internal/config.js.map +1 -1
  39. package/dist/esm/internal/core-effect.js +20 -14
  40. package/dist/esm/internal/core-effect.js.map +1 -1
  41. package/dist/esm/internal/core.js +8 -11
  42. package/dist/esm/internal/core.js.map +1 -1
  43. package/dist/esm/internal/fiberRuntime.js +11 -10
  44. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  45. package/dist/esm/internal/stm/core.js +10 -9
  46. package/dist/esm/internal/stm/core.js.map +1 -1
  47. package/dist/esm/internal/tracer.js +13 -14
  48. package/dist/esm/internal/tracer.js.map +1 -1
  49. package/dist/esm/internal/version.js +1 -1
  50. package/package.json +1 -1
  51. package/src/Config.ts +4 -3
  52. package/src/Effect.ts +29 -1
  53. package/src/Tracer.ts +2 -1
  54. package/src/Utils.ts +20 -0
  55. package/src/internal/cause.ts +17 -7
  56. package/src/internal/config.ts +1 -1
  57. package/src/internal/core-effect.ts +23 -15
  58. package/src/internal/core.ts +10 -14
  59. package/src/internal/fiberRuntime.ts +15 -12
  60. package/src/internal/stm/core.ts +16 -9
  61. package/src/internal/tracer.ts +15 -7
  62. package/src/internal/version.ts +1 -1
@@ -1,3 +1,4 @@
1
+ import { effect_internal_function } from "effect/Utils"
1
2
  import * as Cause from "../../Cause.js"
2
3
  import * as Context from "../../Context.js"
3
4
  import * as Effect from "../../Effect.js"
@@ -504,15 +505,19 @@ export class STMDriver<in out R, out E, out A> {
504
505
  case "Commit": {
505
506
  switch (current.effect_instruction_i0) {
506
507
  case OpCodes.OP_DIE: {
507
- exit = TExit.die(current.effect_instruction_i1())
508
+ exit = TExit.die(effect_internal_function(() => current.effect_instruction_i1()))
508
509
  break
509
510
  }
510
511
  case OpCodes.OP_FAIL: {
511
512
  const cont = this.nextFailure()
512
513
  if (cont === undefined) {
513
- exit = TExit.fail(current.effect_instruction_i1())
514
+ exit = TExit.fail(effect_internal_function(() => current.effect_instruction_i1()))
514
515
  } else {
515
- curr = cont.effect_instruction_i2(current.effect_instruction_i1()) as Primitive
516
+ curr = effect_internal_function(() =>
517
+ cont.effect_instruction_i2(
518
+ effect_internal_function(() => current.effect_instruction_i1())
519
+ ) as Primitive
520
+ )
516
521
  }
517
522
  break
518
523
  }
@@ -521,7 +526,7 @@ export class STMDriver<in out R, out E, out A> {
521
526
  if (cont === undefined) {
522
527
  exit = TExit.retry
523
528
  } else {
524
- curr = cont.effect_instruction_i2() as Primitive
529
+ curr = effect_internal_function(() => cont.effect_instruction_i2() as Primitive)
525
530
  }
526
531
  break
527
532
  }
@@ -530,7 +535,9 @@ export class STMDriver<in out R, out E, out A> {
530
535
  break
531
536
  }
532
537
  case OpCodes.OP_WITH_STM_RUNTIME: {
533
- curr = current.effect_instruction_i1(this as STMDriver<unknown, unknown, unknown>) as Primitive
538
+ curr = effect_internal_function(() =>
539
+ current.effect_instruction_i1(this as STMDriver<unknown, unknown, unknown>) as Primitive
540
+ )
534
541
  break
535
542
  }
536
543
  case OpCodes.OP_ON_SUCCESS:
@@ -542,7 +549,7 @@ export class STMDriver<in out R, out E, out A> {
542
549
  }
543
550
  case OpCodes.OP_PROVIDE: {
544
551
  const env = this.env
545
- this.env = current.effect_instruction_i2(env)
552
+ this.env = effect_internal_function(() => current.effect_instruction_i2(env))
546
553
  curr = pipe(
547
554
  current.effect_instruction_i1,
548
555
  ensuring(sync(() => (this.env = env)))
@@ -555,17 +562,17 @@ export class STMDriver<in out R, out E, out A> {
555
562
  if (cont === undefined) {
556
563
  exit = TExit.succeed(value)
557
564
  } else {
558
- curr = cont.effect_instruction_i2(value) as Primitive
565
+ curr = effect_internal_function(() => cont.effect_instruction_i2(value) as Primitive)
559
566
  }
560
567
  break
561
568
  }
562
569
  case OpCodes.OP_SYNC: {
563
- const value = current.effect_instruction_i1()
570
+ const value = effect_internal_function(() => current.effect_instruction_i1())
564
571
  const cont = this.nextSuccess()
565
572
  if (cont === undefined) {
566
573
  exit = TExit.succeed(value)
567
574
  } else {
568
- curr = cont.effect_instruction_i2(value) as Primitive
575
+ curr = effect_internal_function(() => cont.effect_instruction_i2(value) as Primitive)
569
576
  }
570
577
  break
571
578
  }
@@ -118,12 +118,20 @@ export const addSpanStackTrace = (options: Tracer.SpanOptions | undefined): Trac
118
118
  Error.stackTraceLimit = 3
119
119
  const traceError = new Error()
120
120
  Error.stackTraceLimit = limit
121
- if (traceError.stack === undefined) {
122
- return { ...options, captureStackTrace: false }
123
- }
124
- const stack = traceError.stack.split("\n")
125
- if (!stack[3]) {
126
- return { ...options, captureStackTrace: false }
121
+ let cache: false | string = false
122
+ return {
123
+ ...options,
124
+ captureStackTrace: () => {
125
+ if (cache !== false) {
126
+ return cache
127
+ }
128
+ if (traceError.stack !== undefined) {
129
+ const stack = traceError.stack.split("\n")
130
+ if (stack[3] !== undefined) {
131
+ cache = stack[3].trim()
132
+ return cache
133
+ }
134
+ }
135
+ }
127
136
  }
128
- return { ...options, captureStackTrace: stack[3].trim() }
129
137
  }
@@ -1,4 +1,4 @@
1
- let moduleVersion = "3.2.0"
1
+ let moduleVersion = "3.2.2"
2
2
 
3
3
  export const getCurrentVersion = () => moduleVersion
4
4