effect 3.6.3 → 3.6.4

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/src/Scheduler.ts CHANGED
@@ -37,27 +37,22 @@ export class PriorityBuckets<in out T = Task> {
37
37
  * @since 2.0.0
38
38
  */
39
39
  scheduleTask(task: T, priority: number) {
40
+ const length = this.buckets.length
40
41
  let bucket: [number, Array<T>] | undefined = undefined
41
- let index: number
42
- for (index = 0; index < this.buckets.length; index++) {
42
+ let index = 0
43
+ for (; index < length; index++) {
43
44
  if (this.buckets[index][0] <= priority) {
44
45
  bucket = this.buckets[index]
45
46
  } else {
46
47
  break
47
48
  }
48
49
  }
49
- if (bucket) {
50
+ if (bucket && bucket[0] === priority) {
50
51
  bucket[1].push(task)
52
+ } else if (index === length) {
53
+ this.buckets.push([priority, [task]])
51
54
  } else {
52
- const newBuckets: Array<[number, Array<T>]> = []
53
- for (let i = 0; i < index; i++) {
54
- newBuckets.push(this.buckets[i])
55
- }
56
- newBuckets.push([priority, [task]])
57
- for (let i = index; i < this.buckets.length; i++) {
58
- newBuckets.push(this.buckets[i])
59
- }
60
- this.buckets = newBuckets
55
+ this.buckets.splice(index, 0, [priority, [task]])
61
56
  }
62
57
  }
63
58
  }
@@ -270,6 +270,23 @@ export const CacheTypeId: Cache.CacheTypeId = Symbol.for(
270
270
  ) as Cache.CacheTypeId
271
271
 
272
272
  const cacheVariance = {
273
+ /* c8 ignore next */
274
+ _Key: (_: any) => _,
275
+ /* c8 ignore next */
276
+ _Error: (_: never) => _,
277
+ /* c8 ignore next */
278
+ _Value: (_: any) => _
279
+ }
280
+
281
+ /** @internal */
282
+ const ConsumerCacheSymbolKey = "effect/ConsumerCache"
283
+
284
+ /** @internal */
285
+ export const ConsumerCacheTypeId: Cache.ConsumerCacheTypeId = Symbol.for(
286
+ ConsumerCacheSymbolKey
287
+ ) as Cache.ConsumerCacheTypeId
288
+
289
+ const consumerCacheVariance = {
273
290
  /* c8 ignore next */
274
291
  _Key: (_: any) => _,
275
292
  /* c8 ignore next */
@@ -294,6 +311,7 @@ export const makeEntryStats = (loadedMillis: number): Cache.EntryStats => ({
294
311
 
295
312
  class CacheImpl<in out Key, in out Value, in out Error> implements Cache.Cache<Key, Value, Error> {
296
313
  readonly [CacheTypeId] = cacheVariance
314
+ readonly [ConsumerCacheTypeId] = consumerCacheVariance
297
315
  readonly cacheState: CacheState<Key, Value, Error>
298
316
  constructor(
299
317
  readonly capacity: number,
@@ -1200,12 +1200,20 @@ export const patchFiberRefs = (patch: FiberRefsPatch.FiberRefsPatch): Effect.Eff
1200
1200
  export const promise = <A>(evaluate: (signal: AbortSignal) => PromiseLike<A>): Effect.Effect<A> =>
1201
1201
  evaluate.length >= 1
1202
1202
  ? core.async((resolve, signal) => {
1203
- evaluate(signal)
1204
- .then((a) => resolve(core.exitSucceed(a)), (e) => resolve(core.exitDie(e)))
1203
+ try {
1204
+ evaluate(signal)
1205
+ .then((a) => resolve(core.exitSucceed(a)), (e) => resolve(core.exitDie(e)))
1206
+ } catch (e) {
1207
+ resolve(core.exitDie(e))
1208
+ }
1205
1209
  })
1206
1210
  : core.async((resolve) => {
1207
- ;(evaluate as LazyArg<PromiseLike<A>>)()
1208
- .then((a) => resolve(core.exitSucceed(a)), (e) => resolve(core.exitDie(e)))
1211
+ try {
1212
+ ;(evaluate as LazyArg<PromiseLike<A>>)()
1213
+ .then((a) => resolve(core.exitSucceed(a)), (e) => resolve(core.exitDie(e)))
1214
+ } catch (e) {
1215
+ resolve(core.exitDie(e))
1216
+ }
1209
1217
  })
1210
1218
 
1211
1219
  /* @internal */
@@ -1668,14 +1676,12 @@ export const tryPromise: {
1668
1676
  return core.async((resolve, signal) => {
1669
1677
  try {
1670
1678
  evaluate(signal)
1671
- .then((a) => resolve(core.exitSucceed(a)), (e) =>
1672
- resolve(core.fail(
1673
- catcher ? catcher(e) : new core.UnknownException(e)
1674
- )))
1679
+ .then(
1680
+ (a) => resolve(core.exitSucceed(a)),
1681
+ (e) => resolve(catcher ? core.failSync(() => catcher(e)) : core.fail(new core.UnknownException(e)))
1682
+ )
1675
1683
  } catch (e) {
1676
- resolve(core.fail(
1677
- catcher ? catcher(e) : new core.UnknownException(e)
1678
- ))
1684
+ resolve(catcher ? core.failSync(() => catcher(e)) : core.fail(new core.UnknownException(e)))
1679
1685
  }
1680
1686
  })
1681
1687
  }
@@ -1683,14 +1689,12 @@ export const tryPromise: {
1683
1689
  return core.async((resolve) => {
1684
1690
  try {
1685
1691
  evaluate()
1686
- .then((a) => resolve(core.exitSucceed(a)), (e) =>
1687
- resolve(core.fail(
1688
- catcher ? catcher(e) : new core.UnknownException(e)
1689
- )))
1692
+ .then(
1693
+ (a) => resolve(core.exitSucceed(a)),
1694
+ (e) => resolve(catcher ? core.failSync(() => catcher(e)) : core.fail(new core.UnknownException(e)))
1695
+ )
1690
1696
  } catch (e) {
1691
- resolve(core.fail(
1692
- catcher ? catcher(e) : new core.UnknownException(e)
1693
- ))
1697
+ resolve(catcher ? core.failSync(() => catcher(e)) : core.fail(new core.UnknownException(e)))
1694
1698
  }
1695
1699
  })
1696
1700
  }
@@ -1,4 +1,4 @@
1
- let moduleVersion = "3.6.3"
1
+ let moduleVersion = "3.6.4"
2
2
 
3
3
  export const getCurrentVersion = () => moduleVersion
4
4