effect 2.4.13 → 2.4.14
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/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +17 -3
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/query.js +14 -14
- package/dist/cjs/internal/query.js.map +1 -1
- package/dist/cjs/internal/request.js +1 -0
- package/dist/cjs/internal/request.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Request.d.ts +1 -0
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +17 -3
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/query.js +14 -14
- package/dist/esm/internal/query.js.map +1 -1
- package/dist/esm/internal/request.js +1 -0
- package/dist/esm/internal/request.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Request.ts +2 -1
- package/src/internal/fiberRuntime.ts +24 -4
- package/src/internal/query.ts +53 -50
- package/src/internal/request.ts +1 -0
- package/src/internal/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","names":["dual","hasProperty","completedRequestMap","core","StructuralPrototype","RequestSymbolKey","RequestTypeId","Symbol","for","requestVariance","_E","_","_A","RequestPrototype","isRequest","u","of","args","Object","assign","create","tagged","tag","request","_tag","Class","prototype","TaggedClass","complete","self","result","fiberRefGetWith","currentRequestMap","map","sync","has","entry","get","state","completed","deferredUnsafeDone","completeEffect","effect","matchEffect","onFailure","error","exitFail","onSuccess","value","exitSucceed","fail","failCause","cause","exitFailCause","succeed","Listeners","count","observers","Set","addObserver","f","add","removeObserver","delete","increment","forEach","decrement","filterOutCompleted","requests","filter"],"sources":["../../../src/internal/request.ts"],"sourcesContent":[null],"mappings":"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
|
|
1
|
+
{"version":3,"file":"request.js","names":["dual","hasProperty","completedRequestMap","core","StructuralPrototype","RequestSymbolKey","RequestTypeId","Symbol","for","requestVariance","_E","_","_A","RequestPrototype","isRequest","u","of","args","Object","assign","create","tagged","tag","request","_tag","Class","prototype","TaggedClass","complete","self","result","fiberRefGetWith","currentRequestMap","map","sync","has","entry","get","state","completed","deferredUnsafeDone","completeEffect","effect","matchEffect","onFailure","error","exitFail","onSuccess","value","exitSucceed","fail","failCause","cause","exitFailCause","succeed","Listeners","count","observers","Set","interrupted","addObserver","f","add","removeObserver","delete","increment","forEach","decrement","filterOutCompleted","requests","filter"],"sources":["../../../src/internal/request.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/src/Request.ts
CHANGED
|
@@ -245,6 +245,7 @@ export const succeed: {
|
|
|
245
245
|
export interface Listeners {
|
|
246
246
|
readonly count: number
|
|
247
247
|
readonly observers: Set<(count: number) => void>
|
|
248
|
+
interrupted: boolean
|
|
248
249
|
addObserver(f: (count: number) => void): void
|
|
249
250
|
removeObserver(f: (count: number) => void): void
|
|
250
251
|
increment(): void
|
|
@@ -309,7 +310,7 @@ export interface Entry<out R> extends Entry.Variance<R> {
|
|
|
309
310
|
readonly listeners: Listeners
|
|
310
311
|
readonly ownerId: FiberId
|
|
311
312
|
readonly state: {
|
|
312
|
-
completed: boolean
|
|
313
|
+
completed: boolean
|
|
313
314
|
}
|
|
314
315
|
}
|
|
315
316
|
|
|
@@ -241,8 +241,12 @@ const runBlockedRequests = (self: RequestBlock.RequestBlock) =>
|
|
|
241
241
|
map.set(entry.request as Request<any, any>, entry)
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
|
+
const flat = arr.flat()
|
|
244
245
|
return core.fiberRefLocally(
|
|
245
|
-
invokeWithInterrupt(dataSource.runAll(arr),
|
|
246
|
+
invokeWithInterrupt(dataSource.runAll(arr), flat, () =>
|
|
247
|
+
flat.forEach((entry) => {
|
|
248
|
+
entry.listeners.interrupted = true
|
|
249
|
+
})),
|
|
246
250
|
currentRequestMap,
|
|
247
251
|
map
|
|
248
252
|
)
|
|
@@ -2143,7 +2147,17 @@ export const forEachConcurrentDiscard = <A, X, E, R>(
|
|
|
2143
2147
|
restore(internalFiber.join(processingFiber)),
|
|
2144
2148
|
() => {
|
|
2145
2149
|
onInterruptSignal()
|
|
2146
|
-
|
|
2150
|
+
const all = [processingFiber] as Array<FiberRuntime<any, any>>
|
|
2151
|
+
residual.map((blocked) => {
|
|
2152
|
+
const fiber = runFiber(blocked)
|
|
2153
|
+
parent._scheduler.scheduleTask(() => {
|
|
2154
|
+
fiber.unsafeInterruptAsFork(parent.id())
|
|
2155
|
+
}, 0)
|
|
2156
|
+
return fiber
|
|
2157
|
+
}).forEach((additional) => {
|
|
2158
|
+
all.push(additional as unknown as FiberRuntime<any, any>)
|
|
2159
|
+
})
|
|
2160
|
+
return core.exit(fiberJoinAll(all))
|
|
2147
2161
|
}
|
|
2148
2162
|
)),
|
|
2149
2163
|
() => core.forEachSequential(joinOrder, (f) => f.inheritAll)
|
|
@@ -3421,8 +3435,13 @@ export const ensuring: {
|
|
|
3421
3435
|
/** @internal */
|
|
3422
3436
|
export const invokeWithInterrupt: <A, E, R>(
|
|
3423
3437
|
self: Effect.Effect<A, E, R>,
|
|
3424
|
-
entries: ReadonlyArray<Entry<unknown
|
|
3425
|
-
) =>
|
|
3438
|
+
entries: ReadonlyArray<Entry<unknown>>,
|
|
3439
|
+
onInterrupt?: () => void
|
|
3440
|
+
) => Effect.Effect<void, E, R> = <A, E, R>(
|
|
3441
|
+
self: Effect.Effect<A, E, R>,
|
|
3442
|
+
entries: ReadonlyArray<Entry<unknown>>,
|
|
3443
|
+
onInterrupt?: () => void
|
|
3444
|
+
) =>
|
|
3426
3445
|
core.fiberIdWith((id) =>
|
|
3427
3446
|
core.flatMap(
|
|
3428
3447
|
core.flatMap(
|
|
@@ -3433,6 +3452,7 @@ export const invokeWithInterrupt: <A, E, R>(
|
|
|
3433
3452
|
const checkDone = () => {
|
|
3434
3453
|
if (counts.every((count) => count === 0)) {
|
|
3435
3454
|
cleanup.forEach((f) => f())
|
|
3455
|
+
onInterrupt?.()
|
|
3436
3456
|
cb(core.interruptFiber(processing))
|
|
3437
3457
|
}
|
|
3438
3458
|
}
|
package/src/internal/query.ts
CHANGED
|
@@ -8,7 +8,6 @@ import type * as Request from "../Request.js"
|
|
|
8
8
|
import type * as RequestResolver from "../RequestResolver.js"
|
|
9
9
|
import * as BlockedRequests from "./blockedRequests.js"
|
|
10
10
|
import { unsafeMakeWith } from "./cache.js"
|
|
11
|
-
import { isInterruptedOnly } from "./cause.js"
|
|
12
11
|
import * as core from "./core.js"
|
|
13
12
|
import { ensuring } from "./fiberRuntime.js"
|
|
14
13
|
import { Listeners } from "./request.js"
|
|
@@ -61,77 +60,81 @@ export const fromRequest = <
|
|
|
61
60
|
const proxy = new Proxy(request, {})
|
|
62
61
|
return core.fiberRefGetWith(currentCacheEnabled, (cacheEnabled) => {
|
|
63
62
|
if (cacheEnabled) {
|
|
64
|
-
|
|
63
|
+
const cached: Effect.Effect<any, any> = core.fiberRefGetWith(currentCache, (cache) =>
|
|
65
64
|
core.flatMap(cache.getEither(proxy), (orNew) => {
|
|
66
65
|
switch (orNew._tag) {
|
|
67
66
|
case "Left": {
|
|
67
|
+
if (orNew.left.listeners.interrupted) {
|
|
68
|
+
return core.flatMap(
|
|
69
|
+
cache.invalidateWhen(proxy, (entry) => entry.handle === orNew.left.handle),
|
|
70
|
+
() => cached
|
|
71
|
+
)
|
|
72
|
+
}
|
|
68
73
|
orNew.left.listeners.increment()
|
|
69
|
-
return core.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
return core.uninterruptibleMask((restore) =>
|
|
75
|
+
core.flatMap(
|
|
76
|
+
core.exit(core.blocked(
|
|
77
|
+
BlockedRequests.empty,
|
|
78
|
+
restore(core.deferredAwait(orNew.left.handle))
|
|
79
|
+
)),
|
|
80
|
+
(exit) => {
|
|
73
81
|
orNew.left.listeners.decrement()
|
|
74
|
-
return
|
|
75
|
-
cache.invalidateWhen(
|
|
76
|
-
proxy,
|
|
77
|
-
(entry) => entry.handle === orNew.left.handle
|
|
78
|
-
),
|
|
79
|
-
() => fromRequest(proxy, ds)
|
|
80
|
-
)
|
|
82
|
+
return exit
|
|
81
83
|
}
|
|
82
|
-
|
|
83
|
-
core.deferredAwait(orNew.left.handle),
|
|
84
|
-
core.sync(() => orNew.left.listeners.decrement())
|
|
85
|
-
)
|
|
86
|
-
})
|
|
84
|
+
)
|
|
87
85
|
)
|
|
88
86
|
}
|
|
89
87
|
case "Right": {
|
|
90
88
|
orNew.right.listeners.increment()
|
|
91
|
-
return core.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
89
|
+
return core.uninterruptibleMask((restore) =>
|
|
90
|
+
core.flatMap(
|
|
91
|
+
core.exit(
|
|
92
|
+
core.blocked(
|
|
93
|
+
BlockedRequests.single(
|
|
94
|
+
ds as RequestResolver.RequestResolver<A>,
|
|
95
|
+
BlockedRequests.makeEntry({
|
|
96
|
+
request: proxy,
|
|
97
|
+
result: orNew.right.handle,
|
|
98
|
+
listeners: orNew.right.listeners,
|
|
99
|
+
ownerId: id,
|
|
100
|
+
state: { completed: false }
|
|
101
|
+
})
|
|
102
|
+
),
|
|
103
|
+
restore(core.deferredAwait(orNew.right.handle))
|
|
104
|
+
)
|
|
105
|
+
),
|
|
106
|
+
() => {
|
|
107
|
+
orNew.right.listeners.decrement()
|
|
108
|
+
return core.deferredAwait(orNew.right.handle)
|
|
109
|
+
}
|
|
110
110
|
)
|
|
111
111
|
)
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
}))
|
|
115
|
+
return cached
|
|
115
116
|
}
|
|
116
117
|
const listeners = new Listeners()
|
|
117
118
|
listeners.increment()
|
|
118
119
|
return core.flatMap(
|
|
119
120
|
core.deferredMake<Request.Request.Success<A>, Request.Request.Error<A>>(),
|
|
120
121
|
(ref) =>
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
122
|
+
ensuring(
|
|
123
|
+
core.blocked(
|
|
124
|
+
BlockedRequests.single(
|
|
125
|
+
ds as RequestResolver.RequestResolver<A>,
|
|
126
|
+
BlockedRequests.makeEntry({
|
|
127
|
+
request: proxy,
|
|
128
|
+
result: ref,
|
|
129
|
+
listeners,
|
|
130
|
+
ownerId: id,
|
|
131
|
+
state: { completed: false }
|
|
132
|
+
})
|
|
133
|
+
),
|
|
134
|
+
core.deferredAwait(ref)
|
|
131
135
|
),
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
core.sync(() => listeners.decrement())
|
|
136
|
+
core.sync(() =>
|
|
137
|
+
listeners.decrement()
|
|
135
138
|
)
|
|
136
139
|
)
|
|
137
140
|
)
|
package/src/internal/request.ts
CHANGED
package/src/internal/version.ts
CHANGED