@effect/platform 0.69.27 → 0.69.28
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/HttpApiBuilder.js +7 -5
- package/dist/cjs/HttpApiBuilder.js.map +1 -1
- package/dist/cjs/HttpApiClient.js +2 -3
- package/dist/cjs/HttpApiClient.js.map +1 -1
- package/dist/cjs/HttpApiEndpoint.js.map +1 -1
- package/dist/cjs/HttpClient.js +4 -1
- package/dist/cjs/HttpClient.js.map +1 -1
- package/dist/cjs/OpenApi.js +22 -5
- package/dist/cjs/OpenApi.js.map +1 -1
- package/dist/cjs/PlatformLogger.js +2 -0
- package/dist/cjs/PlatformLogger.js.map +1 -1
- package/dist/cjs/internal/httpClient.js +4 -1
- package/dist/cjs/internal/httpClient.js.map +1 -1
- package/dist/dts/HttpApiBuilder.d.ts +2 -3
- package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
- package/dist/dts/HttpApiClient.d.ts.map +1 -1
- package/dist/dts/HttpApiEndpoint.d.ts +3 -1
- package/dist/dts/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/dts/HttpClient.d.ts +15 -3
- package/dist/dts/HttpClient.d.ts.map +1 -1
- package/dist/dts/OpenApi.d.ts.map +1 -1
- package/dist/dts/PlatformLogger.d.ts +6 -0
- package/dist/dts/PlatformLogger.d.ts.map +1 -1
- package/dist/dts/internal/httpClient.d.ts.map +1 -1
- package/dist/esm/HttpApiBuilder.js +7 -5
- package/dist/esm/HttpApiBuilder.js.map +1 -1
- package/dist/esm/HttpApiClient.js +2 -3
- package/dist/esm/HttpApiClient.js.map +1 -1
- package/dist/esm/HttpApiEndpoint.js.map +1 -1
- package/dist/esm/HttpClient.js +4 -1
- package/dist/esm/HttpClient.js.map +1 -1
- package/dist/esm/OpenApi.js +22 -5
- package/dist/esm/OpenApi.js.map +1 -1
- package/dist/esm/PlatformLogger.js +2 -0
- package/dist/esm/PlatformLogger.js.map +1 -1
- package/dist/esm/internal/httpClient.js +4 -1
- package/dist/esm/internal/httpClient.js.map +1 -1
- package/package.json +2 -2
- package/src/HttpApiBuilder.ts +10 -12
- package/src/HttpApiClient.ts +1 -6
- package/src/HttpApiEndpoint.ts +2 -1
- package/src/HttpClient.ts +23 -9
- package/src/OpenApi.ts +23 -7
- package/src/PlatformLogger.ts +6 -0
- package/src/internal/httpClient.ts +16 -4
package/src/PlatformLogger.ts
CHANGED
|
@@ -14,6 +14,7 @@ import * as internal from "./internal/platformLogger.js"
|
|
|
14
14
|
*
|
|
15
15
|
* @since 1.0.0
|
|
16
16
|
* @example
|
|
17
|
+
* ```ts
|
|
17
18
|
* import { PlatformLogger } from "@effect/platform"
|
|
18
19
|
* import { NodeFileSystem, NodeRuntime } from "@effect/platform-node"
|
|
19
20
|
* import { Effect, Layer, Logger } from "effect"
|
|
@@ -31,6 +32,7 @@ import * as internal from "./internal/platformLogger.js"
|
|
|
31
32
|
* Effect.provide(LoggerLive),
|
|
32
33
|
* NodeRuntime.runMain
|
|
33
34
|
* )
|
|
35
|
+
* ```
|
|
34
36
|
*/
|
|
35
37
|
export const toFile: {
|
|
36
38
|
/**
|
|
@@ -38,6 +40,7 @@ export const toFile: {
|
|
|
38
40
|
*
|
|
39
41
|
* @since 1.0.0
|
|
40
42
|
* @example
|
|
43
|
+
* ```ts
|
|
41
44
|
* import { PlatformLogger } from "@effect/platform"
|
|
42
45
|
* import { NodeFileSystem, NodeRuntime } from "@effect/platform-node"
|
|
43
46
|
* import { Effect, Layer, Logger } from "effect"
|
|
@@ -55,6 +58,7 @@ export const toFile: {
|
|
|
55
58
|
* Effect.provide(LoggerLive),
|
|
56
59
|
* NodeRuntime.runMain
|
|
57
60
|
* )
|
|
61
|
+
* ```
|
|
58
62
|
*/
|
|
59
63
|
(
|
|
60
64
|
path: string,
|
|
@@ -73,6 +77,7 @@ export const toFile: {
|
|
|
73
77
|
*
|
|
74
78
|
* @since 1.0.0
|
|
75
79
|
* @example
|
|
80
|
+
* ```ts
|
|
76
81
|
* import { PlatformLogger } from "@effect/platform"
|
|
77
82
|
* import { NodeFileSystem, NodeRuntime } from "@effect/platform-node"
|
|
78
83
|
* import { Effect, Layer, Logger } from "effect"
|
|
@@ -90,6 +95,7 @@ export const toFile: {
|
|
|
90
95
|
* Effect.provide(LoggerLive),
|
|
91
96
|
* NodeRuntime.runMain
|
|
92
97
|
* )
|
|
98
|
+
* ```
|
|
93
99
|
*/
|
|
94
100
|
<Message>(
|
|
95
101
|
self: Logger.Logger<Message, string>,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Cause from "effect/Cause"
|
|
1
2
|
import * as Context from "effect/Context"
|
|
2
3
|
import * as Effect from "effect/Effect"
|
|
3
4
|
import type * as Fiber from "effect/Fiber"
|
|
@@ -11,6 +12,7 @@ import * as Predicate from "effect/Predicate"
|
|
|
11
12
|
import * as Ref from "effect/Ref"
|
|
12
13
|
import * as Schedule from "effect/Schedule"
|
|
13
14
|
import * as Scope from "effect/Scope"
|
|
15
|
+
import type { NoInfer } from "effect/Types"
|
|
14
16
|
import * as Cookies from "../Cookies.js"
|
|
15
17
|
import * as Headers from "../Headers.js"
|
|
16
18
|
import type * as Client from "../HttpClient.js"
|
|
@@ -565,6 +567,7 @@ export const retry: {
|
|
|
565
567
|
export const retryTransient: {
|
|
566
568
|
<B, E, R1 = never>(
|
|
567
569
|
options: {
|
|
570
|
+
readonly while?: Predicate.Predicate<NoInfer<E>>
|
|
568
571
|
readonly schedule?: Schedule.Schedule<B, NoInfer<E>, R1>
|
|
569
572
|
readonly times?: number
|
|
570
573
|
} | Schedule.Schedule<B, NoInfer<E>, R1>
|
|
@@ -572,6 +575,7 @@ export const retryTransient: {
|
|
|
572
575
|
<E, R, B, R1 = never>(
|
|
573
576
|
self: Client.HttpClient<E, R>,
|
|
574
577
|
options: {
|
|
578
|
+
readonly while?: Predicate.Predicate<NoInfer<E>>
|
|
575
579
|
readonly schedule?: Schedule.Schedule<B, NoInfer<E>, R1>
|
|
576
580
|
readonly times?: number
|
|
577
581
|
} | Schedule.Schedule<B, NoInfer<E>, R1>
|
|
@@ -581,6 +585,7 @@ export const retryTransient: {
|
|
|
581
585
|
<E extends E0, E0, R, B, R1 = never>(
|
|
582
586
|
self: Client.HttpClient<E, R>,
|
|
583
587
|
options: {
|
|
588
|
+
readonly while?: Predicate.Predicate<NoInfer<E>>
|
|
584
589
|
readonly schedule?: Schedule.Schedule<B, NoInfer<E>, R1>
|
|
585
590
|
readonly times?: number
|
|
586
591
|
} | Schedule.Schedule<B, NoInfer<E>, R1>
|
|
@@ -588,16 +593,23 @@ export const retryTransient: {
|
|
|
588
593
|
transformResponse(
|
|
589
594
|
self,
|
|
590
595
|
Effect.retry({
|
|
591
|
-
while:
|
|
592
|
-
|
|
593
|
-
(
|
|
594
|
-
(error._tag === "ResponseError" && error.response.status >= 429)),
|
|
596
|
+
while: Schedule.ScheduleTypeId in options || options.while === undefined
|
|
597
|
+
? isTransientError
|
|
598
|
+
: Predicate.or(isTransientError, options.while),
|
|
595
599
|
schedule: Schedule.ScheduleTypeId in options ? options : options.schedule,
|
|
596
600
|
times: Schedule.ScheduleTypeId in options ? undefined : options.times
|
|
597
601
|
})
|
|
598
602
|
)
|
|
599
603
|
)
|
|
600
604
|
|
|
605
|
+
const isTransientError = (error: unknown) =>
|
|
606
|
+
Predicate.hasProperty(error, Cause.TimeoutExceptionTypeId) || isTransientHttpError(error)
|
|
607
|
+
|
|
608
|
+
const isTransientHttpError = (error: unknown) =>
|
|
609
|
+
Error.isHttpClientError(error) &&
|
|
610
|
+
((error._tag === "RequestError" && error.reason === "Transport") ||
|
|
611
|
+
(error._tag === "ResponseError" && error.response.status >= 429))
|
|
612
|
+
|
|
601
613
|
/** @internal */
|
|
602
614
|
export const tap = dual<
|
|
603
615
|
<_, E2, R2>(
|