effect 2.3.0 → 2.3.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 (53) hide show
  1. package/dist/cjs/Effect.js.map +1 -1
  2. package/dist/cjs/Either.js +4 -1
  3. package/dist/cjs/Either.js.map +1 -1
  4. package/dist/cjs/Option.js +4 -1
  5. package/dist/cjs/Option.js.map +1 -1
  6. package/dist/cjs/Scheduler.js +3 -4
  7. package/dist/cjs/Scheduler.js.map +1 -1
  8. package/dist/cjs/internal/clock.js +2 -3
  9. package/dist/cjs/internal/clock.js.map +1 -1
  10. package/dist/cjs/internal/fiberRuntime.js +12 -2
  11. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  12. package/dist/cjs/internal/version.js +1 -1
  13. package/dist/dts/Effect.d.ts +1 -1
  14. package/dist/dts/Effect.d.ts.map +1 -1
  15. package/dist/dts/Either.d.ts +4 -0
  16. package/dist/dts/Either.d.ts.map +1 -1
  17. package/dist/dts/FiberSet.d.ts +4 -4
  18. package/dist/dts/FiberSet.d.ts.map +1 -1
  19. package/dist/dts/Option.d.ts +4 -0
  20. package/dist/dts/Option.d.ts.map +1 -1
  21. package/dist/dts/Schedule.d.ts +28 -28
  22. package/dist/dts/Schedule.d.ts.map +1 -1
  23. package/dist/dts/Scheduler.d.ts.map +1 -1
  24. package/dist/dts/internal/version.d.ts +1 -1
  25. package/dist/esm/Effect.js.map +1 -1
  26. package/dist/esm/Either.js +4 -1
  27. package/dist/esm/Either.js.map +1 -1
  28. package/dist/esm/Option.js +4 -1
  29. package/dist/esm/Option.js.map +1 -1
  30. package/dist/esm/Scheduler.js +3 -4
  31. package/dist/esm/Scheduler.js.map +1 -1
  32. package/dist/esm/internal/clock.js +2 -3
  33. package/dist/esm/internal/clock.js.map +1 -1
  34. package/dist/esm/internal/fiberRuntime.js +12 -2
  35. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  36. package/dist/esm/internal/version.js +1 -1
  37. package/package.json +1 -1
  38. package/src/Effect.ts +1 -1
  39. package/src/Either.ts +8 -1
  40. package/src/FiberSet.ts +4 -4
  41. package/src/Option.ts +8 -1
  42. package/src/Schedule.ts +28 -28
  43. package/src/Scheduler.ts +3 -4
  44. package/src/internal/clock.ts +2 -3
  45. package/src/internal/fiberRuntime.ts +13 -3
  46. package/src/internal/version.ts +1 -1
  47. package/dist/cjs/internal/timeout.js +0 -24
  48. package/dist/cjs/internal/timeout.js.map +0 -1
  49. package/dist/dts/internal/timeout.d.ts +0 -7
  50. package/dist/dts/internal/timeout.d.ts.map +0 -1
  51. package/dist/esm/internal/timeout.js +0 -18
  52. package/dist/esm/internal/timeout.js.map +0 -1
  53. package/src/internal/timeout.ts +0 -23
package/src/Schedule.ts CHANGED
@@ -160,11 +160,11 @@ export const addDelay: {
160
160
  */
161
161
  export const addDelayEffect: {
162
162
  <Out, Env2>(
163
- f: (out: Out) => Effect.Effect<Env2, never, Duration.DurationInput>
163
+ f: (out: Out) => Effect.Effect<Duration.DurationInput, never, Env2>
164
164
  ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
165
165
  <Env, In, Out, Env2>(
166
166
  self: Schedule<Env, In, Out>,
167
- f: (out: Out) => Effect.Effect<Env2, never, Duration.DurationInput>
167
+ f: (out: Out) => Effect.Effect<Duration.DurationInput, never, Env2>
168
168
  ): Schedule<Env | Env2, In, Out>
169
169
  } = internal.addDelayEffect
170
170
 
@@ -268,11 +268,11 @@ export const check: {
268
268
  */
269
269
  export const checkEffect: {
270
270
  <In, Out, Env2>(
271
- test: (input: In, output: Out) => Effect.Effect<Env2, never, boolean>
271
+ test: (input: In, output: Out) => Effect.Effect<boolean, never, Env2>
272
272
  ): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
273
273
  <Env, In, Out, Env2>(
274
274
  self: Schedule<Env, In, Out>,
275
- test: (input: In, output: Out) => Effect.Effect<Env2, never, boolean>
275
+ test: (input: In, output: Out) => Effect.Effect<boolean, never, Env2>
276
276
  ): Schedule<Env | Env2, In, Out>
277
277
  } = internal.checkEffect
278
278
 
@@ -390,11 +390,11 @@ export const mapInputContext: {
390
390
  */
391
391
  export const mapInputEffect: {
392
392
  <In, Env2, In2>(
393
- f: (in2: In2) => Effect.Effect<Env2, never, In>
393
+ f: (in2: In2) => Effect.Effect<In, never, Env2>
394
394
  ): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In2, Out>
395
395
  <Env, In, Out, Env2, In2>(
396
396
  self: Schedule<Env, In, Out>,
397
- f: (in2: In2) => Effect.Effect<Env2, never, In>
397
+ f: (in2: In2) => Effect.Effect<In, never, Env2>
398
398
  ): Schedule<Env | Env2, In2, Out>
399
399
  } = internal.mapInputEffect
400
400
 
@@ -469,11 +469,11 @@ export const delayed: {
469
469
  */
470
470
  export const delayedEffect: {
471
471
  <Env2>(
472
- f: (duration: Duration.Duration) => Effect.Effect<Env2, never, Duration.DurationInput>
472
+ f: (duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, Env2>
473
473
  ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
474
474
  <Env, In, Out, Env2>(
475
475
  self: Schedule<Env, In, Out>,
476
- f: (duration: Duration.Duration) => Effect.Effect<Env2, never, Duration.DurationInput>
476
+ f: (duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, Env2>
477
477
  ): Schedule<Env | Env2, In, Out>
478
478
  } = internal.delayedEffect
479
479
 
@@ -528,15 +528,15 @@ export const mapBoth: {
528
528
  export const mapBothEffect: {
529
529
  <In2, Env2, In, Out, Env3, Out2>(
530
530
  options: {
531
- readonly onInput: (input: In2) => Effect.Effect<Env2, never, In>
532
- readonly onOutput: (out: Out) => Effect.Effect<Env3, never, Out2>
531
+ readonly onInput: (input: In2) => Effect.Effect<In, never, Env2>
532
+ readonly onOutput: (out: Out) => Effect.Effect<Out2, never, Env3>
533
533
  }
534
534
  ): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env3 | Env, In2, Out2>
535
535
  <Env, In, Out, In2, Env2, Env3, Out2>(
536
536
  self: Schedule<Env, In, Out>,
537
537
  options: {
538
- readonly onInput: (input: In2) => Effect.Effect<Env2, never, In>
539
- readonly onOutput: (out: Out) => Effect.Effect<Env3, never, Out2>
538
+ readonly onInput: (input: In2) => Effect.Effect<In, never, Env2>
539
+ readonly onOutput: (out: Out) => Effect.Effect<Out2, never, Env3>
540
540
  }
541
541
  ): Schedule<Env | Env2 | Env3, In2, Out2>
542
542
  } = internal.mapBothEffect
@@ -822,11 +822,11 @@ export const map: {
822
822
  */
823
823
  export const mapEffect: {
824
824
  <Out, Env2, Out2>(
825
- f: (out: Out) => Effect.Effect<Env2, never, Out2>
825
+ f: (out: Out) => Effect.Effect<Out2, never, Env2>
826
826
  ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out2>
827
827
  <Env, In, Out, Env2, Out2>(
828
828
  self: Schedule<Env, In, Out>,
829
- f: (out: Out) => Effect.Effect<Env2, never, Out2>
829
+ f: (out: Out) => Effect.Effect<Out2, never, Env2>
830
830
  ): Schedule<Env | Env2, In, Out2>
831
831
  } = internal.mapEffect
832
832
 
@@ -1026,12 +1026,12 @@ export const reduce: {
1026
1026
  export const reduceEffect: {
1027
1027
  <Out, Env1, Z>(
1028
1028
  zero: Z,
1029
- f: (z: Z, out: Out) => Effect.Effect<Env1, never, Z>
1029
+ f: (z: Z, out: Out) => Effect.Effect<Z, never, Env1>
1030
1030
  ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env1 | Env, In, Z>
1031
1031
  <Env, In, Out, Env1, Z>(
1032
1032
  self: Schedule<Env, In, Out>,
1033
1033
  zero: Z,
1034
- f: (z: Z, out: Out) => Effect.Effect<Env1, never, Z>
1034
+ f: (z: Z, out: Out) => Effect.Effect<Z, never, Env1>
1035
1035
  ): Schedule<Env | Env1, In, Z>
1036
1036
  } = internal.reduceEffect
1037
1037
 
@@ -1151,11 +1151,11 @@ export const sync: <A>(evaluate: LazyArg<A>) => Schedule<never, unknown, A> = in
1151
1151
  */
1152
1152
  export const tapInput: {
1153
1153
  <Env2, In2, X>(
1154
- f: (input: In2) => Effect.Effect<Env2, never, X>
1154
+ f: (input: In2) => Effect.Effect<X, never, Env2>
1155
1155
  ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Out>
1156
1156
  <Env, In, Out, Env2, In2, X>(
1157
1157
  self: Schedule<Env, In, Out>,
1158
- f: (input: In2) => Effect.Effect<Env2, never, X>
1158
+ f: (input: In2) => Effect.Effect<X, never, Env2>
1159
1159
  ): Schedule<Env | Env2, In & In2, Out>
1160
1160
  } = internal.tapInput
1161
1161
 
@@ -1168,11 +1168,11 @@ export const tapInput: {
1168
1168
  */
1169
1169
  export const tapOutput: {
1170
1170
  <Out, XO extends Out, Env2, X>(
1171
- f: (out: XO) => Effect.Effect<Env2, never, X>
1171
+ f: (out: XO) => Effect.Effect<X, never, Env2>
1172
1172
  ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
1173
1173
  <Env, In, Out, XO extends Out, Env2, X>(
1174
1174
  self: Schedule<Env, In, Out>,
1175
- f: (out: XO) => Effect.Effect<Env2, never, X>
1175
+ f: (out: XO) => Effect.Effect<X, never, Env2>
1176
1176
  ): Schedule<Env | Env2, In, Out>
1177
1177
  } = internal.tapOutput
1178
1178
 
@@ -1243,11 +1243,11 @@ export const untilInput: {
1243
1243
  */
1244
1244
  export const untilInputEffect: {
1245
1245
  <In, Env2>(
1246
- f: (input: In) => Effect.Effect<Env2, never, boolean>
1246
+ f: (input: In) => Effect.Effect<boolean, never, Env2>
1247
1247
  ): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
1248
1248
  <Env, In, Out, Env2>(
1249
1249
  self: Schedule<Env, In, Out>,
1250
- f: (input: In) => Effect.Effect<Env2, never, boolean>
1250
+ f: (input: In) => Effect.Effect<boolean, never, Env2>
1251
1251
  ): Schedule<Env | Env2, In, Out>
1252
1252
  } = internal.untilInputEffect
1253
1253
 
@@ -1272,11 +1272,11 @@ export const untilOutput: {
1272
1272
  */
1273
1273
  export const untilOutputEffect: {
1274
1274
  <Out, Env2>(
1275
- f: (out: Out) => Effect.Effect<Env2, never, boolean>
1275
+ f: (out: Out) => Effect.Effect<boolean, never, Env2>
1276
1276
  ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
1277
1277
  <Env, In, Out, Env2>(
1278
1278
  self: Schedule<Env, In, Out>,
1279
- f: (out: Out) => Effect.Effect<Env2, never, boolean>
1279
+ f: (out: Out) => Effect.Effect<boolean, never, Env2>
1280
1280
  ): Schedule<Env | Env2, In, Out>
1281
1281
  } = internal.untilOutputEffect
1282
1282
 
@@ -1312,11 +1312,11 @@ export const whileInput: {
1312
1312
  */
1313
1313
  export const whileInputEffect: {
1314
1314
  <In, Env2>(
1315
- f: (input: In) => Effect.Effect<Env2, never, boolean>
1315
+ f: (input: In) => Effect.Effect<boolean, never, Env2>
1316
1316
  ): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
1317
1317
  <Env, In, Out, Env2>(
1318
1318
  self: Schedule<Env, In, Out>,
1319
- f: (input: In) => Effect.Effect<Env2, never, boolean>
1319
+ f: (input: In) => Effect.Effect<boolean, never, Env2>
1320
1320
  ): Schedule<Env | Env2, In, Out>
1321
1321
  } = internal.whileInputEffect
1322
1322
 
@@ -1341,11 +1341,11 @@ export const whileOutput: {
1341
1341
  */
1342
1342
  export const whileOutputEffect: {
1343
1343
  <Out, Env1>(
1344
- f: (out: Out) => Effect.Effect<Env1, never, boolean>
1344
+ f: (out: Out) => Effect.Effect<boolean, never, Env1>
1345
1345
  ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env1 | Env, In, Out>
1346
1346
  <Env, In, Out, Env1>(
1347
1347
  self: Schedule<Env, In, Out>,
1348
- f: (out: Out) => Effect.Effect<Env1, never, boolean>
1348
+ f: (out: Out) => Effect.Effect<boolean, never, Env1>
1349
1349
  ): Schedule<Env | Env1, In, Out>
1350
1350
  } = internal.whileOutputEffect
1351
1351
 
package/src/Scheduler.ts CHANGED
@@ -8,7 +8,6 @@ import type { FiberRef } from "./FiberRef.js"
8
8
  import { dual } from "./Function.js"
9
9
  import { globalValue } from "./GlobalValue.js"
10
10
  import * as core from "./internal/core.js"
11
- import * as timeout from "./internal/timeout.js"
12
11
 
13
12
  /**
14
13
  * @since 2.0.0
@@ -107,7 +106,7 @@ export class MixedScheduler implements Scheduler {
107
106
  */
108
107
  private starve(depth = 0) {
109
108
  if (depth >= this.maxNextTickBeforeTimer) {
110
- timeout.set(() => this.starveInternal(0), 0)
109
+ setTimeout(() => this.starveInternal(0), 0)
111
110
  } else {
112
111
  Promise.resolve(void 0).then(() => this.starveInternal(depth + 1))
113
112
  }
@@ -337,14 +336,14 @@ export const makeBatched = (
337
336
  * @category constructors
338
337
  */
339
338
  export const timer = (ms: number, shouldYield: Scheduler["shouldYield"] = defaultShouldYield) =>
340
- make((task) => timeout.set(task, ms), shouldYield)
339
+ make((task) => setTimeout(task, ms), shouldYield)
341
340
 
342
341
  /**
343
342
  * @since 2.0.0
344
343
  * @category constructors
345
344
  */
346
345
  export const timerBatched = (ms: number, shouldYield: Scheduler["shouldYield"] = defaultShouldYield) =>
347
- makeBatched((task) => timeout.set(task, ms), shouldYield)
346
+ makeBatched((task) => setTimeout(task, ms), shouldYield)
348
347
 
349
348
  /** @internal */
350
349
  export const currentScheduler: FiberRef<Scheduler> = globalValue(
@@ -5,7 +5,6 @@ import type * as Effect from "../Effect.js"
5
5
  import * as Either from "../Either.js"
6
6
  import { constFalse } from "../Function.js"
7
7
  import * as core from "./core.js"
8
- import * as timeout from "./timeout.js"
9
8
 
10
9
  /** @internal */
11
10
  const ClockSymbolKey = "effect/Clock"
@@ -29,12 +28,12 @@ export const globalClockScheduler: Clock.ClockScheduler = {
29
28
  return constFalse
30
29
  }
31
30
  let completed = false
32
- const handle = timeout.set(() => {
31
+ const handle = setTimeout(() => {
33
32
  completed = true
34
33
  task()
35
34
  }, millis)
36
35
  return () => {
37
- timeout.clear(handle)
36
+ clearTimeout(handle)
38
37
  return !completed
39
38
  }
40
39
  }
@@ -2771,7 +2771,12 @@ export const zipLeftOptions = dual<
2771
2771
  ) => Effect.Effect<A, E | E2, R | R2>
2772
2772
  >(
2773
2773
  (args) => core.isEffect(args[1]),
2774
- (self, that, options) => zipWithOptions(self, that, (a, _) => a, options)
2774
+ (self, that, options) => {
2775
+ if (options?.concurrent !== true && (options?.batching === undefined || options.batching === false)) {
2776
+ return core.zipLeft(self, that)
2777
+ }
2778
+ return zipWithOptions(self, that, (a, _) => a, options)
2779
+ }
2775
2780
  )
2776
2781
 
2777
2782
  /** @internal */
@@ -2794,11 +2799,16 @@ export const zipRightOptions: {
2794
2799
  } = dual((args) => core.isEffect(args[1]), <A, E, R, A2, E2, R2>(
2795
2800
  self: Effect.Effect<A, E, R>,
2796
2801
  that: Effect.Effect<A2, E2, R2>,
2797
- options: {
2802
+ options?: {
2798
2803
  readonly concurrent?: boolean | undefined
2799
2804
  readonly batching?: boolean | "inherit" | undefined
2800
2805
  }
2801
- ): Effect.Effect<A2, E2 | E, R2 | R> => zipWithOptions(self, that, (_, b) => b, options))
2806
+ ): Effect.Effect<A2, E2 | E, R2 | R> => {
2807
+ if (options?.concurrent !== true && (options?.batching === undefined || options.batching === false)) {
2808
+ return core.zipRight(self, that)
2809
+ }
2810
+ return zipWithOptions(self, that, (_, b) => b, options)
2811
+ })
2802
2812
 
2803
2813
  /** @internal */
2804
2814
  export const zipWithOptions: {
@@ -1 +1 @@
1
- export const moduleVersion = "2.3.0"
1
+ export const moduleVersion = "2.3.2"
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.set = exports.clear = void 0;
7
- /**
8
- * Bun currently has a bug where `setTimeout` doesn't behave correctly with a 0ms delay.
9
- *
10
- * @see https://github.com/oven-sh/bun/issues/3333
11
- */
12
- /** @internal */
13
- const isBun = typeof process === "undefined" ? false : !!process?.isBun;
14
- /** @internal */
15
- const clear = exports.clear = isBun ? id => clearInterval(id) : id => clearTimeout(id);
16
- /** @internal */
17
- const set = exports.set = isBun ? (fn, ms) => {
18
- const id = setInterval(() => {
19
- fn();
20
- clearInterval(id);
21
- }, ms);
22
- return id;
23
- } : (fn, ms) => setTimeout(fn, ms);
24
- //# sourceMappingURL=timeout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeout.js","names":["isBun","process","clear","exports","id","clearInterval","clearTimeout","set","fn","ms","setInterval","setTimeout"],"sources":["../../../src/internal/timeout.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA;;;;;AAMA;AACA,MAAMA,KAAK,GAAG,OAAOC,OAAO,KAAK,WAAW,GAAG,KAAK,GAAG,CAAC,CAAGA,OAAe,EAAED,KAAM;AAElF;AACO,MAAME,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAiCF,KAAK,GAAII,EAAE,IAAKC,aAAa,CAACD,EAAE,CAAC,GAAIA,EAAE,IAAKE,YAAY,CAACF,EAAE,CAAC;AAE/G;AACO,MAAMG,GAAG,GAAAJ,OAAA,CAAAI,GAAA,GAAmDP,KAAK,GACtE,CAACQ,EAAc,EAAEC,EAAU,KAAI;EAC7B,MAAML,EAAE,GAAGM,WAAW,CAAC,MAAK;IAC1BF,EAAE,EAAE;IACJH,aAAa,CAACD,EAAE,CAAC;EACnB,CAAC,EAAEK,EAAE,CAAC;EAEN,OAAOL,EAAE;AACX,CAAC,GACD,CAACI,EAAc,EAAEC,EAAU,KAAKE,UAAU,CAACH,EAAE,EAAEC,EAAE,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Bun currently has a bug where `setTimeout` doesn't behave correctly with a 0ms delay.
3
- *
4
- * @see https://github.com/oven-sh/bun/issues/3333
5
- */
6
- export {};
7
- //# sourceMappingURL=timeout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../src/internal/timeout.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Bun currently has a bug where `setTimeout` doesn't behave correctly with a 0ms delay.
3
- *
4
- * @see https://github.com/oven-sh/bun/issues/3333
5
- */
6
- /** @internal */
7
- const isBun = typeof process === "undefined" ? false : !!process?.isBun;
8
- /** @internal */
9
- export const clear = isBun ? id => clearInterval(id) : id => clearTimeout(id);
10
- /** @internal */
11
- export const set = isBun ? (fn, ms) => {
12
- const id = setInterval(() => {
13
- fn();
14
- clearInterval(id);
15
- }, ms);
16
- return id;
17
- } : (fn, ms) => setTimeout(fn, ms);
18
- //# sourceMappingURL=timeout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeout.js","names":["isBun","process","clear","id","clearInterval","clearTimeout","set","fn","ms","setInterval","setTimeout"],"sources":["../../../src/internal/timeout.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAMA;AACA,MAAMA,KAAK,GAAG,OAAOC,OAAO,KAAK,WAAW,GAAG,KAAK,GAAG,CAAC,CAAGA,OAAe,EAAED,KAAM;AAElF;AACA,OAAO,MAAME,KAAK,GAAiCF,KAAK,GAAIG,EAAE,IAAKC,aAAa,CAACD,EAAE,CAAC,GAAIA,EAAE,IAAKE,YAAY,CAACF,EAAE,CAAC;AAE/G;AACA,OAAO,MAAMG,GAAG,GAAmDN,KAAK,GACtE,CAACO,EAAc,EAAEC,EAAU,KAAI;EAC7B,MAAML,EAAE,GAAGM,WAAW,CAAC,MAAK;IAC1BF,EAAE,EAAE;IACJH,aAAa,CAACD,EAAE,CAAC;EACnB,CAAC,EAAEK,EAAE,CAAC;EAEN,OAAOL,EAAE;AACX,CAAC,GACD,CAACI,EAAc,EAAEC,EAAU,KAAKE,UAAU,CAACH,EAAE,EAAEC,EAAE,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Bun currently has a bug where `setTimeout` doesn't behave correctly with a 0ms delay.
3
- *
4
- * @see https://github.com/oven-sh/bun/issues/3333
5
- */
6
-
7
- /** @internal */
8
- const isBun = typeof process === "undefined" ? false : !!((process as any)?.isBun)
9
-
10
- /** @internal */
11
- export const clear: (id: NodeJS.Timeout) => void = isBun ? (id) => clearInterval(id) : (id) => clearTimeout(id)
12
-
13
- /** @internal */
14
- export const set: (fn: () => void, ms: number) => NodeJS.Timeout = isBun ?
15
- (fn: () => void, ms: number) => {
16
- const id = setInterval(() => {
17
- fn()
18
- clearInterval(id)
19
- }, ms)
20
-
21
- return id
22
- } :
23
- (fn: () => void, ms: number) => setTimeout(fn, ms)