@effect/platform 0.64.0 → 0.65.0

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 (103) hide show
  1. package/FetchHttpClient/package.json +6 -0
  2. package/README.md +175 -611
  3. package/dist/cjs/Command.js +3 -3
  4. package/dist/cjs/Command.js.map +1 -1
  5. package/dist/cjs/FetchHttpClient.js +32 -0
  6. package/dist/cjs/FetchHttpClient.js.map +1 -0
  7. package/dist/cjs/HttpApiClient.js +1 -1
  8. package/dist/cjs/HttpApiClient.js.map +1 -1
  9. package/dist/cjs/HttpClient.js +5 -36
  10. package/dist/cjs/HttpClient.js.map +1 -1
  11. package/dist/cjs/HttpClientRequest.js +11 -11
  12. package/dist/cjs/HttpClientRequest.js.map +1 -1
  13. package/dist/cjs/HttpClientResponse.js +2 -61
  14. package/dist/cjs/HttpClientResponse.js.map +1 -1
  15. package/dist/cjs/HttpIncomingMessage.js +2 -29
  16. package/dist/cjs/HttpIncomingMessage.js.map +1 -1
  17. package/dist/cjs/Runtime.js +1 -1
  18. package/dist/cjs/Runtime.js.map +1 -1
  19. package/dist/cjs/Socket.js +42 -53
  20. package/dist/cjs/Socket.js.map +1 -1
  21. package/dist/cjs/index.js +3 -1
  22. package/dist/cjs/internal/command.js +2 -2
  23. package/dist/cjs/internal/command.js.map +1 -1
  24. package/dist/cjs/internal/fetchHttpClient.js +52 -0
  25. package/dist/cjs/internal/fetchHttpClient.js.map +1 -0
  26. package/dist/cjs/internal/httpClient.js +82 -71
  27. package/dist/cjs/internal/httpClient.js.map +1 -1
  28. package/dist/cjs/internal/httpClientRequest.js +13 -13
  29. package/dist/cjs/internal/httpClientRequest.js.map +1 -1
  30. package/dist/cjs/internal/httpClientResponse.js +1 -33
  31. package/dist/cjs/internal/httpClientResponse.js.map +1 -1
  32. package/dist/cjs/internal/worker.js +21 -29
  33. package/dist/cjs/internal/worker.js.map +1 -1
  34. package/dist/dts/Command.d.ts +4 -4
  35. package/dist/dts/Command.d.ts.map +1 -1
  36. package/dist/dts/FetchHttpClient.d.ts +27 -0
  37. package/dist/dts/FetchHttpClient.d.ts.map +1 -0
  38. package/dist/dts/HttpApiClient.d.ts +2 -2
  39. package/dist/dts/HttpClient.d.ts +53 -61
  40. package/dist/dts/HttpClient.d.ts.map +1 -1
  41. package/dist/dts/HttpClientRequest.d.ts +11 -11
  42. package/dist/dts/HttpClientRequest.d.ts.map +1 -1
  43. package/dist/dts/HttpClientResponse.d.ts +4 -90
  44. package/dist/dts/HttpClientResponse.d.ts.map +1 -1
  45. package/dist/dts/HttpIncomingMessage.d.ts +0 -16
  46. package/dist/dts/HttpIncomingMessage.d.ts.map +1 -1
  47. package/dist/dts/HttpServer.d.ts +1 -1
  48. package/dist/dts/Socket.d.ts +3 -3
  49. package/dist/dts/Socket.d.ts.map +1 -1
  50. package/dist/dts/index.d.ts +4 -0
  51. package/dist/dts/index.d.ts.map +1 -1
  52. package/dist/dts/internal/fetchHttpClient.d.ts +2 -0
  53. package/dist/dts/internal/fetchHttpClient.d.ts.map +1 -0
  54. package/dist/esm/Command.js +3 -3
  55. package/dist/esm/Command.js.map +1 -1
  56. package/dist/esm/FetchHttpClient.js +21 -0
  57. package/dist/esm/FetchHttpClient.js.map +1 -0
  58. package/dist/esm/HttpApiClient.js +1 -1
  59. package/dist/esm/HttpApiClient.js.map +1 -1
  60. package/dist/esm/HttpClient.js +4 -35
  61. package/dist/esm/HttpClient.js.map +1 -1
  62. package/dist/esm/HttpClientRequest.js +10 -10
  63. package/dist/esm/HttpClientRequest.js.map +1 -1
  64. package/dist/esm/HttpClientResponse.js +1 -63
  65. package/dist/esm/HttpClientResponse.js.map +1 -1
  66. package/dist/esm/HttpIncomingMessage.js +0 -24
  67. package/dist/esm/HttpIncomingMessage.js.map +1 -1
  68. package/dist/esm/Runtime.js +1 -1
  69. package/dist/esm/Runtime.js.map +1 -1
  70. package/dist/esm/Socket.js +42 -53
  71. package/dist/esm/Socket.js.map +1 -1
  72. package/dist/esm/index.js +4 -0
  73. package/dist/esm/index.js.map +1 -1
  74. package/dist/esm/internal/command.js +2 -2
  75. package/dist/esm/internal/command.js.map +1 -1
  76. package/dist/esm/internal/fetchHttpClient.js +44 -0
  77. package/dist/esm/internal/fetchHttpClient.js.map +1 -0
  78. package/dist/esm/internal/httpClient.js +79 -69
  79. package/dist/esm/internal/httpClient.js.map +1 -1
  80. package/dist/esm/internal/httpClientRequest.js +11 -11
  81. package/dist/esm/internal/httpClientRequest.js.map +1 -1
  82. package/dist/esm/internal/httpClientResponse.js +0 -24
  83. package/dist/esm/internal/httpClientResponse.js.map +1 -1
  84. package/dist/esm/internal/worker.js +21 -29
  85. package/dist/esm/internal/worker.js.map +1 -1
  86. package/package.json +11 -3
  87. package/src/Command.ts +7 -8
  88. package/src/FetchHttpClient.ts +25 -0
  89. package/src/HttpApiClient.ts +5 -5
  90. package/src/HttpClient.ts +79 -85
  91. package/src/HttpClientRequest.ts +21 -21
  92. package/src/HttpClientResponse.ts +4 -162
  93. package/src/HttpIncomingMessage.ts +0 -43
  94. package/src/HttpServer.ts +1 -1
  95. package/src/Runtime.ts +1 -1
  96. package/src/Socket.ts +42 -58
  97. package/src/index.ts +5 -0
  98. package/src/internal/command.ts +4 -3
  99. package/src/internal/fetchHttpClient.ts +53 -0
  100. package/src/internal/httpClient.ts +149 -125
  101. package/src/internal/httpClientRequest.ts +12 -12
  102. package/src/internal/httpClientResponse.ts +6 -96
  103. package/src/internal/worker.ts +40 -55
@@ -1,8 +1,6 @@
1
1
  import * as Schema from "@effect/schema/Schema";
2
2
  import * as Serializable from "@effect/schema/Serializable";
3
- import * as Cause from "effect/Cause";
4
3
  import * as Channel from "effect/Channel";
5
- import * as Chunk from "effect/Chunk";
6
4
  import * as Context from "effect/Context";
7
5
  import * as Deferred from "effect/Deferred";
8
6
  import * as Effect from "effect/Effect";
@@ -11,9 +9,9 @@ import * as FiberRef from "effect/FiberRef";
11
9
  import * as FiberSet from "effect/FiberSet";
12
10
  import { identity, pipe } from "effect/Function";
13
11
  import * as Layer from "effect/Layer";
12
+ import * as Mailbox from "effect/Mailbox";
14
13
  import * as Option from "effect/Option";
15
14
  import * as Pool from "effect/Pool";
16
- import * as Queue from "effect/Queue";
17
15
  import * as Schedule from "effect/Schedule";
18
16
  import * as Scope from "effect/Scope";
19
17
  import * as Stream from "effect/Stream";
@@ -53,52 +51,52 @@ export const makeManager = /*#__PURE__*/Effect.gen(function* () {
53
51
  return Deferred.complete(readyLatch, Effect.void);
54
52
  }
55
53
  return handleMessage(message[1]);
56
- }).pipe(Effect.onError(cause => Effect.forEach(requestMap.values(), queue => Deferred.DeferredTypeId in queue ? Deferred.failCause(queue, cause) : Queue.offer(queue, Exit.failCause(cause)))), Effect.retry(Schedule.spaced(1000)), Effect.annotateLogs({
54
+ }).pipe(Effect.onError(cause => Effect.forEach(requestMap.values(), mailbox => Deferred.DeferredTypeId in mailbox ? Deferred.failCause(mailbox, cause) : mailbox.failCause(cause))), Effect.retry(Schedule.spaced(1000)), Effect.annotateLogs({
57
55
  package: "@effect/platform",
58
56
  module: "Worker"
59
57
  }), Effect.interruptible, Effect.forkScoped);
60
- yield* Effect.addFinalizer(() => Effect.zipRight(Effect.forEach(requestMap.values(), queue => Deferred.DeferredTypeId in queue ? Deferred.interrupt(queue) : Queue.offer(queue, Exit.failCause(Cause.empty)), {
58
+ yield* Effect.addFinalizer(() => Effect.zipRight(Effect.forEach(requestMap.values(), mailbox => Deferred.DeferredTypeId in mailbox ? Deferred.interrupt(mailbox) : mailbox.end, {
61
59
  discard: true
62
60
  }), Effect.sync(() => requestMap.clear())));
63
61
  const handleMessage = response => Effect.suspend(() => {
64
- const queue = requestMap.get(response[0]);
65
- if (!queue) return Effect.void;
62
+ const mailbox = requestMap.get(response[0]);
63
+ if (!mailbox) return Effect.void;
66
64
  switch (response[1]) {
67
65
  // data
68
66
  case 0:
69
67
  {
70
- return Deferred.DeferredTypeId in queue ? Deferred.succeed(queue, response[2][0]) : Queue.offer(queue, Exit.succeed(response[2]));
68
+ return Deferred.DeferredTypeId in mailbox ? Deferred.succeed(mailbox, response[2][0]) : mailbox.offerAll(response[2]);
71
69
  }
72
70
  // end
73
71
  case 1:
74
72
  {
75
73
  if (response.length === 2) {
76
- return Deferred.DeferredTypeId in queue ? Deferred.interrupt(queue) : Queue.offer(queue, Exit.failCause(Cause.empty));
74
+ return Deferred.DeferredTypeId in mailbox ? Deferred.interrupt(mailbox) : mailbox.end;
77
75
  }
78
- return Deferred.DeferredTypeId in queue ? Deferred.succeed(queue, response[2][0]) : Effect.zipRight(Queue.offer(queue, Exit.succeed(response[2])), Queue.offer(queue, Exit.failCause(Cause.empty)));
76
+ return Deferred.DeferredTypeId in mailbox ? Deferred.succeed(mailbox, response[2][0]) : Effect.zipRight(mailbox.offerAll(response[2]), mailbox.end);
79
77
  }
80
78
  // error / defect
81
79
  case 2:
82
80
  case 3:
83
81
  {
84
82
  if (response[1] === 2) {
85
- return Deferred.DeferredTypeId in queue ? Deferred.fail(queue, response[2]) : Queue.offer(queue, Exit.fail(response[2]));
83
+ return Deferred.DeferredTypeId in mailbox ? Deferred.fail(mailbox, response[2]) : mailbox.fail(response[2]);
86
84
  }
87
85
  const cause = WorkerError.decodeCause(response[2]);
88
- return Deferred.DeferredTypeId in queue ? Deferred.failCause(queue, cause) : Queue.offer(queue, Exit.failCause(cause));
86
+ return Deferred.DeferredTypeId in mailbox ? Deferred.failCause(mailbox, cause) : mailbox.failCause(cause);
89
87
  }
90
88
  }
91
89
  });
92
- const executeAcquire = (request, makeQueue) => Effect.withFiberRuntime(fiber => {
90
+ const executeAcquire = (request, makeMailbox) => Effect.withFiberRuntime(fiber => {
93
91
  const context = fiber.getFiberRef(FiberRef.currentContext);
94
92
  const span = Context.getOption(context, Tracer.ParentSpan).pipe(Option.filter(span => span._tag === "Span"));
95
93
  const id = requestIdCounter++;
96
- return makeQueue.pipe(Effect.tap(queue => {
97
- requestMap.set(id, queue);
98
- return wrappedEncode(request).pipe(Effect.tap(payload => backing.send([id, 0, payload, span._tag === "Some" ? [span.value.traceId, span.value.spanId, span.value.sampled] : undefined], collector.unsafeRead())), Effect.catchAllCause(cause => Deferred.DeferredTypeId in queue ? Deferred.failCause(queue, cause) : Queue.offer(queue, Exit.failCause(cause))));
99
- }), Effect.map(queue => ({
94
+ return makeMailbox.pipe(Effect.tap(mailbox => {
95
+ requestMap.set(id, mailbox);
96
+ return wrappedEncode(request).pipe(Effect.tap(payload => backing.send([id, 0, payload, span._tag === "Some" ? [span.value.traceId, span.value.spanId, span.value.sampled] : undefined], collector.unsafeRead())), Effect.catchAllCause(cause => Mailbox.isMailbox(mailbox) ? mailbox.failCause(cause) : Deferred.failCause(mailbox, cause)));
97
+ }), Effect.map(mailbox => ({
100
98
  id,
101
- queue
99
+ mailbox
102
100
  })));
103
101
  });
104
102
  const executeRelease = ({
@@ -107,18 +105,12 @@ export const makeManager = /*#__PURE__*/Effect.gen(function* () {
107
105
  const release = Effect.sync(() => requestMap.delete(id));
108
106
  return Exit.isFailure(exit) ? Effect.zipRight(Effect.orDie(backing.send([id, 1])), release) : release;
109
107
  };
110
- const execute = request => Stream.fromChannel(Channel.acquireUseRelease(executeAcquire(request, Queue.unbounded()), ({
111
- queue
112
- }) => {
113
- const loop = Channel.flatMap(Queue.take(queue), Exit.match({
114
- onFailure: cause => Cause.isEmpty(cause) ? Channel.void : Channel.failCause(cause),
115
- onSuccess: value => Channel.flatMap(Channel.write(Chunk.unsafeFromArray(value)), () => loop)
116
- }));
117
- return loop;
118
- }, executeRelease));
108
+ const execute = request => Stream.fromChannel(Channel.acquireUseRelease(executeAcquire(request, Mailbox.make()), ({
109
+ mailbox
110
+ }) => Mailbox.toChannel(mailbox), executeRelease));
119
111
  const executeEffect = request => Effect.acquireUseRelease(executeAcquire(request, Deferred.make()), ({
120
- queue
121
- }) => Deferred.await(queue), executeRelease);
112
+ mailbox
113
+ }) => Deferred.await(mailbox), executeRelease);
122
114
  yield* Deferred.await(readyLatch);
123
115
  if (initialMessage) {
124
116
  yield* Effect.sync(initialMessage).pipe(Effect.flatMap(executeEffect), Effect.mapError(cause => new WorkerError({
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","names":["Schema","Serializable","Cause","Channel","Chunk","Context","Deferred","Effect","Exit","FiberRef","FiberSet","identity","pipe","Layer","Option","Pool","Queue","Schedule","Scope","Stream","Tracer","Transferable","WorkerError","PlatformWorkerTypeId","Symbol","for","PlatformWorker","GenericTag","WorkerManagerTypeId","WorkerManager","Spawner","makeManager","gen","platform","idCounter","of","spawn","encode","initialMessage","_","id","requestIdCounter","requestMap","Map","collector","unsafeMakeCollector","wrappedEncode","message","zipRight","clear","provideService","Collector","succeed","readyLatch","make","backing","run","complete","void","handleMessage","onError","cause","forEach","values","queue","DeferredTypeId","failCause","offer","retry","spaced","annotateLogs","package","module","interruptible","forkScoped","addFinalizer","interrupt","empty","discard","sync","response","suspend","get","length","fail","decodeCause","executeAcquire","request","makeQueue","withFiberRuntime","fiber","context","getFiberRef","currentContext","span","getOption","ParentSpan","filter","_tag","tap","set","payload","send","value","traceId","spanId","sampled","undefined","unsafeRead","catchAllCause","map","executeRelease","exit","release","delete","isFailure","orDie","execute","fromChannel","acquireUseRelease","unbounded","loop","flatMap","take","match","onFailure","isEmpty","onSuccess","write","unsafeFromArray","executeEffect","await","mapError","reason","layerManager","effect","makePool","options","manager","workers","Set","acquire","worker","acquireRelease","add","onCreate","makeWithTTL","min","minSize","max","maxSize","concurrency","targetUtilization","timeToLive","size","pool","broadcast","unwrapScoped","scoped","makePoolLayer","tag","makeSerialized","serialize","parseSuccess","decode","successSchema","parseFailure","failureSchema","catchAll","error","mapEffect","matchEffect","makePoolSerialized","makePoolSerializedLayer","layerSpawner","spawner","makePlatform","currentPort","buffer","handler","uninterruptibleMask","restore","bindTo","bind","scope","setup","port","extend","fiberSet","runtime","runFork","listen","emit","data","deferred","transfers","postMessage","join","ensuring","close","try","push","catch"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"worker.js","names":["Schema","Serializable","Channel","Context","Deferred","Effect","Exit","FiberRef","FiberSet","identity","pipe","Layer","Mailbox","Option","Pool","Schedule","Scope","Stream","Tracer","Transferable","WorkerError","PlatformWorkerTypeId","Symbol","for","PlatformWorker","GenericTag","WorkerManagerTypeId","WorkerManager","Spawner","makeManager","gen","platform","idCounter","of","spawn","encode","initialMessage","_","id","requestIdCounter","requestMap","Map","collector","unsafeMakeCollector","wrappedEncode","message","zipRight","clear","provideService","Collector","succeed","readyLatch","make","backing","run","complete","void","handleMessage","onError","cause","forEach","values","mailbox","DeferredTypeId","failCause","retry","spaced","annotateLogs","package","module","interruptible","forkScoped","addFinalizer","interrupt","end","discard","sync","response","suspend","get","offerAll","length","fail","decodeCause","executeAcquire","request","makeMailbox","withFiberRuntime","fiber","context","getFiberRef","currentContext","span","getOption","ParentSpan","filter","_tag","tap","set","payload","send","value","traceId","spanId","sampled","undefined","unsafeRead","catchAllCause","isMailbox","map","executeRelease","exit","release","delete","isFailure","orDie","execute","fromChannel","acquireUseRelease","toChannel","executeEffect","await","flatMap","mapError","reason","layerManager","effect","makePool","options","manager","workers","Set","acquire","worker","acquireRelease","add","onCreate","makeWithTTL","min","minSize","max","maxSize","concurrency","targetUtilization","timeToLive","size","pool","broadcast","unwrapScoped","scoped","makePoolLayer","tag","makeSerialized","serialize","parseSuccess","decode","successSchema","parseFailure","failureSchema","catchAll","error","mapEffect","matchEffect","onFailure","onSuccess","makePoolSerialized","makePoolSerializedLayer","layerSpawner","spawner","makePlatform","currentPort","buffer","handler","uninterruptibleMask","restore","bindTo","bind","scope","setup","port","extend","fiberSet","runtime","runFork","listen","emit","data","deferred","transfers","postMessage","join","ensuring","close","try","push","catch"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.64.0",
3
+ "version": "0.65.0",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -14,8 +14,8 @@
14
14
  "multipasta": "^0.2.5"
15
15
  },
16
16
  "peerDependencies": {
17
- "@effect/schema": "^0.72.3",
18
- "effect": "^3.7.2"
17
+ "@effect/schema": "^0.73.0",
18
+ "effect": "^3.8.0"
19
19
  },
20
20
  "publishConfig": {
21
21
  "provenance": true
@@ -60,6 +60,11 @@
60
60
  "import": "./dist/esm/Etag.js",
61
61
  "default": "./dist/cjs/Etag.js"
62
62
  },
63
+ "./FetchHttpClient": {
64
+ "types": "./dist/dts/FetchHttpClient.d.ts",
65
+ "import": "./dist/esm/FetchHttpClient.js",
66
+ "default": "./dist/cjs/FetchHttpClient.js"
67
+ },
63
68
  "./FileSystem": {
64
69
  "types": "./dist/dts/FileSystem.d.ts",
65
70
  "import": "./dist/esm/FileSystem.js",
@@ -301,6 +306,9 @@
301
306
  "Etag": [
302
307
  "./dist/dts/Etag.d.ts"
303
308
  ],
309
+ "FetchHttpClient": [
310
+ "./dist/dts/FetchHttpClient.d.ts"
311
+ ],
304
312
  "FileSystem": [
305
313
  "./dist/dts/FileSystem.d.ts"
306
314
  ],
package/src/Command.ts CHANGED
@@ -153,9 +153,9 @@ export const feed: {
153
153
  /**
154
154
  * Flatten this command to a non-empty array of standard commands.
155
155
  *
156
- * * For a `StandardCommand`, this simply returns a `1` element array
157
- * * For a `PipedCommand`, all commands in the pipe will be extracted out into
158
- * a array from left to right
156
+ * For a `StandardCommand`, this simply returns a `1` element array
157
+ * For a `PipedCommand`, all commands in the pipe will be extracted out into
158
+ * a array from left to right
159
159
  *
160
160
  * @since 1.0.0
161
161
  * @category combinators
@@ -169,10 +169,8 @@ export const flatten: (self: Command) => NonEmptyReadonlyArray<StandardCommand>
169
169
  * @since 1.0.0
170
170
  * @category execution
171
171
  */
172
- export const lines: (
173
- command: Command,
174
- encoding?: string
175
- ) => Effect<Array<string>, PlatformError, CommandExecutor> = internal.lines
172
+ export const lines: (command: Command, encoding?: string) => Effect<Array<string>, PlatformError, CommandExecutor> =
173
+ internal.lines
176
174
 
177
175
  /**
178
176
  * Create a command with the specified process name and an optional list of
@@ -235,7 +233,8 @@ export const stream: (command: Command) => Stream<Uint8Array, PlatformError, Com
235
233
  * @since 1.0.0
236
234
  * @category execution
237
235
  */
238
- export const streamLines: (command: Command) => Stream<string, PlatformError, CommandExecutor> = internal.streamLines
236
+ export const streamLines: (command: Command, encoding?: string) => Stream<string, PlatformError, CommandExecutor> =
237
+ internal.streamLines
239
238
 
240
239
  /**
241
240
  * Runs the command returning the entire output as a string with the
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Context from "effect/Context"
5
+ import type * as Layer from "effect/Layer"
6
+ import type { HttpClient } from "./HttpClient.js"
7
+ import * as internal from "./internal/fetchHttpClient.js"
8
+
9
+ /**
10
+ * @since 1.0.0
11
+ * @category tags
12
+ */
13
+ export class Fetch extends Context.Tag(internal.fetchTagKey)<Fetch, typeof globalThis.fetch>() {}
14
+
15
+ /**
16
+ * @since 1.0.0
17
+ * @category tags
18
+ */
19
+ export class RequestInit extends Context.Tag(internal.requestInitTagKey)<RequestInit, globalThis.RequestInit>() {}
20
+
21
+ /**
22
+ * @since 1.0.0
23
+ * @category layers
24
+ */
25
+ export const layer: Layer.Layer<HttpClient.Service> = internal.layer
@@ -56,10 +56,10 @@ export type Client<A extends HttpApi.HttpApi.Any> = [A] extends
56
56
  export const make = <A extends HttpApi.HttpApi.Any>(
57
57
  api: A,
58
58
  options?: {
59
- readonly transformClient?: ((client: HttpClient.HttpClient.Default) => HttpClient.HttpClient.Default) | undefined
59
+ readonly transformClient?: ((client: HttpClient.HttpClient.Service) => HttpClient.HttpClient.Service) | undefined
60
60
  readonly baseUrl?: string | undefined
61
61
  }
62
- ): Effect.Effect<Simplify<Client<A>>, never, HttpApi.HttpApi.Context<A> | HttpClient.HttpClient.Default> =>
62
+ ): Effect.Effect<Simplify<Client<A>>, never, HttpApi.HttpApi.Context<A> | HttpClient.HttpClient.Service> =>
63
63
  Effect.gen(function*() {
64
64
  const context = yield* Effect.context<any>()
65
65
  const httpClient = (yield* HttpClient.HttpClient).pipe(
@@ -165,13 +165,13 @@ export const make = <A extends HttpApi.HttpApi.Any>(
165
165
  const baseRequest = HttpClientRequest.make(endpoint.method)(url)
166
166
  return (isMultipart ?
167
167
  Effect.succeed(baseRequest.pipe(
168
- HttpClientRequest.formDataBody(request.payload)
168
+ HttpClientRequest.bodyFormData(request.payload)
169
169
  ))
170
170
  : encodePayload._tag === "Some"
171
171
  ? encodePayload.value(request.payload).pipe(
172
172
  Effect.flatMap((payload) =>
173
173
  HttpMethod.hasBody(endpoint.method)
174
- ? HttpClientRequest.jsonBody(baseRequest, payload)
174
+ ? HttpClientRequest.bodyJson(baseRequest, payload)
175
175
  : Effect.succeed(HttpClientRequest.setUrlParams(baseRequest, payload as any))
176
176
  ),
177
177
  Effect.orDie
@@ -186,7 +186,7 @@ export const make = <A extends HttpApi.HttpApi.Any>(
186
186
  )
187
187
  : identity,
188
188
  Effect.flatMap((request) =>
189
- Effect.flatMap(httpClient(request), (response) =>
189
+ Effect.flatMap(httpClient.execute(request), (response) =>
190
190
  response.status !== successStatus
191
191
  ? handleError(request, response)
192
192
  : Effect.succeed(response))
package/src/HttpClient.ts CHANGED
@@ -9,7 +9,7 @@ import type * as Effect from "effect/Effect"
9
9
  import type { RuntimeFiber } from "effect/Fiber"
10
10
  import type * as FiberRef from "effect/FiberRef"
11
11
  import type { Inspectable } from "effect/Inspectable"
12
- import type * as Layer from "effect/Layer"
12
+ import type { Layer } from "effect/Layer"
13
13
  import type { Pipeable } from "effect/Pipeable"
14
14
  import type * as Predicate from "effect/Predicate"
15
15
  import type { Ref } from "effect/Ref"
@@ -38,10 +38,16 @@ export type TypeId = typeof TypeId
38
38
  * @category models
39
39
  */
40
40
  export interface HttpClient<A = ClientResponse.HttpClientResponse, E = never, R = never> extends Pipeable, Inspectable {
41
- (request: ClientRequest.HttpClientRequest): Effect.Effect<A, E, R>
42
41
  readonly [TypeId]: TypeId
43
- readonly preprocess: HttpClient.Preprocess<E, R>
44
- readonly execute: HttpClient.Execute<A, E, R>
42
+ readonly execute: (request: ClientRequest.HttpClientRequest) => Effect.Effect<A, E, R>
43
+
44
+ readonly get: (url: string | URL, options?: ClientRequest.Options.NoBody) => Effect.Effect<A, E, R>
45
+ readonly head: (url: string | URL, options?: ClientRequest.Options.NoBody) => Effect.Effect<A, E, R>
46
+ readonly post: (url: string | URL, options?: ClientRequest.Options.NoUrl) => Effect.Effect<A, E, R>
47
+ readonly patch: (url: string | URL, options?: ClientRequest.Options.NoUrl) => Effect.Effect<A, E, R>
48
+ readonly put: (url: string | URL, options?: ClientRequest.Options.NoUrl) => Effect.Effect<A, E, R>
49
+ readonly del: (url: string | URL, options?: ClientRequest.Options.NoUrl) => Effect.Effect<A, E, R>
50
+ readonly options: (url: string | URL, options?: ClientRequest.Options.NoUrl) => Effect.Effect<A, E, R>
45
51
  }
46
52
 
47
53
  /**
@@ -60,7 +66,7 @@ export declare namespace HttpClient {
60
66
  * @since 1.0.0
61
67
  * @category models
62
68
  */
63
- export type Execute<A, E = never, R = never> = (
69
+ export type Postprocess<A, E = never, R = never> = (
64
70
  request: Effect.Effect<ClientRequest.HttpClientRequest, E, R>
65
71
  ) => Effect.Effect<A, E, R>
66
72
 
@@ -74,46 +80,14 @@ export declare namespace HttpClient {
74
80
  * @since 1.0.0
75
81
  * @category models
76
82
  */
77
- export type Default = WithResponse<Error.HttpClientError, Scope.Scope>
78
- }
79
-
80
- /**
81
- * @since 1.0.0
82
- * @category models
83
- */
84
- export interface Fetch {
85
- readonly _: unique symbol
83
+ export type Service = WithResponse<Error.HttpClientError, Scope.Scope>
86
84
  }
87
85
 
88
86
  /**
89
87
  * @since 1.0.0
90
88
  * @category tags
91
89
  */
92
- export const HttpClient: Context.Tag<HttpClient.Default, HttpClient.Default> = internal.tag
93
-
94
- /**
95
- * @since 1.0.0
96
- * @category tags
97
- */
98
- export const Fetch: Context.Tag<Fetch, typeof globalThis.fetch> = internal.Fetch
99
-
100
- /**
101
- * @since 1.0.0
102
- * @category layers
103
- */
104
- export const layer: Layer.Layer<HttpClient.Default> = internal.layer
105
-
106
- /**
107
- * @since 1.0.0
108
- * @category constructors
109
- */
110
- export const fetch: HttpClient.Default = internal.fetch
111
-
112
- /**
113
- * @since 1.0.0
114
- * @category constructors
115
- */
116
- export const fetchOk: HttpClient.Default = internal.fetchOk
90
+ export const HttpClient: Context.Tag<HttpClient.Service, HttpClient.Service> = internal.tag
117
91
 
118
92
  /**
119
93
  * @since 1.0.0
@@ -200,15 +174,26 @@ export const catchTags: {
200
174
  * @category filters
201
175
  */
202
176
  export const filterOrElse: {
177
+ <A, B extends A, C, E2, R2>(
178
+ refinement: Predicate.Refinement<NoInfer<A>, B>,
179
+ orElse: (a: NoInfer<A>) => Effect.Effect<C, E2, R2>
180
+ ): <E, R>(self: HttpClient<A, E, R>) => HttpClient<B | C, E | E2, R | R2>
203
181
  <A, B, E2, R2>(
204
- f: Predicate.Predicate<A>,
205
- orElse: (a: A) => Effect.Effect<B, E2, R2>
206
- ): <E, R>(self: HttpClient<A, E, R>) => HttpClient<A | B, E2 | E, R2 | R>
182
+ predicate: Predicate.Predicate<NoInfer<A>>,
183
+ orElse: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
184
+ ): <E, R>(
185
+ self: HttpClient<A, E, R>
186
+ ) => HttpClient<A | B, E2 | E, R2 | R>
187
+ <A, E, R, B extends A, C, E2, R2>(
188
+ self: HttpClient<A, E, R>,
189
+ refinement: Predicate.Refinement<A, B>,
190
+ orElse: (a: A) => Effect.Effect<C, E2, R2>
191
+ ): HttpClient<B | C, E | E2, R | R2>
207
192
  <A, E, R, B, E2, R2>(
208
193
  self: HttpClient<A, E, R>,
209
- f: Predicate.Predicate<A>,
194
+ predicate: Predicate.Predicate<A>,
210
195
  orElse: (a: A) => Effect.Effect<B, E2, R2>
211
- ): HttpClient<A | B, E | E2, R | R2>
196
+ ): HttpClient<A | B, E2 | E, R2 | R>
212
197
  } = internal.filterOrElse
213
198
 
214
199
  /**
@@ -216,15 +201,24 @@ export const filterOrElse: {
216
201
  * @category filters
217
202
  */
218
203
  export const filterOrFail: {
204
+ <A, B extends A, E2>(
205
+ refinement: Predicate.Refinement<NoInfer<A>, B>,
206
+ orFailWith: (a: NoInfer<A>) => E2
207
+ ): <E, R>(self: HttpClient<A, E, R>) => HttpClient<B, E | E2, R>
219
208
  <A, E2>(
220
- f: Predicate.Predicate<A>,
221
- orFailWith: (a: A) => E2
209
+ predicate: Predicate.Predicate<NoInfer<A>>,
210
+ orFailWith: (a: NoInfer<A>) => E2
222
211
  ): <E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E2 | E, R>
212
+ <A, B extends A, E, R, E2>(
213
+ self: HttpClient<A, E, R>,
214
+ refinement: Predicate.Refinement<A, B>,
215
+ orFailWith: (a: A) => E2
216
+ ): HttpClient<B, E2 | E, R>
223
217
  <A, E, R, E2>(
224
218
  self: HttpClient<A, E, R>,
225
- f: Predicate.Predicate<A>,
219
+ predicate: Predicate.Predicate<A>,
226
220
  orFailWith: (a: A) => E2
227
- ): HttpClient<A, E | E2, R>
221
+ ): HttpClient<A, E2 | E, R>
228
222
  } = internal.filterOrFail
229
223
 
230
224
  /**
@@ -262,14 +256,14 @@ export const make: <A, E, R, E2, R2>(
262
256
  * @since 1.0.0
263
257
  * @category constructors
264
258
  */
265
- export const makeDefault: (
259
+ export const makeService: (
266
260
  f: (
267
261
  request: ClientRequest.HttpClientRequest,
268
262
  url: URL,
269
263
  signal: AbortSignal,
270
264
  fiber: RuntimeFiber<ClientResponse.HttpClientResponse, Error.HttpClientError>
271
265
  ) => Effect.Effect<ClientResponse.HttpClientResponse, Error.HttpClientError, Scope.Scope>
272
- ) => HttpClient.Default = internal.makeDefault
266
+ ) => HttpClient.Service = internal.makeService
273
267
 
274
268
  /**
275
269
  * @since 1.0.0
@@ -319,20 +313,6 @@ export const mapEffect: {
319
313
  <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>
320
314
  } = internal.mapEffect
321
315
 
322
- /**
323
- * @since 1.0.0
324
- * @category mapping & sequencing
325
- */
326
- export const mapEffectScoped: {
327
- <A, B, E2, R2>(
328
- f: (a: A) => Effect.Effect<B, E2, R2>
329
- ): <E, R>(self: HttpClient<A, E, R>) => HttpClient<B, E2 | E, Exclude<R2, Scope.Scope> | Exclude<R, Scope.Scope>>
330
- <A, E, R, B, E2, R2>(
331
- self: HttpClient<A, E, R>,
332
- f: (a: A) => Effect.Effect<B, E2, R2>
333
- ): HttpClient<B, E | E2, Exclude<R2, Scope.Scope> | Exclude<R, Scope.Scope>>
334
- } = internal.mapEffectScoped
335
-
336
316
  /**
337
317
  * @since 1.0.0
338
318
  * @category mapping & sequencing
@@ -365,7 +345,7 @@ export const mapRequestEffect: {
365
345
  * @since 1.0.0
366
346
  * @category mapping & sequencing
367
347
  */
368
- export const mapInputRequest: {
348
+ export const mapRequestInput: {
369
349
  (
370
350
  f: (a: ClientRequest.HttpClientRequest) => ClientRequest.HttpClientRequest
371
351
  ): <A, E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E, R>
@@ -373,13 +353,13 @@ export const mapInputRequest: {
373
353
  self: HttpClient<A, E, R>,
374
354
  f: (a: ClientRequest.HttpClientRequest) => ClientRequest.HttpClientRequest
375
355
  ): HttpClient<A, E, R>
376
- } = internal.mapInputRequest
356
+ } = internal.mapRequestInput
377
357
 
378
358
  /**
379
359
  * @since 1.0.0
380
360
  * @category mapping & sequencing
381
361
  */
382
- export const mapInputRequestEffect: {
362
+ export const mapRequestInputEffect: {
383
363
  <E2, R2>(
384
364
  f: (a: ClientRequest.HttpClientRequest) => Effect.Effect<ClientRequest.HttpClientRequest, E2, R2>
385
365
  ): <A, E, R>(self: HttpClient<A, E, R>) => HttpClient<A, E2 | E, R2 | R>
@@ -387,20 +367,42 @@ export const mapInputRequestEffect: {
387
367
  self: HttpClient<A, E, R>,
388
368
  f: (a: ClientRequest.HttpClientRequest) => Effect.Effect<ClientRequest.HttpClientRequest, E2, R2>
389
369
  ): HttpClient<A, E | E2, R2 | R>
390
- } = internal.mapInputRequestEffect
370
+ } = internal.mapRequestInputEffect
371
+
372
+ /**
373
+ * @since 1.0.0
374
+ * @category error handling
375
+ */
376
+ export declare namespace Retry {
377
+ /**
378
+ * @since 1.0.0
379
+ * @category error handling
380
+ */
381
+ export type Return<R, E, A, O extends Effect.Retry.Options<E>> = HttpClient<
382
+ A,
383
+ | (O extends { schedule: Schedule.Schedule<infer _O, infer _I, infer _R> } ? E
384
+ : O extends { until: Predicate.Refinement<E, infer E2> } ? E2
385
+ : E)
386
+ | (O extends { while: (...args: Array<any>) => Effect.Effect<infer _A, infer E, infer _R> } ? E : never)
387
+ | (O extends { until: (...args: Array<any>) => Effect.Effect<infer _A, infer E, infer _R> } ? E : never),
388
+ | R
389
+ | (O extends { schedule: Schedule.Schedule<infer _O, infer _I, infer R> } ? R : never)
390
+ | (O extends { while: (...args: Array<any>) => Effect.Effect<infer _A, infer _E, infer R> } ? R : never)
391
+ | (O extends { until: (...args: Array<any>) => Effect.Effect<infer _A, infer _E, infer R> } ? R : never)
392
+ > extends infer Z ? Z : never
393
+ }
391
394
 
392
395
  /**
393
396
  * @since 1.0.0
394
397
  * @category error handling
395
398
  */
396
399
  export const retry: {
397
- <B, E extends E0, E0, R1>(
398
- policy: Schedule.Schedule<B, E0, R1>
400
+ <E, O extends Effect.Retry.Options<E>>(options: O): <A, R>(self: HttpClient<A, E, R>) => Retry.Return<R, E, A, O>
401
+ <B, E, R1>(
402
+ policy: Schedule.Schedule<B, NoInfer<E>, R1>
399
403
  ): <A, R>(self: HttpClient<A, E, R>) => HttpClient<A, E, R1 | R>
400
- <A, E extends E0, E0, R, R1, B>(
401
- self: HttpClient<A, E, R>,
402
- policy: Schedule.Schedule<B, E0, R1>
403
- ): HttpClient<A, E, R1 | R>
404
+ <A, E, R, O extends Effect.Retry.Options<E>>(self: HttpClient<A, E, R>, options: O): Retry.Return<R, E, A, O>
405
+ <A, E, R, B, R1>(self: HttpClient<A, E, R>, policy: Schedule.Schedule<B, E, R1>): HttpClient<A, E, R1 | R>
404
406
  } = internal.retry
405
407
 
406
408
  /**
@@ -512,15 +514,7 @@ export const withTracerPropagation: {
512
514
 
513
515
  /**
514
516
  * @since 1.0.0
515
- * @category fiber refs
516
- */
517
- export const currentFetchOptions: FiberRef.FiberRef<RequestInit> = internal.currentFetchOptions
518
-
519
- /**
520
- * @since 1.0.0
521
- * @category fiber refs
522
517
  */
523
- export const withFetchOptions: {
524
- (options: RequestInit): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
525
- <A, E, R>(effect: Effect.Effect<A, E, R>, options: RequestInit): Effect.Effect<A, E, R>
526
- } = internal.withFetchOptions
518
+ export const layerMergedContext: <E, R>(
519
+ effect: Effect.Effect<HttpClient.Service, E, R>
520
+ ) => Layer<HttpClient.Service, E, R> = internal.layerMergedContext