@effect/platform 0.66.2 → 0.66.3
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/Command.js.map +1 -1
- package/dist/cjs/Cookies.js.map +1 -1
- package/dist/cjs/Effectify.js.map +1 -1
- package/dist/cjs/Headers.js.map +1 -1
- package/dist/cjs/HttpApi.js.map +1 -1
- package/dist/cjs/HttpApiBuilder.js.map +1 -1
- package/dist/cjs/HttpApiEndpoint.js.map +1 -1
- package/dist/cjs/HttpApiGroup.js.map +1 -1
- package/dist/cjs/HttpApiSchema.js.map +1 -1
- package/dist/cjs/HttpApiSecurity.js.map +1 -1
- package/dist/cjs/HttpApp.js.map +1 -1
- package/dist/cjs/HttpClient.js +8 -1
- package/dist/cjs/HttpClient.js.map +1 -1
- package/dist/cjs/HttpClientError.js +8 -1
- package/dist/cjs/HttpClientError.js.map +1 -1
- package/dist/cjs/HttpClientRequest.js.map +1 -1
- package/dist/cjs/HttpClientResponse.js +11 -1
- package/dist/cjs/HttpClientResponse.js.map +1 -1
- package/dist/cjs/HttpIncomingMessage.js.map +1 -1
- package/dist/cjs/HttpMiddleware.js.map +1 -1
- package/dist/cjs/HttpMultiplex.js.map +1 -1
- package/dist/cjs/HttpRouter.js.map +1 -1
- package/dist/cjs/HttpServer.js.map +1 -1
- package/dist/cjs/HttpServerResponse.js.map +1 -1
- package/dist/cjs/KeyValueStore.js.map +1 -1
- package/dist/cjs/Multipart.js.map +1 -1
- package/dist/cjs/OpenApi.js.map +1 -1
- package/dist/cjs/PlatformLogger.js.map +1 -1
- package/dist/cjs/Socket.js +4 -1
- package/dist/cjs/Socket.js.map +1 -1
- package/dist/cjs/Transferable.js.map +1 -1
- package/dist/cjs/UrlParams.js.map +1 -1
- package/dist/cjs/internal/httpClient.js +12 -14
- package/dist/cjs/internal/httpClient.js.map +1 -1
- package/dist/cjs/internal/httpClientResponse.js +16 -1
- package/dist/cjs/internal/httpClientResponse.js.map +1 -1
- package/dist/dts/Command.d.ts +134 -0
- package/dist/dts/Command.d.ts.map +1 -1
- package/dist/dts/Cookies.d.ts +120 -0
- package/dist/dts/Cookies.d.ts.map +1 -1
- package/dist/dts/Effectify.d.ts +9 -0
- package/dist/dts/Effectify.d.ts.map +1 -1
- package/dist/dts/Headers.d.ts +56 -0
- package/dist/dts/Headers.d.ts.map +1 -1
- package/dist/dts/HttpApi.d.ts +58 -0
- package/dist/dts/HttpApi.d.ts.map +1 -1
- package/dist/dts/HttpApiBuilder.d.ts +84 -0
- package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
- package/dist/dts/HttpApiEndpoint.d.ts +118 -0
- package/dist/dts/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/dts/HttpApiGroup.d.ts +100 -0
- package/dist/dts/HttpApiGroup.d.ts.map +1 -1
- package/dist/dts/HttpApiSchema.d.ts +16 -0
- package/dist/dts/HttpApiSchema.d.ts.map +1 -1
- package/dist/dts/HttpApiSecurity.d.ts +16 -0
- package/dist/dts/HttpApiSecurity.d.ts.map +1 -1
- package/dist/dts/HttpApp.d.ts.map +1 -1
- package/dist/dts/HttpClient.d.ts +308 -0
- package/dist/dts/HttpClient.d.ts.map +1 -1
- package/dist/dts/HttpClientError.d.ts +5 -0
- package/dist/dts/HttpClientError.d.ts.map +1 -1
- package/dist/dts/HttpClientRequest.d.ts +208 -0
- package/dist/dts/HttpClientRequest.d.ts.map +1 -1
- package/dist/dts/HttpClientResponse.d.ts +30 -0
- package/dist/dts/HttpClientResponse.d.ts.map +1 -1
- package/dist/dts/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/dts/HttpMiddleware.d.ts +24 -0
- package/dist/dts/HttpMiddleware.d.ts.map +1 -1
- package/dist/dts/HttpMultiplex.d.ts +72 -0
- package/dist/dts/HttpMultiplex.d.ts.map +1 -1
- package/dist/dts/HttpRouter.d.ts +184 -0
- package/dist/dts/HttpRouter.d.ts.map +1 -1
- package/dist/dts/HttpServer.d.ts +32 -0
- package/dist/dts/HttpServer.d.ts.map +1 -1
- package/dist/dts/HttpServerResponse.d.ts +96 -0
- package/dist/dts/HttpServerResponse.d.ts.map +1 -1
- package/dist/dts/KeyValueStore.d.ts +8 -0
- package/dist/dts/KeyValueStore.d.ts.map +1 -1
- package/dist/dts/Multipart.d.ts +32 -0
- package/dist/dts/Multipart.d.ts.map +1 -1
- package/dist/dts/OpenApi.d.ts +8 -0
- package/dist/dts/OpenApi.d.ts.map +1 -1
- package/dist/dts/PlatformLogger.d.ts +46 -0
- package/dist/dts/PlatformLogger.d.ts.map +1 -1
- package/dist/dts/Socket.d.ts +8 -0
- package/dist/dts/Socket.d.ts.map +1 -1
- package/dist/dts/Transferable.d.ts +8 -0
- package/dist/dts/Transferable.d.ts.map +1 -1
- package/dist/dts/UrlParams.d.ts +64 -0
- package/dist/dts/UrlParams.d.ts.map +1 -1
- package/dist/esm/Command.js.map +1 -1
- package/dist/esm/Cookies.js.map +1 -1
- package/dist/esm/Effectify.js.map +1 -1
- package/dist/esm/Headers.js.map +1 -1
- package/dist/esm/HttpApi.js.map +1 -1
- package/dist/esm/HttpApiBuilder.js.map +1 -1
- package/dist/esm/HttpApiEndpoint.js.map +1 -1
- package/dist/esm/HttpApiGroup.js.map +1 -1
- package/dist/esm/HttpApiSchema.js.map +1 -1
- package/dist/esm/HttpApiSecurity.js.map +1 -1
- package/dist/esm/HttpApp.js.map +1 -1
- package/dist/esm/HttpClient.js +7 -0
- package/dist/esm/HttpClient.js.map +1 -1
- package/dist/esm/HttpClientError.js +6 -0
- package/dist/esm/HttpClientError.js.map +1 -1
- package/dist/esm/HttpClientRequest.js.map +1 -1
- package/dist/esm/HttpClientResponse.js +10 -0
- package/dist/esm/HttpClientResponse.js.map +1 -1
- package/dist/esm/HttpIncomingMessage.js.map +1 -1
- package/dist/esm/HttpMiddleware.js.map +1 -1
- package/dist/esm/HttpMultiplex.js.map +1 -1
- package/dist/esm/HttpRouter.js.map +1 -1
- package/dist/esm/HttpServer.js.map +1 -1
- package/dist/esm/HttpServerResponse.js.map +1 -1
- package/dist/esm/KeyValueStore.js.map +1 -1
- package/dist/esm/Multipart.js.map +1 -1
- package/dist/esm/OpenApi.js.map +1 -1
- package/dist/esm/PlatformLogger.js.map +1 -1
- package/dist/esm/Socket.js +4 -1
- package/dist/esm/Socket.js.map +1 -1
- package/dist/esm/Transferable.js.map +1 -1
- package/dist/esm/UrlParams.js.map +1 -1
- package/dist/esm/internal/httpClient.js +11 -13
- package/dist/esm/internal/httpClient.js.map +1 -1
- package/dist/esm/internal/httpClientResponse.js +14 -0
- package/dist/esm/internal/httpClientResponse.js.map +1 -1
- package/package.json +3 -3
- package/src/Command.ts +134 -0
- package/src/Cookies.ts +128 -38
- package/src/Effectify.ts +9 -0
- package/src/Headers.ts +106 -7
- package/src/HttpApi.ts +58 -0
- package/src/HttpApiBuilder.ts +85 -3
- package/src/HttpApiEndpoint.ts +121 -9
- package/src/HttpApiGroup.ts +102 -7
- package/src/HttpApiSchema.ts +22 -4
- package/src/HttpApiSecurity.ts +16 -0
- package/src/HttpApp.ts +8 -0
- package/src/HttpClient.ts +315 -11
- package/src/HttpClientError.ts +7 -0
- package/src/HttpClientRequest.ts +213 -1
- package/src/HttpClientResponse.ts +33 -0
- package/src/HttpIncomingMessage.ts +8 -0
- package/src/HttpMiddleware.ts +24 -0
- package/src/HttpMultiplex.ts +72 -0
- package/src/HttpRouter.ts +189 -18
- package/src/HttpServer.ts +34 -6
- package/src/HttpServerResponse.ts +98 -10
- package/src/KeyValueStore.ts +8 -0
- package/src/Multipart.ts +32 -0
- package/src/OpenApi.ts +31 -18
- package/src/PlatformLogger.ts +46 -0
- package/src/Socket.ts +19 -13
- package/src/Transferable.ts +9 -3
- package/src/UrlParams.ts +64 -0
- package/src/internal/httpClient.ts +41 -26
- package/src/internal/httpClientResponse.ts +40 -1
package/src/HttpClient.ts
CHANGED
|
@@ -94,9 +94,17 @@ export const HttpClient: Context.Tag<HttpClient.Service, HttpClient.Service> = i
|
|
|
94
94
|
* @category error handling
|
|
95
95
|
*/
|
|
96
96
|
export const catchAll: {
|
|
97
|
+
/**
|
|
98
|
+
* @since 1.0.0
|
|
99
|
+
* @category error handling
|
|
100
|
+
*/
|
|
97
101
|
<E, E2, R2, A2>(
|
|
98
102
|
f: (e: E) => Effect.Effect<A2, E2, R2>
|
|
99
103
|
): <A, R>(self: HttpClient<A, E, R>) => HttpClient<A2 | A, E2, R2 | R>
|
|
104
|
+
/**
|
|
105
|
+
* @since 1.0.0
|
|
106
|
+
* @category error handling
|
|
107
|
+
*/
|
|
100
108
|
<A, E, R, A2, E2, R2>(
|
|
101
109
|
self: HttpClient<A, E, R>,
|
|
102
110
|
f: (e: E) => Effect.Effect<A2, E2, R2>
|
|
@@ -108,10 +116,18 @@ export const catchAll: {
|
|
|
108
116
|
* @category error handling
|
|
109
117
|
*/
|
|
110
118
|
export const catchTag: {
|
|
119
|
+
/**
|
|
120
|
+
* @since 1.0.0
|
|
121
|
+
* @category error handling
|
|
122
|
+
*/
|
|
111
123
|
<E extends { _tag: string }, K extends E["_tag"] & string, A1, E1, R1>(
|
|
112
124
|
tag: K,
|
|
113
125
|
f: (e: Extract<E, { _tag: K }>) => Effect.Effect<A1, E1, R1>
|
|
114
126
|
): <A, R>(self: HttpClient<A, E, R>) => HttpClient<A1 | A, E1 | Exclude<E, { _tag: K }>, R1 | R>
|
|
127
|
+
/**
|
|
128
|
+
* @since 1.0.0
|
|
129
|
+
* @category error handling
|
|
130
|
+
*/
|
|
115
131
|
<A, E extends { _tag: string }, R, K extends E["_tag"] & string, A1, E1, R1>(
|
|
116
132
|
self: HttpClient<A, E, R>,
|
|
117
133
|
tag: K,
|
|
@@ -124,12 +140,14 @@ export const catchTag: {
|
|
|
124
140
|
* @category error handling
|
|
125
141
|
*/
|
|
126
142
|
export const catchTags: {
|
|
143
|
+
/**
|
|
144
|
+
* @since 1.0.0
|
|
145
|
+
* @category error handling
|
|
146
|
+
*/
|
|
127
147
|
<
|
|
128
148
|
E extends { _tag: string },
|
|
129
149
|
Cases extends { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>) | undefined }
|
|
130
|
-
>(
|
|
131
|
-
cases: Cases
|
|
132
|
-
): <A, R>(
|
|
150
|
+
>(cases: Cases): <A, R>(
|
|
133
151
|
self: HttpClient<A, E, R>
|
|
134
152
|
) => HttpClient<
|
|
135
153
|
| A
|
|
@@ -145,15 +163,16 @@ export const catchTags: {
|
|
|
145
163
|
[K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect.Effect<any, any, infer R> ? R : never
|
|
146
164
|
}[keyof Cases]
|
|
147
165
|
>
|
|
166
|
+
/**
|
|
167
|
+
* @since 1.0.0
|
|
168
|
+
* @category error handling
|
|
169
|
+
*/
|
|
148
170
|
<
|
|
149
171
|
A,
|
|
150
172
|
E extends { _tag: string },
|
|
151
173
|
R,
|
|
152
174
|
Cases extends { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>) | undefined }
|
|
153
|
-
>(
|
|
154
|
-
self: HttpClient<A, E, R>,
|
|
155
|
-
cases: Cases
|
|
156
|
-
): HttpClient<
|
|
175
|
+
>(self: HttpClient<A, E, R>, cases: Cases): HttpClient<
|
|
157
176
|
| A
|
|
158
177
|
| {
|
|
159
178
|
[K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect.Effect<infer A, any, any> ? A : never
|
|
@@ -176,21 +195,45 @@ export const catchTags: {
|
|
|
176
195
|
* @category filters
|
|
177
196
|
*/
|
|
178
197
|
export const filterOrElse: {
|
|
198
|
+
/**
|
|
199
|
+
* Filters the result of a response, or runs an alternative effect if the predicate fails.
|
|
200
|
+
*
|
|
201
|
+
* @since 1.0.0
|
|
202
|
+
* @category filters
|
|
203
|
+
*/
|
|
179
204
|
<A, B extends A, C, E2, R2>(
|
|
180
205
|
refinement: Predicate.Refinement<NoInfer<A>, B>,
|
|
181
206
|
orElse: (a: NoInfer<A>) => Effect.Effect<C, E2, R2>
|
|
182
207
|
): <E, R>(self: HttpClient<A, E, R>) => HttpClient<B | C, E | E2, R | R2>
|
|
208
|
+
/**
|
|
209
|
+
* Filters the result of a response, or runs an alternative effect if the predicate fails.
|
|
210
|
+
*
|
|
211
|
+
* @since 1.0.0
|
|
212
|
+
* @category filters
|
|
213
|
+
*/
|
|
183
214
|
<A, B, E2, R2>(
|
|
184
215
|
predicate: Predicate.Predicate<NoInfer<A>>,
|
|
185
216
|
orElse: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
|
|
186
217
|
): <E, R>(
|
|
187
218
|
self: HttpClient<A, E, R>
|
|
188
219
|
) => HttpClient<A | B, E2 | E, R2 | R>
|
|
220
|
+
/**
|
|
221
|
+
* Filters the result of a response, or runs an alternative effect if the predicate fails.
|
|
222
|
+
*
|
|
223
|
+
* @since 1.0.0
|
|
224
|
+
* @category filters
|
|
225
|
+
*/
|
|
189
226
|
<A, E, R, B extends A, C, E2, R2>(
|
|
190
227
|
self: HttpClient<A, E, R>,
|
|
191
228
|
refinement: Predicate.Refinement<A, B>,
|
|
192
229
|
orElse: (a: A) => Effect.Effect<C, E2, R2>
|
|
193
230
|
): HttpClient<B | C, E | E2, R | R2>
|
|
231
|
+
/**
|
|
232
|
+
* Filters the result of a response, or runs an alternative effect if the predicate fails.
|
|
233
|
+
*
|
|
234
|
+
* @since 1.0.0
|
|
235
|
+
* @category filters
|
|
236
|
+
*/
|
|
194
237
|
<A, E, R, B, E2, R2>(
|
|
195
238
|
self: HttpClient<A, E, R>,
|
|
196
239
|
predicate: Predicate.Predicate<A>,
|
|
@@ -205,19 +248,43 @@ export const filterOrElse: {
|
|
|
205
248
|
* @category filters
|
|
206
249
|
*/
|
|
207
250
|
export const filterOrFail: {
|
|
251
|
+
/**
|
|
252
|
+
* Filters the result of a response, or throws an error if the predicate fails.
|
|
253
|
+
*
|
|
254
|
+
* @since 1.0.0
|
|
255
|
+
* @category filters
|
|
256
|
+
*/
|
|
208
257
|
<A, B extends A, E2>(
|
|
209
258
|
refinement: Predicate.Refinement<NoInfer<A>, B>,
|
|
210
259
|
orFailWith: (a: NoInfer<A>) => E2
|
|
211
260
|
): <E, R>(self: HttpClient<A, E, R>) => HttpClient<B, E | E2, R>
|
|
261
|
+
/**
|
|
262
|
+
* Filters the result of a response, or throws an error if the predicate fails.
|
|
263
|
+
*
|
|
264
|
+
* @since 1.0.0
|
|
265
|
+
* @category filters
|
|
266
|
+
*/
|
|
212
267
|
<A, E2>(
|
|
213
268
|
predicate: Predicate.Predicate<NoInfer<A>>,
|
|
214
269
|
orFailWith: (a: NoInfer<A>) => E2
|
|
215
270
|
): <E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E2 | E, R>
|
|
271
|
+
/**
|
|
272
|
+
* Filters the result of a response, or throws an error if the predicate fails.
|
|
273
|
+
*
|
|
274
|
+
* @since 1.0.0
|
|
275
|
+
* @category filters
|
|
276
|
+
*/
|
|
216
277
|
<A, B extends A, E, R, E2>(
|
|
217
278
|
self: HttpClient<A, E, R>,
|
|
218
279
|
refinement: Predicate.Refinement<A, B>,
|
|
219
280
|
orFailWith: (a: A) => E2
|
|
220
281
|
): HttpClient<B, E2 | E, R>
|
|
282
|
+
/**
|
|
283
|
+
* Filters the result of a response, or throws an error if the predicate fails.
|
|
284
|
+
*
|
|
285
|
+
* @since 1.0.0
|
|
286
|
+
* @category filters
|
|
287
|
+
*/
|
|
221
288
|
<A, E, R, E2>(
|
|
222
289
|
self: HttpClient<A, E, R>,
|
|
223
290
|
predicate: Predicate.Predicate<A>,
|
|
@@ -232,9 +299,21 @@ export const filterOrFail: {
|
|
|
232
299
|
* @category filters
|
|
233
300
|
*/
|
|
234
301
|
export const filterStatus: {
|
|
302
|
+
/**
|
|
303
|
+
* Filters responses by HTTP status code.
|
|
304
|
+
*
|
|
305
|
+
* @since 1.0.0
|
|
306
|
+
* @category filters
|
|
307
|
+
*/
|
|
235
308
|
(
|
|
236
309
|
f: (status: number) => boolean
|
|
237
310
|
): <E, R>(self: HttpClient.WithResponse<E, R>) => HttpClient.WithResponse<E | Error.ResponseError, R>
|
|
311
|
+
/**
|
|
312
|
+
* Filters responses by HTTP status code.
|
|
313
|
+
*
|
|
314
|
+
* @since 1.0.0
|
|
315
|
+
* @category filters
|
|
316
|
+
*/
|
|
238
317
|
<E, R>(
|
|
239
318
|
self: HttpClient.WithResponse<E, R>,
|
|
240
319
|
f: (status: number) => boolean
|
|
@@ -278,9 +357,17 @@ export const makeService: (
|
|
|
278
357
|
* @category mapping & sequencing
|
|
279
358
|
*/
|
|
280
359
|
export const transform: {
|
|
360
|
+
/**
|
|
361
|
+
* @since 1.0.0
|
|
362
|
+
* @category mapping & sequencing
|
|
363
|
+
*/
|
|
281
364
|
<A, E, R, A1, E1, R1>(
|
|
282
365
|
f: (effect: Effect.Effect<A, E, R>, request: ClientRequest.HttpClientRequest) => Effect.Effect<A1, E1, R1>
|
|
283
366
|
): (self: HttpClient<A, E, R>) => HttpClient<A1, E | E1, R | R1>
|
|
367
|
+
/**
|
|
368
|
+
* @since 1.0.0
|
|
369
|
+
* @category mapping & sequencing
|
|
370
|
+
*/
|
|
284
371
|
<A, E, R, A1, E1, R1>(
|
|
285
372
|
self: HttpClient<A, E, R>,
|
|
286
373
|
f: (effect: Effect.Effect<A, E, R>, request: ClientRequest.HttpClientRequest) => Effect.Effect<A1, E1, R1>
|
|
@@ -292,9 +379,17 @@ export const transform: {
|
|
|
292
379
|
* @category mapping & sequencing
|
|
293
380
|
*/
|
|
294
381
|
export const transformResponse: {
|
|
382
|
+
/**
|
|
383
|
+
* @since 1.0.0
|
|
384
|
+
* @category mapping & sequencing
|
|
385
|
+
*/
|
|
295
386
|
<A, E, R, A1, E1, R1>(
|
|
296
387
|
f: (effect: Effect.Effect<A, E, R>) => Effect.Effect<A1, E1, R1>
|
|
297
388
|
): (self: HttpClient<A, E, R>) => HttpClient<A1, E1, R1>
|
|
389
|
+
/**
|
|
390
|
+
* @since 1.0.0
|
|
391
|
+
* @category mapping & sequencing
|
|
392
|
+
*/
|
|
298
393
|
<A, E, R, A1, E1, R1>(
|
|
299
394
|
self: HttpClient<A, E, R>,
|
|
300
395
|
f: (effect: Effect.Effect<A, E, R>) => Effect.Effect<A1, E1, R1>
|
|
@@ -308,7 +403,19 @@ export const transformResponse: {
|
|
|
308
403
|
* @category mapping & sequencing
|
|
309
404
|
*/
|
|
310
405
|
export const map: {
|
|
406
|
+
/**
|
|
407
|
+
* Transforms the result of a request.
|
|
408
|
+
*
|
|
409
|
+
* @since 1.0.0
|
|
410
|
+
* @category mapping & sequencing
|
|
411
|
+
*/
|
|
311
412
|
<A, B>(f: (a: A) => B): <E, R>(self: HttpClient<A, E, R>) => HttpClient<B, E, R>
|
|
413
|
+
/**
|
|
414
|
+
* Transforms the result of a request.
|
|
415
|
+
*
|
|
416
|
+
* @since 1.0.0
|
|
417
|
+
* @category mapping & sequencing
|
|
418
|
+
*/
|
|
312
419
|
<A, E, R, B>(self: HttpClient<A, E, R>, f: (a: A) => B): HttpClient<B, E, R>
|
|
313
420
|
} = internal.map
|
|
314
421
|
|
|
@@ -319,9 +426,21 @@ export const map: {
|
|
|
319
426
|
* @category mapping & sequencing
|
|
320
427
|
*/
|
|
321
428
|
export const mapEffect: {
|
|
429
|
+
/**
|
|
430
|
+
* Transforms the result of a request using an effectful function.
|
|
431
|
+
*
|
|
432
|
+
* @since 1.0.0
|
|
433
|
+
* @category mapping & sequencing
|
|
434
|
+
*/
|
|
322
435
|
<A, B, E2, R2>(
|
|
323
436
|
f: (a: A) => Effect.Effect<B, E2, R2>
|
|
324
437
|
): <E, R>(self: HttpClient<A, E, R>) => HttpClient<B, E2 | E, R2 | R>
|
|
438
|
+
/**
|
|
439
|
+
* Transforms the result of a request using an effectful function.
|
|
440
|
+
*
|
|
441
|
+
* @since 1.0.0
|
|
442
|
+
* @category mapping & sequencing
|
|
443
|
+
*/
|
|
325
444
|
<A, E, R, B, E2, R2>(self: HttpClient<A, E, R>, f: (a: A) => Effect.Effect<B, E2, R2>): HttpClient<B, E | E2, R2 | R>
|
|
326
445
|
} = internal.mapEffect
|
|
327
446
|
|
|
@@ -332,9 +451,21 @@ export const mapEffect: {
|
|
|
332
451
|
* @category mapping & sequencing
|
|
333
452
|
*/
|
|
334
453
|
export const mapRequest: {
|
|
454
|
+
/**
|
|
455
|
+
* Appends a transformation of the request object before sending it.
|
|
456
|
+
*
|
|
457
|
+
* @since 1.0.0
|
|
458
|
+
* @category mapping & sequencing
|
|
459
|
+
*/
|
|
335
460
|
(
|
|
336
461
|
f: (a: ClientRequest.HttpClientRequest) => ClientRequest.HttpClientRequest
|
|
337
462
|
): <A, E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E, R>
|
|
463
|
+
/**
|
|
464
|
+
* Appends a transformation of the request object before sending it.
|
|
465
|
+
*
|
|
466
|
+
* @since 1.0.0
|
|
467
|
+
* @category mapping & sequencing
|
|
468
|
+
*/
|
|
338
469
|
<A, E, R>(
|
|
339
470
|
self: HttpClient<A, E, R>,
|
|
340
471
|
f: (a: ClientRequest.HttpClientRequest) => ClientRequest.HttpClientRequest
|
|
@@ -348,9 +479,21 @@ export const mapRequest: {
|
|
|
348
479
|
* @category mapping & sequencing
|
|
349
480
|
*/
|
|
350
481
|
export const mapRequestEffect: {
|
|
482
|
+
/**
|
|
483
|
+
* Appends an effectful transformation of the request object before sending it.
|
|
484
|
+
*
|
|
485
|
+
* @since 1.0.0
|
|
486
|
+
* @category mapping & sequencing
|
|
487
|
+
*/
|
|
351
488
|
<E2, R2>(
|
|
352
489
|
f: (a: ClientRequest.HttpClientRequest) => Effect.Effect<ClientRequest.HttpClientRequest, E2, R2>
|
|
353
490
|
): <A, E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E2 | E, R2 | R>
|
|
491
|
+
/**
|
|
492
|
+
* Appends an effectful transformation of the request object before sending it.
|
|
493
|
+
*
|
|
494
|
+
* @since 1.0.0
|
|
495
|
+
* @category mapping & sequencing
|
|
496
|
+
*/
|
|
354
497
|
<A, E, R, E2, R2>(
|
|
355
498
|
self: HttpClient<A, E, R>,
|
|
356
499
|
f: (a: ClientRequest.HttpClientRequest) => Effect.Effect<ClientRequest.HttpClientRequest, E2, R2>
|
|
@@ -364,9 +507,21 @@ export const mapRequestEffect: {
|
|
|
364
507
|
* @category mapping & sequencing
|
|
365
508
|
*/
|
|
366
509
|
export const mapRequestInput: {
|
|
510
|
+
/**
|
|
511
|
+
* Prepends a transformation of the request object before sending it.
|
|
512
|
+
*
|
|
513
|
+
* @since 1.0.0
|
|
514
|
+
* @category mapping & sequencing
|
|
515
|
+
*/
|
|
367
516
|
(
|
|
368
517
|
f: (a: ClientRequest.HttpClientRequest) => ClientRequest.HttpClientRequest
|
|
369
518
|
): <A, E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E, R>
|
|
519
|
+
/**
|
|
520
|
+
* Prepends a transformation of the request object before sending it.
|
|
521
|
+
*
|
|
522
|
+
* @since 1.0.0
|
|
523
|
+
* @category mapping & sequencing
|
|
524
|
+
*/
|
|
370
525
|
<A, E, R>(
|
|
371
526
|
self: HttpClient<A, E, R>,
|
|
372
527
|
f: (a: ClientRequest.HttpClientRequest) => ClientRequest.HttpClientRequest
|
|
@@ -380,9 +535,21 @@ export const mapRequestInput: {
|
|
|
380
535
|
* @category mapping & sequencing
|
|
381
536
|
*/
|
|
382
537
|
export const mapRequestInputEffect: {
|
|
538
|
+
/**
|
|
539
|
+
* Prepends an effectful transformation of the request object before sending it.
|
|
540
|
+
*
|
|
541
|
+
* @since 1.0.0
|
|
542
|
+
* @category mapping & sequencing
|
|
543
|
+
*/
|
|
383
544
|
<E2, R2>(
|
|
384
545
|
f: (a: ClientRequest.HttpClientRequest) => Effect.Effect<ClientRequest.HttpClientRequest, E2, R2>
|
|
385
546
|
): <A, E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E2 | E, R2 | R>
|
|
547
|
+
/**
|
|
548
|
+
* Prepends an effectful transformation of the request object before sending it.
|
|
549
|
+
*
|
|
550
|
+
* @since 1.0.0
|
|
551
|
+
* @category mapping & sequencing
|
|
552
|
+
*/
|
|
386
553
|
<A, E, R, E2, R2>(
|
|
387
554
|
self: HttpClient<A, E, R>,
|
|
388
555
|
f: (a: ClientRequest.HttpClientRequest) => Effect.Effect<ClientRequest.HttpClientRequest, E2, R2>
|
|
@@ -419,14 +586,70 @@ export declare namespace Retry {
|
|
|
419
586
|
* @category error handling
|
|
420
587
|
*/
|
|
421
588
|
export const retry: {
|
|
589
|
+
/**
|
|
590
|
+
* Retries the request based on a provided schedule or policy.
|
|
591
|
+
*
|
|
592
|
+
* @since 1.0.0
|
|
593
|
+
* @category error handling
|
|
594
|
+
*/
|
|
422
595
|
<E, O extends Effect.Retry.Options<E>>(options: O): <A, R>(self: HttpClient<A, E, R>) => Retry.Return<R, E, A, O>
|
|
596
|
+
/**
|
|
597
|
+
* Retries the request based on a provided schedule or policy.
|
|
598
|
+
*
|
|
599
|
+
* @since 1.0.0
|
|
600
|
+
* @category error handling
|
|
601
|
+
*/
|
|
423
602
|
<B, E, R1>(
|
|
424
603
|
policy: Schedule.Schedule<B, NoInfer<E>, R1>
|
|
425
604
|
): <A, R>(self: HttpClient<A, E, R>) => HttpClient<A, E, R1 | R>
|
|
605
|
+
/**
|
|
606
|
+
* Retries the request based on a provided schedule or policy.
|
|
607
|
+
*
|
|
608
|
+
* @since 1.0.0
|
|
609
|
+
* @category error handling
|
|
610
|
+
*/
|
|
426
611
|
<A, E, R, O extends Effect.Retry.Options<E>>(self: HttpClient<A, E, R>, options: O): Retry.Return<R, E, A, O>
|
|
612
|
+
/**
|
|
613
|
+
* Retries the request based on a provided schedule or policy.
|
|
614
|
+
*
|
|
615
|
+
* @since 1.0.0
|
|
616
|
+
* @category error handling
|
|
617
|
+
*/
|
|
427
618
|
<A, E, R, B, R1>(self: HttpClient<A, E, R>, policy: Schedule.Schedule<B, E, R1>): HttpClient<A, E, R1 | R>
|
|
428
619
|
} = internal.retry
|
|
429
620
|
|
|
621
|
+
/**
|
|
622
|
+
* Retries common transient errors, such as rate limiting or network issues.
|
|
623
|
+
*
|
|
624
|
+
* @since 1.0.0
|
|
625
|
+
* @category error handling
|
|
626
|
+
*/
|
|
627
|
+
export const retryTransient: {
|
|
628
|
+
/**
|
|
629
|
+
* Retries common transient errors, such as rate limiting or network issues.
|
|
630
|
+
*
|
|
631
|
+
* @since 1.0.0
|
|
632
|
+
* @category error handling
|
|
633
|
+
*/
|
|
634
|
+
<B, E, R1 = never>(
|
|
635
|
+
options:
|
|
636
|
+
| { readonly schedule?: Schedule.Schedule<B, NoInfer<E>, R1>; readonly times?: number }
|
|
637
|
+
| Schedule.Schedule<B, NoInfer<E>, R1>
|
|
638
|
+
): <A, R>(self: HttpClient<A, E, R>) => HttpClient<A, E, R1 | R>
|
|
639
|
+
/**
|
|
640
|
+
* Retries common transient errors, such as rate limiting or network issues.
|
|
641
|
+
*
|
|
642
|
+
* @since 1.0.0
|
|
643
|
+
* @category error handling
|
|
644
|
+
*/
|
|
645
|
+
<A, E, R, B, R1 = never>(
|
|
646
|
+
self: HttpClient<A, E, R>,
|
|
647
|
+
options:
|
|
648
|
+
| { readonly schedule?: Schedule.Schedule<B, NoInfer<E>, R1>; readonly times?: number }
|
|
649
|
+
| Schedule.Schedule<B, NoInfer<E>, R1>
|
|
650
|
+
): HttpClient<A, E, R1 | R>
|
|
651
|
+
} = internal.retryTransient
|
|
652
|
+
|
|
430
653
|
/**
|
|
431
654
|
* Ensures resources are properly scoped and released after execution.
|
|
432
655
|
*
|
|
@@ -442,14 +665,23 @@ export const scoped: <A, E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E, Ex
|
|
|
442
665
|
* @category schema
|
|
443
666
|
*/
|
|
444
667
|
export const schemaFunction: {
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
668
|
+
/**
|
|
669
|
+
* Creates a function that validates request data against a schema before sending it.
|
|
670
|
+
*
|
|
671
|
+
* @since 1.0.0
|
|
672
|
+
* @category schema
|
|
673
|
+
*/
|
|
674
|
+
<SA, SI, SR>(schema: Schema.Schema<SA, SI, SR>, options?: ParseOptions | undefined): <A, E, R>(
|
|
449
675
|
self: HttpClient<A, E, R>
|
|
450
676
|
) => (
|
|
451
677
|
request: ClientRequest.HttpClientRequest
|
|
452
678
|
) => (a: SA) => Effect.Effect<A, Error.RequestError | E | ParseResult.ParseError, SR | R>
|
|
679
|
+
/**
|
|
680
|
+
* Creates a function that validates request data against a schema before sending it.
|
|
681
|
+
*
|
|
682
|
+
* @since 1.0.0
|
|
683
|
+
* @category schema
|
|
684
|
+
*/
|
|
453
685
|
<A, E, R, SA, SI, SR>(
|
|
454
686
|
self: HttpClient<A, E, R>,
|
|
455
687
|
schema: Schema.Schema<SA, SI, SR>,
|
|
@@ -466,9 +698,21 @@ export const schemaFunction: {
|
|
|
466
698
|
* @category mapping & sequencing
|
|
467
699
|
*/
|
|
468
700
|
export const tap: {
|
|
701
|
+
/**
|
|
702
|
+
* Performs an additional effect after a successful request.
|
|
703
|
+
*
|
|
704
|
+
* @since 1.0.0
|
|
705
|
+
* @category mapping & sequencing
|
|
706
|
+
*/
|
|
469
707
|
<A, _, E2, R2>(
|
|
470
708
|
f: (a: A) => Effect.Effect<_, E2, R2>
|
|
471
709
|
): <E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E2 | E, R2 | R>
|
|
710
|
+
/**
|
|
711
|
+
* Performs an additional effect after a successful request.
|
|
712
|
+
*
|
|
713
|
+
* @since 1.0.0
|
|
714
|
+
* @category mapping & sequencing
|
|
715
|
+
*/
|
|
472
716
|
<A, E, R, _, E2, R2>(self: HttpClient<A, E, R>, f: (a: A) => Effect.Effect<_, E2, R2>): HttpClient<A, E | E2, R2 | R>
|
|
473
717
|
} = internal.tap
|
|
474
718
|
|
|
@@ -479,9 +723,21 @@ export const tap: {
|
|
|
479
723
|
* @category mapping & sequencing
|
|
480
724
|
*/
|
|
481
725
|
export const tapRequest: {
|
|
726
|
+
/**
|
|
727
|
+
* Performs an additional effect on the request before sending it.
|
|
728
|
+
*
|
|
729
|
+
* @since 1.0.0
|
|
730
|
+
* @category mapping & sequencing
|
|
731
|
+
*/
|
|
482
732
|
<_, E2, R2>(
|
|
483
733
|
f: (a: ClientRequest.HttpClientRequest) => Effect.Effect<_, E2, R2>
|
|
484
734
|
): <A, E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E2 | E, R2 | R>
|
|
735
|
+
/**
|
|
736
|
+
* Performs an additional effect on the request before sending it.
|
|
737
|
+
*
|
|
738
|
+
* @since 1.0.0
|
|
739
|
+
* @category mapping & sequencing
|
|
740
|
+
*/
|
|
485
741
|
<A, E, R, _, E2, R2>(
|
|
486
742
|
self: HttpClient<A, E, R>,
|
|
487
743
|
f: (a: ClientRequest.HttpClientRequest) => Effect.Effect<_, E2, R2>
|
|
@@ -495,7 +751,19 @@ export const tapRequest: {
|
|
|
495
751
|
* @category cookies
|
|
496
752
|
*/
|
|
497
753
|
export const withCookiesRef: {
|
|
754
|
+
/**
|
|
755
|
+
* Associates a `Ref` of cookies with the client for handling cookies across requests.
|
|
756
|
+
*
|
|
757
|
+
* @since 1.0.0
|
|
758
|
+
* @category cookies
|
|
759
|
+
*/
|
|
498
760
|
(ref: Ref<Cookies>): <E, R>(self: HttpClient.WithResponse<E, R>) => HttpClient.WithResponse<E, R>
|
|
761
|
+
/**
|
|
762
|
+
* Associates a `Ref` of cookies with the client for handling cookies across requests.
|
|
763
|
+
*
|
|
764
|
+
* @since 1.0.0
|
|
765
|
+
* @category cookies
|
|
766
|
+
*/
|
|
499
767
|
<E, R>(self: HttpClient.WithResponse<E, R>, ref: Ref<Cookies>): HttpClient.WithResponse<E, R>
|
|
500
768
|
} = internal.withCookiesRef
|
|
501
769
|
|
|
@@ -506,7 +774,19 @@ export const withCookiesRef: {
|
|
|
506
774
|
* @category redirects
|
|
507
775
|
*/
|
|
508
776
|
export const followRedirects: {
|
|
777
|
+
/**
|
|
778
|
+
* Follows HTTP redirects up to a specified number of times.
|
|
779
|
+
*
|
|
780
|
+
* @since 1.0.0
|
|
781
|
+
* @category redirects
|
|
782
|
+
*/
|
|
509
783
|
(maxRedirects?: number | undefined): <E, R>(self: HttpClient.WithResponse<E, R>) => HttpClient.WithResponse<E, R>
|
|
784
|
+
/**
|
|
785
|
+
* Follows HTTP redirects up to a specified number of times.
|
|
786
|
+
*
|
|
787
|
+
* @since 1.0.0
|
|
788
|
+
* @category redirects
|
|
789
|
+
*/
|
|
510
790
|
<E, R>(self: HttpClient.WithResponse<E, R>, maxRedirects?: number | undefined): HttpClient.WithResponse<E, R>
|
|
511
791
|
} = internal.followRedirects
|
|
512
792
|
|
|
@@ -524,9 +804,21 @@ export const currentTracerDisabledWhen: FiberRef.FiberRef<Predicate.Predicate<Cl
|
|
|
524
804
|
* @category fiber refs
|
|
525
805
|
*/
|
|
526
806
|
export const withTracerDisabledWhen: {
|
|
807
|
+
/**
|
|
808
|
+
* Disables tracing for specific requests based on a provided predicate.
|
|
809
|
+
*
|
|
810
|
+
* @since 1.0.0
|
|
811
|
+
* @category fiber refs
|
|
812
|
+
*/
|
|
527
813
|
(
|
|
528
814
|
predicate: Predicate.Predicate<ClientRequest.HttpClientRequest>
|
|
529
815
|
): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
816
|
+
/**
|
|
817
|
+
* Disables tracing for specific requests based on a provided predicate.
|
|
818
|
+
*
|
|
819
|
+
* @since 1.0.0
|
|
820
|
+
* @category fiber refs
|
|
821
|
+
*/
|
|
530
822
|
<A, E, R>(
|
|
531
823
|
effect: Effect.Effect<A, E, R>,
|
|
532
824
|
predicate: Predicate.Predicate<ClientRequest.HttpClientRequest>
|
|
@@ -546,7 +838,19 @@ export const currentTracerPropagation: FiberRef.FiberRef<boolean> = internal.cur
|
|
|
546
838
|
* @category fiber refs
|
|
547
839
|
*/
|
|
548
840
|
export const withTracerPropagation: {
|
|
841
|
+
/**
|
|
842
|
+
* Enables or disables tracing propagation for the request.
|
|
843
|
+
*
|
|
844
|
+
* @since 1.0.0
|
|
845
|
+
* @category fiber refs
|
|
846
|
+
*/
|
|
549
847
|
(enabled: boolean): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
848
|
+
/**
|
|
849
|
+
* Enables or disables tracing propagation for the request.
|
|
850
|
+
*
|
|
851
|
+
* @since 1.0.0
|
|
852
|
+
* @category fiber refs
|
|
853
|
+
*/
|
|
550
854
|
<A, E, R>(effect: Effect.Effect<A, E, R>, enabled: boolean): Effect.Effect<A, E, R>
|
|
551
855
|
} = internal.withTracerPropagation
|
|
552
856
|
|
package/src/HttpClientError.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Error from "@effect/platform/Error"
|
|
5
|
+
import { hasProperty } from "effect/Predicate"
|
|
5
6
|
import type * as ClientRequest from "./HttpClientRequest.js"
|
|
6
7
|
import type * as ClientResponse from "./HttpClientResponse.js"
|
|
7
8
|
import * as internal from "./internal/httpClientError.js"
|
|
@@ -18,6 +19,12 @@ export const TypeId: unique symbol = internal.TypeId
|
|
|
18
19
|
*/
|
|
19
20
|
export type TypeId = typeof TypeId
|
|
20
21
|
|
|
22
|
+
/**
|
|
23
|
+
* @since 1.0.0
|
|
24
|
+
* @category guards
|
|
25
|
+
*/
|
|
26
|
+
export const isHttpClientError = (u: unknown): u is HttpClientError => hasProperty(u, TypeId)
|
|
27
|
+
|
|
21
28
|
/**
|
|
22
29
|
* @since 1.0.0
|
|
23
30
|
* @category error
|