effect 3.17.14 → 3.18.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.
- package/Graph/package.json +6 -0
- package/dist/cjs/Context.js +11 -3
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Graph.js +2964 -0
- package/dist/cjs/Graph.js.map +1 -0
- package/dist/cjs/Tracer.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +1 -1
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +12 -2
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/logger.js +2 -3
- package/dist/cjs/internal/logger.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/cjs/internal/version.js.map +1 -1
- package/dist/dts/Context.d.ts +27 -3
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +4 -0
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Graph.d.ts +1652 -0
- package/dist/dts/Graph.d.ts.map +1 -0
- package/dist/dts/Tracer.d.ts +1 -1
- package/dist/dts/Tracer.d.ts.map +1 -1
- package/dist/dts/index.d.ts +5 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/core-effect.d.ts.map +1 -1
- package/dist/esm/Context.js +10 -2
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Graph.js +2905 -0
- package/dist/esm/Graph.js.map +1 -0
- package/dist/esm/Tracer.js.map +1 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/core-effect.js +1 -1
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +12 -2
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/logger.js +2 -3
- package/dist/esm/internal/logger.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/dist/esm/internal/version.js.map +1 -1
- package/package.json +9 -1
- package/src/Context.ts +28 -3
- package/src/Effect.ts +5 -0
- package/src/Graph.ts +3564 -0
- package/src/Tracer.ts +2 -1
- package/src/index.ts +6 -0
- package/src/internal/core-effect.ts +2 -1
- package/src/internal/effect/circular.ts +31 -17
- package/src/internal/logger.ts +2 -3
- package/src/internal/version.ts +1 -1
package/src/Tracer.ts
CHANGED
|
@@ -31,7 +31,8 @@ export interface Tracer {
|
|
|
31
31
|
context: Context.Context<never>,
|
|
32
32
|
links: ReadonlyArray<SpanLink>,
|
|
33
33
|
startTime: bigint,
|
|
34
|
-
kind: SpanKind
|
|
34
|
+
kind: SpanKind,
|
|
35
|
+
options?: SpanOptions
|
|
35
36
|
): Span
|
|
36
37
|
context<X>(f: () => X, fiber: Fiber.RuntimeFiber<any, any>): X
|
|
37
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -2126,7 +2126,8 @@ export const unsafeMakeSpan = <XA, XE>(
|
|
|
2126
2126
|
options.context ?? Context.empty(),
|
|
2127
2127
|
links,
|
|
2128
2128
|
timingEnabled ? clock.unsafeCurrentTimeNanos() : bigint0,
|
|
2129
|
-
options.kind ?? "internal"
|
|
2129
|
+
options.kind ?? "internal",
|
|
2130
|
+
options
|
|
2130
2131
|
)
|
|
2131
2132
|
|
|
2132
2133
|
if (annotationsFromEnv._tag === "Some") {
|
|
@@ -37,7 +37,7 @@ class Semaphore {
|
|
|
37
37
|
public waiters = new Set<() => void>()
|
|
38
38
|
public taken = 0
|
|
39
39
|
|
|
40
|
-
constructor(
|
|
40
|
+
constructor(public permits: number) {}
|
|
41
41
|
|
|
42
42
|
get free() {
|
|
43
43
|
return this.permits - this.taken
|
|
@@ -63,21 +63,35 @@ class Semaphore {
|
|
|
63
63
|
return resume(core.succeed(n))
|
|
64
64
|
})
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
66
|
+
updateTakenUnsafe(fiber: Fiber.RuntimeFiber<any, any>, f: (n: number) => number): Effect.Effect<number> {
|
|
67
|
+
this.taken = f(this.taken)
|
|
68
|
+
if (this.waiters.size > 0) {
|
|
69
|
+
fiber.getFiberRef(currentScheduler).scheduleTask(() => {
|
|
70
|
+
const iter = this.waiters.values()
|
|
71
|
+
let item = iter.next()
|
|
72
|
+
while (item.done === false && this.free > 0) {
|
|
73
|
+
item.value()
|
|
74
|
+
item = iter.next()
|
|
75
|
+
}
|
|
76
|
+
}, fiber.getFiberRef(core.currentSchedulingPriority))
|
|
77
|
+
}
|
|
78
|
+
return core.succeed(this.free)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
updateTaken(f: (n: number) => number): Effect.Effect<number> {
|
|
82
|
+
return core.withFiberRuntime((fiber) => this.updateTakenUnsafe(fiber, f))
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
readonly resize = (permits: number) =>
|
|
86
|
+
core.asVoid(
|
|
87
|
+
core.withFiberRuntime((fiber) => {
|
|
88
|
+
this.permits = permits
|
|
89
|
+
if (this.free < 0) {
|
|
90
|
+
return core.void
|
|
91
|
+
}
|
|
92
|
+
return this.updateTakenUnsafe(fiber, (taken) => taken)
|
|
93
|
+
})
|
|
94
|
+
)
|
|
81
95
|
|
|
82
96
|
readonly release = (n: number): Effect.Effect<number> => this.updateTaken((taken) => taken - n)
|
|
83
97
|
|
|
@@ -104,7 +118,7 @@ class Semaphore {
|
|
|
104
118
|
}
|
|
105
119
|
|
|
106
120
|
/** @internal */
|
|
107
|
-
export const unsafeMakeSemaphore = (permits: number): Semaphore => new Semaphore(permits)
|
|
121
|
+
export const unsafeMakeSemaphore = (permits: number): Effect.Semaphore => new Semaphore(permits)
|
|
108
122
|
|
|
109
123
|
/** @internal */
|
|
110
124
|
export const makeSemaphore = (permits: number) => core.sync(() => unsafeMakeSemaphore(permits))
|
package/src/internal/logger.ts
CHANGED
|
@@ -356,7 +356,6 @@ const prettyLoggerTty = (options: {
|
|
|
356
356
|
readonly stderr: boolean
|
|
357
357
|
readonly formatDate: (date: Date) => string
|
|
358
358
|
}) => {
|
|
359
|
-
const processIsBun = typeof process === "object" && "isBun" in process && process.isBun === true
|
|
360
359
|
const color = options.colors ? withColor : withColorNoop
|
|
361
360
|
return makeLogger<unknown, void>(
|
|
362
361
|
({ annotations, cause, context, date, fiberId, logLevel, message: message_, spans }) => {
|
|
@@ -389,7 +388,7 @@ const prettyLoggerTty = (options: {
|
|
|
389
388
|
}
|
|
390
389
|
|
|
391
390
|
log(firstLine)
|
|
392
|
-
|
|
391
|
+
console.group()
|
|
393
392
|
|
|
394
393
|
if (!Cause.isEmpty(cause)) {
|
|
395
394
|
log(Cause.pretty(cause, { renderErrorCause: true }))
|
|
@@ -407,7 +406,7 @@ const prettyLoggerTty = (options: {
|
|
|
407
406
|
}
|
|
408
407
|
}
|
|
409
408
|
|
|
410
|
-
|
|
409
|
+
console.groupEnd()
|
|
411
410
|
}
|
|
412
411
|
)
|
|
413
412
|
}
|
package/src/internal/version.ts
CHANGED