@effect/platform 0.11.0 → 0.11.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 (113) hide show
  1. package/Http/Body.d.ts +129 -0
  2. package/Http/Body.d.ts.map +1 -0
  3. package/Http/Body.js +70 -0
  4. package/Http/Body.js.map +1 -0
  5. package/Http/Client.d.ts +213 -0
  6. package/Http/Client.d.ts.map +1 -0
  7. package/Http/Client.js +124 -0
  8. package/Http/Client.js.map +1 -0
  9. package/Http/ClientError.d.ts +70 -0
  10. package/Http/ClientError.d.ts.map +1 -0
  11. package/Http/ClientError.js +28 -0
  12. package/Http/ClientError.js.map +1 -0
  13. package/Http/ClientRequest.d.ts +282 -0
  14. package/Http/ClientRequest.d.ts.map +1 -0
  15. package/Http/ClientRequest.js +202 -0
  16. package/Http/ClientRequest.js.map +1 -0
  17. package/Http/ClientResponse.d.ts +36 -0
  18. package/Http/ClientResponse.d.ts.map +1 -0
  19. package/Http/ClientResponse.js +29 -0
  20. package/Http/ClientResponse.js.map +1 -0
  21. package/Http/FormData.d.ts +56 -0
  22. package/Http/FormData.d.ts.map +1 -0
  23. package/Http/FormData.js +13 -0
  24. package/Http/FormData.js.map +1 -0
  25. package/Http/Headers.d.ts +38 -0
  26. package/Http/Headers.d.ts.map +1 -0
  27. package/Http/Headers.js +54 -0
  28. package/Http/Headers.js.map +1 -0
  29. package/Http/IncomingMessage.d.ts +37 -0
  30. package/Http/IncomingMessage.d.ts.map +1 -0
  31. package/Http/IncomingMessage.js +30 -0
  32. package/Http/IncomingMessage.js.map +1 -0
  33. package/Http/Method.d.ts +10 -0
  34. package/Http/Method.d.ts.map +1 -0
  35. package/Http/Method.js +12 -0
  36. package/Http/Method.js.map +1 -0
  37. package/Http/UrlParams.d.ts +56 -0
  38. package/Http/UrlParams.d.ts.map +1 -0
  39. package/Http/UrlParams.js +74 -0
  40. package/Http/UrlParams.js.map +1 -0
  41. package/HttpClient.d.ts +32 -0
  42. package/HttpClient.d.ts.map +1 -0
  43. package/HttpClient.js +23 -0
  44. package/HttpClient.js.map +1 -0
  45. package/internal/http/body.d.ts +2 -0
  46. package/internal/http/body.d.ts.map +1 -0
  47. package/internal/http/body.js +101 -0
  48. package/internal/http/body.js.map +1 -0
  49. package/internal/http/client.d.ts +3 -0
  50. package/internal/http/client.d.ts.map +1 -0
  51. package/internal/http/client.js +147 -0
  52. package/internal/http/client.js.map +1 -0
  53. package/internal/http/clientError.d.ts +2 -0
  54. package/internal/http/clientError.d.ts.map +1 -0
  55. package/internal/http/clientError.js +24 -0
  56. package/internal/http/clientError.js.map +1 -0
  57. package/internal/http/clientRequest.d.ts +2 -0
  58. package/internal/http/clientRequest.d.ts.map +1 -0
  59. package/internal/http/clientRequest.js +180 -0
  60. package/internal/http/clientRequest.js.map +1 -0
  61. package/internal/http/clientResponse.d.ts +2 -0
  62. package/internal/http/clientResponse.d.ts.map +1 -0
  63. package/internal/http/clientResponse.js +101 -0
  64. package/internal/http/clientResponse.js.map +1 -0
  65. package/mjs/Http/Body.mjs +52 -0
  66. package/mjs/Http/Body.mjs.map +1 -0
  67. package/mjs/Http/Client.mjs +97 -0
  68. package/mjs/Http/Client.mjs.map +1 -0
  69. package/mjs/Http/ClientError.mjs +17 -0
  70. package/mjs/Http/ClientError.mjs.map +1 -0
  71. package/mjs/Http/ClientRequest.mjs +162 -0
  72. package/mjs/Http/ClientRequest.mjs.map +1 -0
  73. package/mjs/Http/ClientResponse.mjs +18 -0
  74. package/mjs/Http/ClientResponse.mjs.map +1 -0
  75. package/mjs/Http/FormData.mjs +6 -0
  76. package/mjs/Http/FormData.mjs.map +1 -0
  77. package/mjs/Http/Headers.mjs +40 -0
  78. package/mjs/Http/Headers.mjs.map +1 -0
  79. package/mjs/Http/IncomingMessage.mjs +19 -0
  80. package/mjs/Http/IncomingMessage.mjs.map +1 -0
  81. package/mjs/Http/Method.mjs +5 -0
  82. package/mjs/Http/Method.mjs.map +1 -0
  83. package/mjs/Http/UrlParams.mjs +57 -0
  84. package/mjs/Http/UrlParams.mjs.map +1 -0
  85. package/mjs/HttpClient.mjs +18 -0
  86. package/mjs/HttpClient.mjs.map +1 -0
  87. package/mjs/internal/http/body.mjs +83 -0
  88. package/mjs/internal/http/body.mjs.map +1 -0
  89. package/mjs/internal/http/client.mjs +120 -0
  90. package/mjs/internal/http/client.mjs.map +1 -0
  91. package/mjs/internal/http/clientError.mjs +13 -0
  92. package/mjs/internal/http/clientError.mjs.map +1 -0
  93. package/mjs/internal/http/clientRequest.mjs +138 -0
  94. package/mjs/internal/http/clientRequest.mjs.map +1 -0
  95. package/mjs/internal/http/clientResponse.mjs +91 -0
  96. package/mjs/internal/http/clientResponse.mjs.map +1 -0
  97. package/package.json +2 -1
  98. package/src/Http/Body.ts +148 -0
  99. package/src/Http/Client.ts +280 -0
  100. package/src/Http/ClientError.ts +80 -0
  101. package/src/Http/ClientRequest.ts +320 -0
  102. package/src/Http/ClientResponse.ts +42 -0
  103. package/src/Http/FormData.ts +61 -0
  104. package/src/Http/Headers.ts +69 -0
  105. package/src/Http/IncomingMessage.ts +45 -0
  106. package/src/Http/Method.ts +17 -0
  107. package/src/Http/UrlParams.ts +106 -0
  108. package/src/HttpClient.ts +32 -0
  109. package/src/internal/http/body.ts +113 -0
  110. package/src/internal/http/client.ts +437 -0
  111. package/src/internal/http/clientError.ts +20 -0
  112. package/src/internal/http/clientRequest.ts +371 -0
  113. package/src/internal/http/clientResponse.ts +114 -0
@@ -0,0 +1,120 @@
1
+ import * as Chunk from "@effect/data/Chunk";
2
+ import * as Context from "@effect/data/Context";
3
+ import { dual } from "@effect/data/Function";
4
+ import * as Effect from "@effect/io/Effect";
5
+ import * as Layer from "@effect/io/Layer";
6
+ import * as Method from "@effect/platform/Http/Method";
7
+ import * as internalBody from "@effect/platform/internal/http/body";
8
+ import * as internalError from "@effect/platform/internal/http/clientError";
9
+ import * as internalRequest from "@effect/platform/internal/http/clientRequest";
10
+ import * as internalResponse from "@effect/platform/internal/http/clientResponse";
11
+ import * as Schema from "@effect/schema/Schema";
12
+ import * as Stream from "@effect/stream/Stream";
13
+ /** @internal */
14
+ export const tag = /*#__PURE__*/Context.Tag("@effect/platform/Http/Client");
15
+ const baseUrl = () => {
16
+ if ("location" in globalThis) {
17
+ return location.origin + location.pathname;
18
+ }
19
+ return undefined;
20
+ };
21
+ /** @internal */
22
+ export const fetch = (options = {}) => request => Effect.flatMap(Effect.try({
23
+ try: () => new URL(request.url, baseUrl()),
24
+ catch: _ => internalError.requestError({
25
+ request,
26
+ reason: "Encode",
27
+ error: _
28
+ })
29
+ }), url => Effect.suspend(() => {
30
+ Chunk.forEach(request.urlParams, ([key, value]) => {
31
+ if (value === undefined) return;
32
+ url.searchParams.append(key, value);
33
+ });
34
+ const headers = new Headers([...request.headers]);
35
+ const send = body => Effect.map(Effect.tryPromise({
36
+ try: signal => globalThis.fetch(url, {
37
+ ...options,
38
+ method: request.method,
39
+ headers,
40
+ body,
41
+ signal
42
+ }),
43
+ catch: _ => internalError.requestError({
44
+ request,
45
+ reason: "Transport",
46
+ error: _
47
+ })
48
+ }), _ => internalResponse.fromWeb(request, _));
49
+ if (Method.hasBody(request.method)) {
50
+ return request.body._tag === "BytesEffect" ? Effect.flatMap(Effect.mapError(request.body.body, error => internalError.requestError({
51
+ reason: "Encode",
52
+ request,
53
+ error
54
+ })), body => send(body)) : send(convertBody(request.body));
55
+ }
56
+ return send(undefined);
57
+ }));
58
+ const convertBody = body => {
59
+ switch (body._tag) {
60
+ case "Empty":
61
+ return undefined;
62
+ case "Raw":
63
+ return body.body;
64
+ case "Bytes":
65
+ return body.body;
66
+ case "FormData":
67
+ return body.formData;
68
+ case "Stream":
69
+ return Stream.toReadableStream(body.stream);
70
+ }
71
+ };
72
+ export const fetchOk = (options = {}) => filterStatusOk(fetch(options));
73
+ /** @internal */
74
+ export const fetchLayer = /*#__PURE__*/Layer.succeed(tag, /*#__PURE__*/fetch());
75
+ /** @internal */
76
+ export const catchTag = /*#__PURE__*/dual(3, (self, tag, f) => request => Effect.catchTag(self(request), tag, f));
77
+ /** @internal */
78
+ export const catchTags = /*#__PURE__*/dual(2, (self, cases) => request => Effect.catchTags(self(request), cases));
79
+ /** @internal */
80
+ export const catchAll = /*#__PURE__*/dual(2, (self, f) => request => Effect.catchAll(self(request), f));
81
+ /** @internal */
82
+ export const filterOrElse = /*#__PURE__*/dual(3, (self, f, orElse) => request => Effect.filterOrElse(self(request), f, orElse));
83
+ /** @internal */
84
+ export const filterOrFail = /*#__PURE__*/dual(3, (self, f, orFailWith) => request => Effect.filterOrFail(self(request), f, orFailWith));
85
+ /** @internal */
86
+ export const filterStatus = /*#__PURE__*/dual(2, (self, f) => request => Effect.filterOrFail(self(request), response => f(response.status), response => internalError.responseError({
87
+ request,
88
+ response,
89
+ reason: "StatusCode",
90
+ error: "non 2xx status code"
91
+ })));
92
+ /** @internal */
93
+ export const filterStatusOk = /*#__PURE__*/filterStatus(status => status >= 200 && status < 300);
94
+ /** @internal */
95
+ export const map = /*#__PURE__*/dual(2, (self, f) => request => Effect.map(self(request), f));
96
+ /** @internal */
97
+ export const mapEffect = /*#__PURE__*/dual(2, (self, f) => request => Effect.flatMap(self(request), f));
98
+ /** @internal */
99
+ export const mapRequest = /*#__PURE__*/dual(2, (self, f) => request => self(f(request)));
100
+ /** @internal */
101
+ export const mapRequestEffect = /*#__PURE__*/dual(2, (self, f) => request => Effect.flatMap(f(request), self));
102
+ /** @internal */
103
+ export const retry = /*#__PURE__*/dual(2, (self, policy) => request => Effect.retry(self(request), policy));
104
+ /** @internal */
105
+ export const schemaFunction = /*#__PURE__*/dual(2, (self, schema) => {
106
+ const encode = Schema.encode(schema);
107
+ return request => a => Effect.flatMap(Effect.tryMap(encode(a), {
108
+ try: body => new TextEncoder().encode(JSON.stringify(body)),
109
+ catch: error => internalError.requestError({
110
+ request,
111
+ reason: "Encode",
112
+ error
113
+ })
114
+ }), body => self(internalRequest.setBody(request, internalBody.bytes(body, "application/json"))));
115
+ });
116
+ /** @internal */
117
+ export const tap = /*#__PURE__*/dual(2, (self, f) => request => Effect.tap(self(request), f));
118
+ /** @internal */
119
+ export const tapRequest = /*#__PURE__*/dual(2, (self, f) => request => Effect.zipRight(f(request), self(request)));
120
+ //# sourceMappingURL=client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.mjs","names":["Chunk","Context","dual","Effect","Layer","Method","internalBody","internalError","internalRequest","internalResponse","Schema","Stream","tag","Tag","baseUrl","globalThis","location","origin","pathname","undefined","fetch","options","request","flatMap","try","URL","url","catch","_","requestError","reason","error","suspend","forEach","urlParams","key","value","searchParams","append","headers","Headers","send","body","map","tryPromise","signal","method","fromWeb","hasBody","_tag","mapError","convertBody","formData","toReadableStream","stream","fetchOk","filterStatusOk","fetchLayer","succeed","catchTag","self","f","catchTags","cases","catchAll","filterOrElse","orElse","filterOrFail","orFailWith","filterStatus","response","status","responseError","mapEffect","mapRequest","mapRequestEffect","retry","policy","schemaFunction","schema","encode","a","tryMap","TextEncoder","JSON","stringify","setBody","bytes","tap","tapRequest","zipRight"],"sources":["../../../src/internal/http/client.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import * as Data from "@effect/data/Data";
2
+ /** @internal */
3
+ export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/Error");
4
+ const make = tag => props => Data.struct({
5
+ [TypeId]: TypeId,
6
+ _tag: tag,
7
+ ...props
8
+ });
9
+ /** @internal */
10
+ export const requestError = /*#__PURE__*/make("RequestError");
11
+ /** @internal */
12
+ export const responseError = /*#__PURE__*/make("ResponseError");
13
+ //# sourceMappingURL=clientError.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientError.mjs","names":["Data","TypeId","Symbol","for","make","tag","props","struct","_tag","requestError","responseError"],"sources":["../../../src/internal/http/clientError.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,IAAI,MAAM,mBAAmB;AAGzC;AACA,OAAO,MAAMC,MAAM,gBAAiBC,MAAM,CAACC,GAAG,CAC5C,6BAA6B,CACd;AAEjB,MAAMC,IAAI,GAAqCC,GAAc,IAAMC,KAA8C,IAC/GN,IAAI,CAACO,MAAM,CAAC;EACV,CAACN,MAAM,GAAGA,MAAM;EAChBO,IAAI,EAAEH,GAAG;EACT,GAAGC;CACC,CAAC;AAET;AACA,OAAO,MAAMG,YAAY,gBAAGL,IAAI,CAAqB,cAAc,CAAC;AAEpE;AACA,OAAO,MAAMM,aAAa,gBAAGN,IAAI,CAAsB,eAAe,CAAC"}
@@ -0,0 +1,138 @@
1
+ var _a;
2
+ import { dual } from "@effect/data/Function";
3
+ import { pipeArguments } from "@effect/data/Pipeable";
4
+ import * as Headers from "@effect/platform/Http/Headers";
5
+ import * as UrlParams from "@effect/platform/Http/UrlParams";
6
+ import * as internalBody from "@effect/platform/internal/http/body";
7
+ /** @internal */
8
+ export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/ClientRequest");
9
+ class ClientRequestImpl {
10
+ constructor(method, url, urlParams, headers, body) {
11
+ this.method = method;
12
+ this.url = url;
13
+ this.urlParams = urlParams;
14
+ this.headers = headers;
15
+ this.body = body;
16
+ this[_a] = TypeId;
17
+ }
18
+ pipe() {
19
+ return pipeArguments(this, arguments);
20
+ }
21
+ }
22
+ _a = TypeId;
23
+ /** @internal */
24
+ export const isClientRequest = u => typeof u === "object" && u !== null && TypeId in u;
25
+ /** @internal */
26
+ export const empty = /*#__PURE__*/new ClientRequestImpl("GET", "", UrlParams.empty, Headers.empty, internalBody.empty);
27
+ /** @internal */
28
+ export const make = method => (url, options) => modify(empty, {
29
+ method,
30
+ url,
31
+ ...(options ?? {})
32
+ });
33
+ /** @internal */
34
+ export const get = /*#__PURE__*/make("GET");
35
+ /** @internal */
36
+ export const post = /*#__PURE__*/make("POST");
37
+ /** @internal */
38
+ export const put = /*#__PURE__*/make("PUT");
39
+ /** @internal */
40
+ export const patch = /*#__PURE__*/make("PATCH");
41
+ /** @internal */
42
+ export const del = /*#__PURE__*/make("DELETE");
43
+ /** @internal */
44
+ export const head = /*#__PURE__*/make("HEAD");
45
+ /** @internal */
46
+ export const options = /*#__PURE__*/make("OPTIONS");
47
+ /** @internal */
48
+ export const modify = /*#__PURE__*/dual(2, (self, options) => {
49
+ let result = self;
50
+ if (options.method) {
51
+ result = setMethod(result, options.method);
52
+ }
53
+ if (options.url) {
54
+ result = setUrl(result, options.url);
55
+ }
56
+ if (options.headers) {
57
+ result = setHeaders(result, options.headers);
58
+ }
59
+ if (options.urlParams) {
60
+ result = setUrlParams(result, options.urlParams);
61
+ }
62
+ if (options.body) {
63
+ result = setBody(result, options.body);
64
+ }
65
+ if (options.accept) {
66
+ result = accept(result, options.accept);
67
+ }
68
+ if (options.acceptJson) {
69
+ result = acceptJson(result);
70
+ }
71
+ return result;
72
+ });
73
+ /** @internal */
74
+ export const setHeader = /*#__PURE__*/dual(3, (self, key, value) => new ClientRequestImpl(self.method, self.url, self.urlParams, Headers.set(self.headers, key, value), self.body));
75
+ /** @internal */
76
+ export const setHeaders = /*#__PURE__*/dual(2, (self, input) => new ClientRequestImpl(self.method, self.url, self.urlParams, Headers.setAll(self.headers, input), self.body));
77
+ /** @internal */
78
+ export const basicAuth = /*#__PURE__*/dual(3, (self, username, password) => setHeader(self, "Authorization", `Basic ${btoa(`${username}:${password}`)}`));
79
+ /** @internal */
80
+ export const accept = /*#__PURE__*/dual(2, (self, mediaType) => setHeader(self, "Accept", mediaType));
81
+ /** @internal */
82
+ export const acceptJson = /*#__PURE__*/accept("application/json");
83
+ /** @internal */
84
+ export const setMethod = /*#__PURE__*/dual(2, (self, method) => new ClientRequestImpl(method, self.url, self.urlParams, self.headers, self.body));
85
+ /** @internal */
86
+ export const setUrl = /*#__PURE__*/dual(2, (self, url) => new ClientRequestImpl(self.method, url, self.urlParams, self.headers, self.body));
87
+ /** @internal */
88
+ export const appendUrl = /*#__PURE__*/dual(2, (self, url) => new ClientRequestImpl(self.method, self.url + url, self.urlParams, self.headers, self.body));
89
+ /** @internal */
90
+ export const prependUrl = /*#__PURE__*/dual(2, (self, url) => new ClientRequestImpl(self.method, url + self.url, self.urlParams, self.headers, self.body));
91
+ /** @internal */
92
+ export const updateUrl = /*#__PURE__*/dual(2, (self, f) => new ClientRequestImpl(self.method, f(self.url), self.urlParams, self.headers, self.body));
93
+ /** @internal */
94
+ export const appendUrlParam = /*#__PURE__*/dual(3, (self, key, value) => new ClientRequestImpl(self.method, self.url, UrlParams.append(self.urlParams, key, value), self.headers, self.body));
95
+ /** @internal */
96
+ export const appendUrlParams = /*#__PURE__*/dual(2, (self, input) => new ClientRequestImpl(self.method, self.url, UrlParams.appendAll(self.urlParams, input), self.headers, self.body));
97
+ /** @internal */
98
+ export const setUrlParam = /*#__PURE__*/dual(3, (self, key, value) => new ClientRequestImpl(self.method, self.url, UrlParams.set(self.urlParams, key, value), self.headers, self.body));
99
+ /** @internal */
100
+ export const setUrlParams = /*#__PURE__*/dual(2, (self, input) => new ClientRequestImpl(self.method, self.url, UrlParams.setAll(self.urlParams, input), self.headers, self.body));
101
+ /** @internal */
102
+ export const setBody = /*#__PURE__*/dual(2, (self, body) => {
103
+ let headers = self.headers;
104
+ if (body._tag === "Empty") {
105
+ headers = Headers.remove(Headers.remove(headers, "Content-Type"), "Content-length");
106
+ } else {
107
+ const contentType = body.contentType;
108
+ if (contentType) {
109
+ headers = Headers.set(headers, "content-type", contentType);
110
+ }
111
+ const contentLength = body.contentLength;
112
+ if (contentLength) {
113
+ headers = Headers.set(headers, "content-length", contentLength.toString());
114
+ }
115
+ }
116
+ return new ClientRequestImpl(self.method, self.url, self.urlParams, headers, body);
117
+ });
118
+ /** @internal */
119
+ export const binaryBody = /*#__PURE__*/dual(args => isClientRequest(args[0]), (self, body, contentType = "application/octet-stream") => setBody(self, internalBody.bytes(body, contentType)));
120
+ /** @internal */
121
+ export const textBody = /*#__PURE__*/dual(args => isClientRequest(args[0]), (self, body, contentType = "text/plain") => setBody(self, internalBody.text(body, contentType)));
122
+ /** @internal */
123
+ export const jsonBody = /*#__PURE__*/dual(2, (self, body) => setBody(self, internalBody.json(body)));
124
+ /** @internal */
125
+ export const schemaBody = schema => {
126
+ const encode = internalBody.jsonSchema(schema);
127
+ return dual(2, (self, body) => setBody(self, encode(body)));
128
+ };
129
+ /** @internal */
130
+ export const urlParamsBody = /*#__PURE__*/dual(2, (self, body) => setBody(self, internalBody.text(UrlParams.toString(UrlParams.fromInput(body)), "application/x-www-form-urlencoded")));
131
+ /** @internal */
132
+ export const formDataBody = /*#__PURE__*/dual(2, (self, body) => setBody(self, internalBody.formData(body)));
133
+ /** @internal */
134
+ export const streamBody = /*#__PURE__*/dual(args => isClientRequest(args[0]), (self, body, {
135
+ contentLength,
136
+ contentType = "application/octet-stream"
137
+ } = {}) => setBody(self, internalBody.stream(body, contentType, contentLength)));
138
+ //# sourceMappingURL=clientRequest.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientRequest.mjs","names":["dual","pipeArguments","Headers","UrlParams","internalBody","TypeId","Symbol","for","ClientRequestImpl","constructor","method","url","urlParams","headers","body","_a","pipe","arguments","isClientRequest","u","empty","make","options","modify","get","post","put","patch","del","head","self","result","setMethod","setUrl","setHeaders","setUrlParams","setBody","accept","acceptJson","setHeader","key","value","set","input","setAll","basicAuth","username","password","btoa","mediaType","appendUrl","prependUrl","updateUrl","f","appendUrlParam","append","appendUrlParams","appendAll","setUrlParam","_tag","remove","contentType","contentLength","toString","binaryBody","args","bytes","textBody","text","jsonBody","json","schemaBody","schema","encode","jsonSchema","urlParamsBody","fromInput","formDataBody","formData","streamBody","stream"],"sources":["../../../src/internal/http/clientRequest.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ var _a, _b;
2
+ import * as Effect from "@effect/io/Effect";
3
+ import * as Headers from "@effect/platform/Http/Headers";
4
+ import * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
5
+ import * as internalError from "@effect/platform/internal/http/clientError";
6
+ import * as Stream from "@effect/stream/Stream";
7
+ /** @internal */
8
+ export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/ClientResponse");
9
+ /** @internal */
10
+ export const fromWeb = (request, source) => new ClientResponseImpl(request, source);
11
+ class ClientResponseImpl {
12
+ constructor(request, source) {
13
+ this.request = request;
14
+ this.source = source;
15
+ this[_a] = IncomingMessage.TypeId;
16
+ this[_b] = TypeId;
17
+ }
18
+ get status() {
19
+ return this.source.status;
20
+ }
21
+ get headers() {
22
+ return Headers.fromInput(this.source.headers);
23
+ }
24
+ get stream() {
25
+ return this.source.body ? Stream.fromReadableStream(() => this.source.body, _ => internalError.responseError({
26
+ request: this.request,
27
+ response: this,
28
+ reason: "Decode",
29
+ error: _
30
+ })) : Stream.fail(internalError.responseError({
31
+ request: this.request,
32
+ response: this,
33
+ reason: "EmptyBody",
34
+ error: "can not create stream from empty body"
35
+ }));
36
+ }
37
+ get json() {
38
+ return Effect.tryPromise({
39
+ try: () => this.source.json(),
40
+ catch: _ => internalError.responseError({
41
+ request: this.request,
42
+ response: this,
43
+ reason: "Decode",
44
+ error: _
45
+ })
46
+ });
47
+ }
48
+ get text() {
49
+ return Effect.tryPromise({
50
+ try: () => this.source.text(),
51
+ catch: _ => internalError.responseError({
52
+ request: this.request,
53
+ response: this,
54
+ reason: "Decode",
55
+ error: _
56
+ })
57
+ });
58
+ }
59
+ get formData() {
60
+ return Effect.tryPromise({
61
+ try: () => this.source.formData(),
62
+ catch: _ => internalError.responseError({
63
+ request: this.request,
64
+ response: this,
65
+ reason: "Decode",
66
+ error: _
67
+ })
68
+ });
69
+ }
70
+ get formDataStream() {
71
+ return Stream.fail(internalError.responseError({
72
+ request: this.request,
73
+ response: this,
74
+ reason: "Decode",
75
+ error: "not implemented"
76
+ }));
77
+ }
78
+ get blob() {
79
+ return Effect.tryPromise({
80
+ try: () => this.source.blob(),
81
+ catch: _ => internalError.responseError({
82
+ request: this.request,
83
+ response: this,
84
+ reason: "Decode",
85
+ error: _
86
+ })
87
+ });
88
+ }
89
+ }
90
+ _a = IncomingMessage.TypeId, _b = TypeId;
91
+ //# sourceMappingURL=clientResponse.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientResponse.mjs","names":["Effect","Headers","IncomingMessage","internalError","Stream","TypeId","Symbol","for","fromWeb","request","source","ClientResponseImpl","constructor","_a","_b","status","headers","fromInput","stream","body","fromReadableStream","_","responseError","response","reason","error","fail","json","tryPromise","try","catch","text","formData","formDataStream","blob"],"sources":["../../../src/internal/http/clientResponse.ts"],"sourcesContent":[null],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.11.0",
3
+ "version": "0.11.2",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -30,6 +30,7 @@
30
30
  "peerDependencies": {
31
31
  "@effect/data": "^0.17.1",
32
32
  "@effect/io": "^0.38.0",
33
+ "@effect/schema": "^0.33.0",
33
34
  "@effect/stream": "^0.34.0"
34
35
  }
35
36
  }
@@ -0,0 +1,148 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Effect from "@effect/io/Effect"
5
+ import * as internal from "@effect/platform/internal/http/body"
6
+ import type * as Schema from "@effect/schema/Schema"
7
+ import type * as Stream_ from "@effect/stream/Stream"
8
+
9
+ /**
10
+ * @since 1.0.0
11
+ * @category type ids
12
+ */
13
+ export const TypeId: unique symbol = internal.TypeId
14
+
15
+ /**
16
+ * @since 1.0.0
17
+ * @category type ids
18
+ */
19
+ export type TypeId = typeof TypeId
20
+
21
+ /**
22
+ * @since 1.0.0
23
+ * @category models
24
+ */
25
+ export type Body = Empty | Raw | Bytes | BytesEffect | FormData | Stream
26
+
27
+ /**
28
+ * @since 1.0.0
29
+ */
30
+ export namespace Body {
31
+ /**
32
+ * @since 1.0.0
33
+ * @category models
34
+ */
35
+ export interface Proto {
36
+ readonly [TypeId]: TypeId
37
+ readonly _tag: string
38
+ readonly contentType?: string
39
+ readonly contentLength?: number
40
+ }
41
+ }
42
+
43
+ /**
44
+ * @since 1.0.0
45
+ * @category models
46
+ */
47
+ export interface Empty extends Body.Proto {
48
+ readonly _tag: "Empty"
49
+ }
50
+
51
+ /**
52
+ * @since 1.0.0
53
+ * @category constructors
54
+ */
55
+ export const empty: Empty = internal.empty
56
+
57
+ /**
58
+ * @since 1.0.0
59
+ * @category models
60
+ */
61
+ export interface Raw extends Body.Proto {
62
+ readonly _tag: "Raw"
63
+ readonly body: unknown
64
+ }
65
+
66
+ /**
67
+ * @since 1.0.0
68
+ * @category constructors
69
+ */
70
+ export const raw: (body: unknown) => Raw = internal.raw
71
+
72
+ /**
73
+ * @since 1.0.0
74
+ * @category models
75
+ */
76
+ export interface Bytes extends Body.Proto {
77
+ readonly _tag: "Bytes"
78
+ readonly body: Uint8Array
79
+ }
80
+
81
+ /**
82
+ * @since 1.0.0
83
+ * @category constructors
84
+ */
85
+ export const bytes: (body: Uint8Array) => Bytes = internal.bytes
86
+
87
+ /**
88
+ * @since 1.0.0
89
+ * @category constructors
90
+ */
91
+ export const text: (body: string, contentType?: string) => Bytes = internal.text
92
+
93
+ /**
94
+ * @since 1.0.0
95
+ * @category models
96
+ */
97
+ export interface BytesEffect extends Body.Proto {
98
+ readonly _tag: "BytesEffect"
99
+ readonly body: Effect.Effect<never, unknown, Uint8Array>
100
+ }
101
+
102
+ /**
103
+ * @since 1.0.0
104
+ * @category constructors
105
+ */
106
+ export const bytesEffect: (body: Effect.Effect<never, unknown, Uint8Array>) => BytesEffect = internal.bytesEffect
107
+
108
+ /**
109
+ * @since 1.0.0
110
+ * @category constructors
111
+ */
112
+ export const json: (body: unknown) => BytesEffect = internal.json
113
+
114
+ /**
115
+ * @since 1.0.0
116
+ * @category constructors
117
+ */
118
+ export const jsonSchema: <I, A>(schema: Schema.Schema<I, A>) => (body: A) => BytesEffect = internal.jsonSchema
119
+
120
+ /**
121
+ * @since 1.0.0
122
+ * @category models
123
+ */
124
+ export interface FormData extends Body.Proto {
125
+ readonly _tag: "FormData"
126
+ readonly formData: globalThis.FormData
127
+ }
128
+
129
+ /**
130
+ * @since 1.0.0
131
+ * @category constructors
132
+ */
133
+ export const formData: (body: globalThis.FormData) => FormData = internal.formData
134
+
135
+ /**
136
+ * @since 1.0.0
137
+ * @category models
138
+ */
139
+ export interface Stream extends Body.Proto {
140
+ readonly _tag: "Stream"
141
+ readonly stream: Stream_.Stream<never, unknown, Uint8Array>
142
+ }
143
+
144
+ /**
145
+ * @since 1.0.0
146
+ * @category constructors
147
+ */
148
+ export const stream: (body: Stream_.Stream<never, unknown, Uint8Array>) => Stream = internal.stream