-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathResponse.ts
117 lines (103 loc) · 2.25 KB
/
Response.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/**
* @since 1.0.0
*/
import { Effect } from "effect/Effect";
import { dual } from "effect/Function";
import { Predicate } from "effect/Predicate";
import * as internal from "./internal/response/index.js";
import { DecodeError } from "./internal/error.js";
import {
ResponseT,
StatusError,
StatusErrorT,
} from "./internal/response/index.js";
import { StatusNotOK, StatusOK } from "./internal/response/types.js";
export {
/**
* @since 1.1.0
* @category status code
*/
StatusCode,
/**
* @since 2.1.0
* @category status code
*/
StatusOK,
/**
* @since 2.1.0
* @category status code
*/
StatusNotOK,
} from "./internal/response/types.js";
export {
/**
* @since 1.1.0
* @category error
*/
StatusError,
/**
* @since 1.1.0
* @category error
*/
StatusErrorT,
} from "./internal/response/index.js";
/**
* @since 1.0.0
* @category combinators
*/
export const json: (value: Response) => Effect<any, DecodeError, never> =
internal.json;
/**
* @since 1.0.0
* @category combinators
*/
export const text: (value: Response) => Effect<string, DecodeError, never> =
internal.text;
/**
* @since 1.0.0
* @category combinators
*/
export const blob: (value: Response) => Effect<Blob, DecodeError, never> =
internal.blob;
/**
* @since 1.0.0
* @category combinators
*/
export const formData: (
value: Response
) => Effect<FormData, DecodeError, never> = internal.formData;
/**
* @since 1.0.0
* @category combinators
*/
export const arrayBuffer: (
value: Response
) => Effect<ArrayBuffer, DecodeError, never> = internal.arrayBuffer;
/**
* @since 1.0.0
* @category filtering
*/
export const filterStatusOk: (
response: Response
) => Effect<Response, StatusError, never> = internal.filterStatusOk;
/**
* @since 1.0.0
* @category filtering
*/
export const filterStatusOkT: (
response: Response
) => Effect<ResponseT<StatusOK>, StatusErrorT<StatusNotOK>, never> =
internal.filterStatusOkT;
/**
* @since 1.0.0
* @category filtering
*/
export const filterStatus = dual<
(
fn: Predicate<number>
) => (response: Response) => Effect<Response, StatusError, never>,
(
response: Response,
fn: Predicate<number>
) => Effect<Response, StatusError, never>
>(2, (r, f) => internal.filterStatus(r, f));