@effect-atom/atom 0.4.5 → 0.4.6

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.
@@ -50,15 +50,20 @@ const Tag = () => (id, options) => {
50
50
  self.runtime = Atom.runtime(self.layer);
51
51
  const mutationFamily = Atom.family(({
52
52
  endpoint,
53
- group
53
+ group,
54
+ withResponse
54
55
  }) => self.runtime.fn()(Effect.fnUntraced(function* (opts) {
55
56
  const client = yield* self;
56
- const effect = client[group][endpoint](opts);
57
+ const effect = client[group][endpoint]({
58
+ ...opts,
59
+ withResponse
60
+ });
57
61
  return yield* opts.reactivityKeys ? Reactivity.mutation(effect, opts.reactivityKeys) : effect;
58
62
  })));
59
- self.mutation = (group, endpoint) => mutationFamily(new MutationKey({
63
+ self.mutation = (group, endpoint, options) => mutationFamily(new MutationKey({
60
64
  group,
61
- endpoint
65
+ endpoint,
66
+ withResponse: options?.withResponse ?? false
62
67
  }));
63
68
  const queryFamily = Atom.family(opts => {
64
69
  let atom = self.runtime.atom(Effect.flatMap(self, client_ => {
@@ -77,6 +82,7 @@ const Tag = () => (id, options) => {
77
82
  urlParams: request.urlParams && Data.struct(request.urlParams),
78
83
  payload: request.payload && Data.struct(request.payload),
79
84
  headers: request.headers && Data.struct(request.headers),
85
+ withResponse: request.withResponse ?? false,
80
86
  reactivityKeys: request.reactivityKeys ? (0, _data.wrapReactivityKeys)(request.reactivityKeys) : undefined,
81
87
  timeToLive: request.timeToLive ? Duration.decode(request.timeToLive) : undefined
82
88
  }));
@@ -85,18 +91,18 @@ const Tag = () => (id, options) => {
85
91
  exports.Tag = Tag;
86
92
  class MutationKey extends Data.Class {
87
93
  [Equal.symbol](that) {
88
- return this.group === that.group && this.endpoint === that.endpoint;
94
+ return this.group === that.group && this.endpoint === that.endpoint && this.withResponse === that.withResponse;
89
95
  }
90
96
  [Hash.symbol]() {
91
- return (0, _Function.pipe)(Hash.string(`${this.group}/${this.endpoint}`), Hash.cached(this));
97
+ return (0, _Function.pipe)(Hash.string(`${this.group}/${this.endpoint}/${this.withResponse}`), Hash.cached(this));
92
98
  }
93
99
  }
94
100
  class QueryKey extends Data.Class {
95
101
  [Equal.symbol](that) {
96
- return this.group === that.group && this.endpoint === that.endpoint && Equal.equals(this.path, that.path) && Equal.equals(this.urlParams, that.urlParams) && Equal.equals(this.payload, that.payload) && Equal.equals(this.headers, that.headers) && Equal.equals(this.reactivityKeys, that.reactivityKeys) && Equal.equals(this.timeToLive, that.timeToLive);
102
+ return this.group === that.group && this.endpoint === that.endpoint && Equal.equals(this.path, that.path) && Equal.equals(this.urlParams, that.urlParams) && Equal.equals(this.payload, that.payload) && Equal.equals(this.headers, that.headers) && Equal.equals(this.withResponse, that.withResponse) && Equal.equals(this.reactivityKeys, that.reactivityKeys) && Equal.equals(this.timeToLive, that.timeToLive);
97
103
  }
98
104
  [Hash.symbol]() {
99
- return (0, _Function.pipe)(Hash.string(`${this.group}/${this.endpoint}`), Hash.combine(Hash.hash(this.path)), Hash.combine(Hash.hash(this.urlParams)), Hash.combine(Hash.hash(this.payload)), Hash.combine(Hash.hash(this.headers)), Hash.combine(Hash.hash(this.reactivityKeys)), Hash.combine(Hash.hash(this.timeToLive)), Hash.cached(this));
105
+ return (0, _Function.pipe)(Hash.string(`${this.group}/${this.endpoint}`), Hash.combine(Hash.hash(this.path)), Hash.combine(Hash.hash(this.urlParams)), Hash.combine(Hash.hash(this.payload)), Hash.combine(Hash.hash(this.headers)), Hash.combine(Hash.hash(this.withResponse)), Hash.combine(Hash.hash(this.reactivityKeys)), Hash.combine(Hash.hash(this.timeToLive)), Hash.cached(this));
100
106
  }
101
107
  }
102
108
  //# sourceMappingURL=AtomHttpApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtomHttpApi.js","names":["Reactivity","_interopRequireWildcard","require","HttpApiClient","Context","Data","Duration","Effect","Equal","_Function","Hash","Layer","Atom","_data","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Tag","id","options","self","layer","scoped","make","api","pipe","provide","httpClient","runtime","mutationFamily","family","endpoint","group","fn","fnUntraced","opts","client","effect","reactivityKeys","mutation","MutationKey","queryFamily","atom","flatMap","client_","timeToLive","isFinite","setIdleTTL","keepAlive","factory","withReactivity","query","request","QueryKey","path","struct","urlParams","payload","headers","wrapReactivityKeys","undefined","decode","exports","Class","symbol","that","string","cached","equals","combine","hash"],"sources":["../../src/AtomHttpApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AtomHttpApi.js","names":["Reactivity","_interopRequireWildcard","require","HttpApiClient","Context","Data","Duration","Effect","Equal","_Function","Hash","Layer","Atom","_data","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Tag","id","options","self","layer","scoped","make","api","pipe","provide","httpClient","runtime","mutationFamily","family","endpoint","group","withResponse","fn","fnUntraced","opts","client","effect","reactivityKeys","mutation","MutationKey","queryFamily","atom","flatMap","client_","timeToLive","isFinite","setIdleTTL","keepAlive","factory","withReactivity","query","request","QueryKey","path","struct","urlParams","payload","headers","wrapReactivityKeys","undefined","decode","exports","Class","symbol","that","string","cached","equals","combine","hash"],"sources":["../../src/AtomHttpApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ import type * as HttpApiGroup from "@effect/platform/HttpApiGroup";
5
5
  import type * as HttpApiMiddleware from "@effect/platform/HttpApiMiddleware";
6
6
  import type * as HttpClient from "@effect/platform/HttpClient";
7
7
  import type * as HttpClientError from "@effect/platform/HttpClientError";
8
+ import type { HttpClientResponse } from "@effect/platform/HttpClientResponse";
8
9
  import * as Context from "effect/Context";
9
10
  import * as Duration from "effect/Duration";
10
11
  import * as Effect from "effect/Effect";
@@ -22,19 +23,21 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
22
23
  new (_: never): Context.TagClassShape<Id, Simplify<HttpApiClient.Client<Groups, ApiE, never>>>;
23
24
  readonly layer: Layer.Layer<Self, E>;
24
25
  readonly runtime: Atom.AtomRuntime<Self, E>;
25
- readonly mutation: <GroupName extends HttpApiGroup.HttpApiGroup.Name<Groups>, Name extends HttpApiEndpoint.HttpApiEndpoint.Name<HttpApiGroup.HttpApiGroup.Endpoints<Group>>, Group extends HttpApiGroup.HttpApiGroup.Any = HttpApiGroup.HttpApiGroup.WithName<Groups, GroupName>, Endpoint extends HttpApiEndpoint.HttpApiEndpoint.Any = HttpApiEndpoint.HttpApiEndpoint.WithName<HttpApiGroup.HttpApiGroup.Endpoints<Group>, Name>>(group: GroupName, endpoint: Name) => [Endpoint] extends [
26
+ readonly mutation: <GroupName extends HttpApiGroup.HttpApiGroup.Name<Groups>, Name extends HttpApiEndpoint.HttpApiEndpoint.Name<HttpApiGroup.HttpApiGroup.Endpoints<Group>>, Group extends HttpApiGroup.HttpApiGroup.Any = HttpApiGroup.HttpApiGroup.WithName<Groups, GroupName>, Endpoint extends HttpApiEndpoint.HttpApiEndpoint.Any = HttpApiEndpoint.HttpApiEndpoint.WithName<HttpApiGroup.HttpApiGroup.Endpoints<Group>, Name>, const WithResponse extends boolean = false>(group: GroupName, endpoint: Name, options?: {
27
+ readonly withResponse?: WithResponse | undefined;
28
+ }) => [Endpoint] extends [
26
29
  HttpApiEndpoint.HttpApiEndpoint<infer _Name, infer _Method, infer _Path, infer _UrlParams, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R, infer _RE>
27
30
  ] ? Atom.AtomResultFn<Simplify<HttpApiEndpoint.HttpApiEndpoint.ClientRequest<_Path, _UrlParams, _Payload, _Headers, false> & {
28
31
  readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined;
29
- }>, _Success, _Error | HttpApiGroup.HttpApiGroup.Error<Group> | E | HttpClientError.HttpClientError | ParseResult.ParseError> : never;
30
- readonly query: <GroupName extends HttpApiGroup.HttpApiGroup.Name<Groups>, Name extends HttpApiEndpoint.HttpApiEndpoint.Name<HttpApiGroup.HttpApiGroup.Endpoints<Group>>, Group extends HttpApiGroup.HttpApiGroup.Any = HttpApiGroup.HttpApiGroup.WithName<Groups, GroupName>, Endpoint extends HttpApiEndpoint.HttpApiEndpoint.Any = HttpApiEndpoint.HttpApiEndpoint.WithName<HttpApiGroup.HttpApiGroup.Endpoints<Group>, Name>>(group: GroupName, endpoint: Name, request: [Endpoint] extends [
32
+ }>, WithResponse extends true ? [_Success, HttpClientResponse] : _Success, _Error | HttpApiGroup.HttpApiGroup.Error<Group> | E | HttpClientError.HttpClientError | ParseResult.ParseError> : never;
33
+ readonly query: <GroupName extends HttpApiGroup.HttpApiGroup.Name<Groups>, Name extends HttpApiEndpoint.HttpApiEndpoint.Name<HttpApiGroup.HttpApiGroup.Endpoints<Group>>, Group extends HttpApiGroup.HttpApiGroup.Any = HttpApiGroup.HttpApiGroup.WithName<Groups, GroupName>, Endpoint extends HttpApiEndpoint.HttpApiEndpoint.Any = HttpApiEndpoint.HttpApiEndpoint.WithName<HttpApiGroup.HttpApiGroup.Endpoints<Group>, Name>, const WithResponse extends boolean = false>(group: GroupName, endpoint: Name, request: [Endpoint] extends [
31
34
  HttpApiEndpoint.HttpApiEndpoint<infer _Name, infer _Method, infer _Path, infer _UrlParams, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R, infer _RE>
32
- ] ? Simplify<HttpApiEndpoint.HttpApiEndpoint.ClientRequest<_Path, _UrlParams, _Payload, _Headers, false> & {
35
+ ] ? Simplify<HttpApiEndpoint.HttpApiEndpoint.ClientRequest<_Path, _UrlParams, _Payload, _Headers, WithResponse> & {
33
36
  readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined;
34
37
  readonly timeToLive?: Duration.DurationInput | undefined;
35
38
  }> : never) => [Endpoint] extends [
36
39
  HttpApiEndpoint.HttpApiEndpoint<infer _Name, infer _Method, infer _Path, infer _UrlParams, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R, infer _RE>
37
- ] ? Atom.Atom<Result.Result<_Success, _Error | HttpApiGroup.HttpApiGroup.Error<Group> | E | HttpClientError.HttpClientError | ParseResult.ParseError>> : never;
40
+ ] ? Atom.Atom<Result.Result<WithResponse extends true ? [_Success, HttpClientResponse] : _Success, _Error | HttpApiGroup.HttpApiGroup.Error<Group> | E | HttpClientError.HttpClientError | ParseResult.ParseError>> : never;
38
41
  }
39
42
  declare global {
40
43
  interface ErrorConstructor {
@@ -1 +1 @@
1
- {"version":3,"file":"AtomHttpApi.d.ts","sourceRoot":"","sources":["../../src/AtomHttpApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AtomHttpApi.d.ts","sourceRoot":"","sources":["../../src/AtomHttpApi.ts"],"names":[],"mappings":"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"}
@@ -23,15 +23,20 @@ export const Tag = () => (id, options) => {
23
23
  self.runtime = Atom.runtime(self.layer);
24
24
  const mutationFamily = Atom.family(({
25
25
  endpoint,
26
- group
26
+ group,
27
+ withResponse
27
28
  }) => self.runtime.fn()(Effect.fnUntraced(function* (opts) {
28
29
  const client = yield* self;
29
- const effect = client[group][endpoint](opts);
30
+ const effect = client[group][endpoint]({
31
+ ...opts,
32
+ withResponse
33
+ });
30
34
  return yield* opts.reactivityKeys ? Reactivity.mutation(effect, opts.reactivityKeys) : effect;
31
35
  })));
32
- self.mutation = (group, endpoint) => mutationFamily(new MutationKey({
36
+ self.mutation = (group, endpoint, options) => mutationFamily(new MutationKey({
33
37
  group,
34
- endpoint
38
+ endpoint,
39
+ withResponse: options?.withResponse ?? false
35
40
  }));
36
41
  const queryFamily = Atom.family(opts => {
37
42
  let atom = self.runtime.atom(Effect.flatMap(self, client_ => {
@@ -50,6 +55,7 @@ export const Tag = () => (id, options) => {
50
55
  urlParams: request.urlParams && Data.struct(request.urlParams),
51
56
  payload: request.payload && Data.struct(request.payload),
52
57
  headers: request.headers && Data.struct(request.headers),
58
+ withResponse: request.withResponse ?? false,
53
59
  reactivityKeys: request.reactivityKeys ? wrapReactivityKeys(request.reactivityKeys) : undefined,
54
60
  timeToLive: request.timeToLive ? Duration.decode(request.timeToLive) : undefined
55
61
  }));
@@ -57,18 +63,18 @@ export const Tag = () => (id, options) => {
57
63
  };
58
64
  class MutationKey extends Data.Class {
59
65
  [Equal.symbol](that) {
60
- return this.group === that.group && this.endpoint === that.endpoint;
66
+ return this.group === that.group && this.endpoint === that.endpoint && this.withResponse === that.withResponse;
61
67
  }
62
68
  [Hash.symbol]() {
63
- return pipe(Hash.string(`${this.group}/${this.endpoint}`), Hash.cached(this));
69
+ return pipe(Hash.string(`${this.group}/${this.endpoint}/${this.withResponse}`), Hash.cached(this));
64
70
  }
65
71
  }
66
72
  class QueryKey extends Data.Class {
67
73
  [Equal.symbol](that) {
68
- return this.group === that.group && this.endpoint === that.endpoint && Equal.equals(this.path, that.path) && Equal.equals(this.urlParams, that.urlParams) && Equal.equals(this.payload, that.payload) && Equal.equals(this.headers, that.headers) && Equal.equals(this.reactivityKeys, that.reactivityKeys) && Equal.equals(this.timeToLive, that.timeToLive);
74
+ return this.group === that.group && this.endpoint === that.endpoint && Equal.equals(this.path, that.path) && Equal.equals(this.urlParams, that.urlParams) && Equal.equals(this.payload, that.payload) && Equal.equals(this.headers, that.headers) && Equal.equals(this.withResponse, that.withResponse) && Equal.equals(this.reactivityKeys, that.reactivityKeys) && Equal.equals(this.timeToLive, that.timeToLive);
69
75
  }
70
76
  [Hash.symbol]() {
71
- return pipe(Hash.string(`${this.group}/${this.endpoint}`), Hash.combine(Hash.hash(this.path)), Hash.combine(Hash.hash(this.urlParams)), Hash.combine(Hash.hash(this.payload)), Hash.combine(Hash.hash(this.headers)), Hash.combine(Hash.hash(this.reactivityKeys)), Hash.combine(Hash.hash(this.timeToLive)), Hash.cached(this));
77
+ return pipe(Hash.string(`${this.group}/${this.endpoint}`), Hash.combine(Hash.hash(this.path)), Hash.combine(Hash.hash(this.urlParams)), Hash.combine(Hash.hash(this.payload)), Hash.combine(Hash.hash(this.headers)), Hash.combine(Hash.hash(this.withResponse)), Hash.combine(Hash.hash(this.reactivityKeys)), Hash.combine(Hash.hash(this.timeToLive)), Hash.cached(this));
72
78
  }
73
79
  }
74
80
  //# sourceMappingURL=AtomHttpApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtomHttpApi.js","names":["Reactivity","HttpApiClient","Context","Data","Duration","Effect","Equal","pipe","Hash","Layer","Atom","wrapReactivityKeys","Tag","id","options","self","layer","scoped","make","api","provide","httpClient","runtime","mutationFamily","family","endpoint","group","fn","fnUntraced","opts","client","effect","reactivityKeys","mutation","MutationKey","queryFamily","atom","flatMap","client_","timeToLive","isFinite","setIdleTTL","keepAlive","factory","withReactivity","query","request","QueryKey","path","struct","urlParams","payload","headers","undefined","decode","Class","symbol","that","string","cached","equals","combine","hash"],"sources":["../../src/AtomHttpApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AtomHttpApi.js","names":["Reactivity","HttpApiClient","Context","Data","Duration","Effect","Equal","pipe","Hash","Layer","Atom","wrapReactivityKeys","Tag","id","options","self","layer","scoped","make","api","provide","httpClient","runtime","mutationFamily","family","endpoint","group","withResponse","fn","fnUntraced","opts","client","effect","reactivityKeys","mutation","MutationKey","queryFamily","atom","flatMap","client_","timeToLive","isFinite","setIdleTTL","keepAlive","factory","withReactivity","query","request","QueryKey","path","struct","urlParams","payload","headers","undefined","decode","Class","symbol","that","string","cached","equals","combine","hash"],"sources":["../../src/AtomHttpApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-atom/atom",
3
- "version": "0.4.5",
3
+ "version": "0.4.6",
4
4
  "description": "Reactive toolkit for Effect",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -9,6 +9,7 @@ import type * as HttpApiGroup from "@effect/platform/HttpApiGroup"
9
9
  import type * as HttpApiMiddleware from "@effect/platform/HttpApiMiddleware"
10
10
  import type * as HttpClient from "@effect/platform/HttpClient"
11
11
  import type * as HttpClientError from "@effect/platform/HttpClientError"
12
+ import type { HttpClientResponse } from "@effect/platform/HttpClientResponse"
12
13
  import * as Context from "effect/Context"
13
14
  import * as Data from "effect/Data"
14
15
  import * as Duration from "effect/Duration"
@@ -43,10 +44,14 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
43
44
  Endpoint extends HttpApiEndpoint.HttpApiEndpoint.Any = HttpApiEndpoint.HttpApiEndpoint.WithName<
44
45
  HttpApiGroup.HttpApiGroup.Endpoints<Group>,
45
46
  Name
46
- >
47
+ >,
48
+ const WithResponse extends boolean = false
47
49
  >(
48
50
  group: GroupName,
49
- endpoint: Name
51
+ endpoint: Name,
52
+ options?: {
53
+ readonly withResponse?: WithResponse | undefined
54
+ }
50
55
  ) => [Endpoint] extends [
51
56
  HttpApiEndpoint.HttpApiEndpoint<
52
57
  infer _Name,
@@ -66,7 +71,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
66
71
  readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
67
72
  }
68
73
  >,
69
- _Success,
74
+ WithResponse extends true ? [_Success, HttpClientResponse] : _Success,
70
75
  _Error | HttpApiGroup.HttpApiGroup.Error<Group> | E | HttpClientError.HttpClientError | ParseResult.ParseError
71
76
  >
72
77
  : never
@@ -78,7 +83,8 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
78
83
  Endpoint extends HttpApiEndpoint.HttpApiEndpoint.Any = HttpApiEndpoint.HttpApiEndpoint.WithName<
79
84
  HttpApiGroup.HttpApiGroup.Endpoints<Group>,
80
85
  Name
81
- >
86
+ >,
87
+ const WithResponse extends boolean = false
82
88
  >(
83
89
  group: GroupName,
84
90
  endpoint: Name,
@@ -96,7 +102,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
96
102
  infer _RE
97
103
  >
98
104
  ] ? Simplify<
99
- HttpApiEndpoint.HttpApiEndpoint.ClientRequest<_Path, _UrlParams, _Payload, _Headers, false> & {
105
+ HttpApiEndpoint.HttpApiEndpoint.ClientRequest<_Path, _UrlParams, _Payload, _Headers, WithResponse> & {
100
106
  readonly reactivityKeys?:
101
107
  | ReadonlyArray<unknown>
102
108
  | ReadonlyRecord<string, ReadonlyArray<unknown>>
@@ -120,7 +126,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
120
126
  >
121
127
  ] ? Atom.Atom<
122
128
  Result.Result<
123
- _Success,
129
+ WithResponse extends true ? [_Success, HttpClientResponse] : _Success,
124
130
  _Error | HttpApiGroup.HttpApiGroup.Error<Group> | E | HttpClientError.HttpClientError | ParseResult.ParseError
125
131
  >
126
132
  >
@@ -168,7 +174,7 @@ export const Tag =
168
174
  ).pipe(Layer.provide(options.httpClient)) as Layer.Layer<Self, E>
169
175
  self.runtime = Atom.runtime(self.layer)
170
176
 
171
- const mutationFamily = Atom.family(({ endpoint, group }: MutationKey) =>
177
+ const mutationFamily = Atom.family(({ endpoint, group, withResponse }: MutationKey) =>
172
178
  self.runtime.fn<{
173
179
  path: any
174
180
  urlParams: any
@@ -178,7 +184,10 @@ export const Tag =
178
184
  }>()(
179
185
  Effect.fnUntraced(function*(opts) {
180
186
  const client = (yield* self) as any
181
- const effect = client[group][endpoint](opts) as Effect.Effect<any>
187
+ const effect = client[group][endpoint]({
188
+ ...opts,
189
+ withResponse
190
+ }) as Effect.Effect<any>
182
191
  return yield* opts.reactivityKeys
183
192
  ? Reactivity.mutation(effect, opts.reactivityKeys)
184
193
  : effect
@@ -186,11 +195,14 @@ export const Tag =
186
195
  )
187
196
  ) as any
188
197
 
189
- self.mutation = ((group: string, endpoint: string) =>
198
+ self.mutation = ((group: string, endpoint: string, options?: {
199
+ readonly withResponse?: boolean | undefined
200
+ }) =>
190
201
  mutationFamily(
191
202
  new MutationKey({
192
203
  group,
193
- endpoint
204
+ endpoint,
205
+ withResponse: options?.withResponse ?? false
194
206
  })
195
207
  )) as any
196
208
 
@@ -219,6 +231,7 @@ export const Tag =
219
231
  readonly urlParams?: any
220
232
  readonly payload?: any
221
233
  readonly headers?: any
234
+ readonly withResponse?: boolean
222
235
  readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
223
236
  readonly timeToLive?: Duration.DurationInput | undefined
224
237
  }
@@ -231,6 +244,7 @@ export const Tag =
231
244
  urlParams: request.urlParams && Data.struct(request.urlParams),
232
245
  payload: request.payload && Data.struct(request.payload),
233
246
  headers: request.headers && Data.struct(request.headers),
247
+ withResponse: request.withResponse ?? false,
234
248
  reactivityKeys: request.reactivityKeys
235
249
  ? wrapReactivityKeys(request.reactivityKeys)
236
250
  : undefined,
@@ -246,13 +260,14 @@ export const Tag =
246
260
  class MutationKey extends Data.Class<{
247
261
  group: string
248
262
  endpoint: string
263
+ withResponse: boolean
249
264
  }> {
250
265
  [Equal.symbol](that: QueryKey) {
251
- return this.group === that.group && this.endpoint === that.endpoint
266
+ return this.group === that.group && this.endpoint === that.endpoint && this.withResponse === that.withResponse
252
267
  }
253
268
  [Hash.symbol]() {
254
269
  return pipe(
255
- Hash.string(`${this.group}/${this.endpoint}`),
270
+ Hash.string(`${this.group}/${this.endpoint}/${this.withResponse}`),
256
271
  Hash.cached(this)
257
272
  )
258
273
  }
@@ -265,6 +280,7 @@ class QueryKey extends Data.Class<{
265
280
  urlParams: any
266
281
  headers: any
267
282
  payload: any
283
+ withResponse: boolean
268
284
  reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
269
285
  timeToLive?: Duration.Duration | undefined
270
286
  }> {
@@ -276,6 +292,7 @@ class QueryKey extends Data.Class<{
276
292
  Equal.equals(this.urlParams, that.urlParams) &&
277
293
  Equal.equals(this.payload, that.payload) &&
278
294
  Equal.equals(this.headers, that.headers) &&
295
+ Equal.equals(this.withResponse, that.withResponse) &&
279
296
  Equal.equals(this.reactivityKeys, that.reactivityKeys) &&
280
297
  Equal.equals(this.timeToLive, that.timeToLive)
281
298
  )
@@ -287,6 +304,7 @@ class QueryKey extends Data.Class<{
287
304
  Hash.combine(Hash.hash(this.urlParams)),
288
305
  Hash.combine(Hash.hash(this.payload)),
289
306
  Hash.combine(Hash.hash(this.headers)),
307
+ Hash.combine(Hash.hash(this.withResponse)),
290
308
  Hash.combine(Hash.hash(this.reactivityKeys)),
291
309
  Hash.combine(Hash.hash(this.timeToLive)),
292
310
  Hash.cached(this)