effect-app 4.0.0-beta.283 → 4.0.0-beta.285

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @effect-app/prelude
2
2
 
3
+ ## 4.0.0-beta.285
4
+
5
+ ### Patch Changes
6
+
7
+ - 7bd8234: Use set-backed data dependencies and provide request-scoped dependency services through a shared root-checked helper.
8
+
9
+ ## 4.0.0-beta.284
10
+
3
11
  ## 4.0.0-beta.283
4
12
 
5
13
  ### Minor Changes
@@ -1,6 +1,7 @@
1
1
  import * as Ref from "effect/Ref";
2
- import * as Context from "./Context.js";
2
+ import * as Stream from "effect/Stream";
3
3
  import * as Effect from "./Effect.js";
4
+ import * as RequestScopedDependencies from "./RequestScopedDependencies.js";
4
5
  import * as S from "./Schema.js";
5
6
  export declare const DataDependency: S.Struct<{
6
7
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
@@ -16,7 +17,7 @@ export declare const DataDependency: S.Struct<{
16
17
  readonly name: S.String;
17
18
  }>;
18
19
  export type DataDependency = S.Schema.Type<typeof DataDependency>;
19
- export declare const DataDependencies: S.$Array<S.Struct<{
20
+ export declare const DataDependencies: S.decodeTo<S.instanceOf<ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
20
21
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
21
22
  changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
22
23
  Default: A;
@@ -28,8 +29,44 @@ export declare const DataDependencies: S.$Array<S.Struct<{
28
29
  withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
29
30
  };
30
31
  readonly name: S.String;
31
- }>> & {
32
- withConstructorDefault: S.withConstructorDefault<S.$Array<S.Struct<{
32
+ }, "Type">>, ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
33
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
34
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
35
+ Default: A;
36
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
37
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
38
+ };
39
+ Default: "repo";
40
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
41
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
42
+ };
43
+ readonly name: S.String;
44
+ }, "Type">>>, S.$Array<S.Struct<{
45
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
46
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
47
+ Default: A;
48
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
49
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
50
+ };
51
+ Default: "repo";
52
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
53
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
54
+ };
55
+ readonly name: S.String;
56
+ }>>, never, never> & {
57
+ withConstructorDefault: S.withConstructorDefault<S.decodeTo<S.instanceOf<ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
58
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
59
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
60
+ Default: A;
61
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
62
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
63
+ };
64
+ Default: "repo";
65
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
66
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
67
+ };
68
+ readonly name: S.String;
69
+ }, "Type">>, ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
33
70
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
34
71
  changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
35
72
  Default: A;
@@ -41,8 +78,7 @@ export declare const DataDependencies: S.$Array<S.Struct<{
41
78
  withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
42
79
  };
43
80
  readonly name: S.String;
44
- }>>>;
45
- withDecodingDefaultType: S.withDecodingDefaultType<S.$Array<S.Struct<{
81
+ }, "Type">>>, S.$Array<S.Struct<{
46
82
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
47
83
  changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
48
84
  Default: A;
@@ -54,11 +90,49 @@ export declare const DataDependencies: S.$Array<S.Struct<{
54
90
  withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
55
91
  };
56
92
  readonly name: S.String;
57
- }>>, never>;
93
+ }>>, never, never>>;
94
+ withDecodingDefaultType: S.withDecodingDefaultType<S.decodeTo<S.instanceOf<ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
95
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
96
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
97
+ Default: A;
98
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
99
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
100
+ };
101
+ Default: "repo";
102
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
103
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
104
+ };
105
+ readonly name: S.String;
106
+ }, "Type">>, ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
107
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
108
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
109
+ Default: A;
110
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
111
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
112
+ };
113
+ Default: "repo";
114
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
115
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
116
+ };
117
+ readonly name: S.String;
118
+ }, "Type">>>, S.$Array<S.Struct<{
119
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
120
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
121
+ Default: A;
122
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
123
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
124
+ };
125
+ Default: "repo";
126
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
127
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
128
+ };
129
+ readonly name: S.String;
130
+ }>>, never, never>, never>;
58
131
  };
59
132
  export type DataDependencies = S.Schema.Type<typeof DataDependencies>;
133
+ export declare const empty: () => DataDependencies;
60
134
  export declare const DataDependencySet: S.Struct<{
61
- readonly reads: S.$Array<S.Struct<{
135
+ readonly reads: S.decodeTo<S.instanceOf<ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
62
136
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
63
137
  changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
64
138
  Default: A;
@@ -70,8 +144,44 @@ export declare const DataDependencySet: S.Struct<{
70
144
  withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
71
145
  };
72
146
  readonly name: S.String;
73
- }>> & {
74
- withConstructorDefault: S.withConstructorDefault<S.$Array<S.Struct<{
147
+ }, "Type">>, ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
148
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
149
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
150
+ Default: A;
151
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
152
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
153
+ };
154
+ Default: "repo";
155
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
156
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
157
+ };
158
+ readonly name: S.String;
159
+ }, "Type">>>, S.$Array<S.Struct<{
160
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
161
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
162
+ Default: A;
163
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
164
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
165
+ };
166
+ Default: "repo";
167
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
168
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
169
+ };
170
+ readonly name: S.String;
171
+ }>>, never, never> & {
172
+ withConstructorDefault: S.withConstructorDefault<S.decodeTo<S.instanceOf<ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
173
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
174
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
175
+ Default: A;
176
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
177
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
178
+ };
179
+ Default: "repo";
180
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
181
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
182
+ };
183
+ readonly name: S.String;
184
+ }, "Type">>, ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
75
185
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
76
186
  changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
77
187
  Default: A;
@@ -83,8 +193,7 @@ export declare const DataDependencySet: S.Struct<{
83
193
  withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
84
194
  };
85
195
  readonly name: S.String;
86
- }>>>;
87
- withDecodingDefaultType: S.withDecodingDefaultType<S.$Array<S.Struct<{
196
+ }, "Type">>>, S.$Array<S.Struct<{
88
197
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
89
198
  changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
90
199
  Default: A;
@@ -96,9 +205,46 @@ export declare const DataDependencySet: S.Struct<{
96
205
  withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
97
206
  };
98
207
  readonly name: S.String;
99
- }>>, never>;
208
+ }>>, never, never>>;
209
+ withDecodingDefaultType: S.withDecodingDefaultType<S.decodeTo<S.instanceOf<ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
210
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
211
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
212
+ Default: A;
213
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
214
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
215
+ };
216
+ Default: "repo";
217
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
218
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
219
+ };
220
+ readonly name: S.String;
221
+ }, "Type">>, ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
222
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
223
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
224
+ Default: A;
225
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
226
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
227
+ };
228
+ Default: "repo";
229
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
230
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
231
+ };
232
+ readonly name: S.String;
233
+ }, "Type">>>, S.$Array<S.Struct<{
234
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
235
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
236
+ Default: A;
237
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
238
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
239
+ };
240
+ Default: "repo";
241
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
242
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
243
+ };
244
+ readonly name: S.String;
245
+ }>>, never, never>, never>;
100
246
  };
101
- readonly writes: S.$Array<S.Struct<{
247
+ readonly writes: S.decodeTo<S.instanceOf<ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
102
248
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
103
249
  changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
104
250
  Default: A;
@@ -110,8 +256,81 @@ export declare const DataDependencySet: S.Struct<{
110
256
  withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
111
257
  };
112
258
  readonly name: S.String;
113
- }>> & {
114
- withConstructorDefault: S.withConstructorDefault<S.$Array<S.Struct<{
259
+ }, "Type">>, ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
260
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
261
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
262
+ Default: A;
263
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
264
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
265
+ };
266
+ Default: "repo";
267
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
268
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
269
+ };
270
+ readonly name: S.String;
271
+ }, "Type">>>, S.$Array<S.Struct<{
272
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
273
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
274
+ Default: A;
275
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
276
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
277
+ };
278
+ Default: "repo";
279
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
280
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
281
+ };
282
+ readonly name: S.String;
283
+ }>>, never, never> & {
284
+ withConstructorDefault: S.withConstructorDefault<S.decodeTo<S.instanceOf<ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
285
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
286
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
287
+ Default: A;
288
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
289
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
290
+ };
291
+ Default: "repo";
292
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
293
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
294
+ };
295
+ readonly name: S.String;
296
+ }, "Type">>, ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
297
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
298
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
299
+ Default: A;
300
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
301
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
302
+ };
303
+ Default: "repo";
304
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
305
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
306
+ };
307
+ readonly name: S.String;
308
+ }, "Type">>>, S.$Array<S.Struct<{
309
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
310
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
311
+ Default: A;
312
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
313
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
314
+ };
315
+ Default: "repo";
316
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
317
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
318
+ };
319
+ readonly name: S.String;
320
+ }>>, never, never>>;
321
+ withDecodingDefaultType: S.withDecodingDefaultType<S.decodeTo<S.instanceOf<ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
322
+ readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
323
+ changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
324
+ Default: A;
325
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
326
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
327
+ };
328
+ Default: "repo";
329
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Literals<readonly ["repo", "signal"]>>;
330
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
331
+ };
332
+ readonly name: S.String;
333
+ }, "Type">>, ReadonlySet<import("effect/Schema").Struct.ReadonlySide<{
115
334
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
116
335
  changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
117
336
  Default: A;
@@ -123,8 +342,7 @@ export declare const DataDependencySet: S.Struct<{
123
342
  withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
124
343
  };
125
344
  readonly name: S.String;
126
- }>>>;
127
- withDecodingDefaultType: S.withDecodingDefaultType<S.$Array<S.Struct<{
345
+ }, "Type">>>, S.$Array<S.Struct<{
128
346
  readonly type: import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
129
347
  changeDefault: <A extends "repo" | "signal">(a: A) => import("effect/Schema").Literals<readonly ["repo", "signal"]> & {
130
348
  Default: A;
@@ -136,7 +354,7 @@ export declare const DataDependencySet: S.Struct<{
136
354
  withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Literals<readonly ["repo", "signal"]>, never>;
137
355
  };
138
356
  readonly name: S.String;
139
- }>>, never>;
357
+ }>>, never, never>, never>;
140
358
  };
141
359
  }>;
142
360
  export type DataDependencySet = S.Schema.Type<typeof DataDependencySet>;
@@ -147,13 +365,24 @@ export interface DataDependencyRecorderService {
147
365
  readonly drain: Effect.Effect<DataDependencySet>;
148
366
  readonly drainWrites: Effect.Effect<DataDependencies>;
149
367
  }
150
- export declare const DataDependencyRecorder: Context.Reference<DataDependencyRecorderService>;
368
+ export declare const DataDependencyRecorder: RequestScopedDependencies.RequestScopedDependency<DataDependencyRecorderService, never, never>;
151
369
  export type DataDependencyRecorder = typeof DataDependencyRecorder;
370
+ export type DataDependencyRecorderNotStartedError = RequestScopedDependencies.RequestScopedDependencyNotStartedError;
371
+ export declare const getDataDependencyRecorder: Effect.Effect<DataDependencyRecorderService, RequestScopedDependencies.RequestScopedDependencyNotStartedError, never>;
372
+ /**
373
+ * Guarantee a recorder is in scope for `self`, providing a fresh one per request when none is
374
+ * (e.g. a top-level client call with no parent query/command tracking its dependencies). An
375
+ * existing recorder is inherited, so nested calls forward into their parent rather than shadow it.
376
+ */
377
+ export declare const ensureDataDependencyRecorder: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
378
+ /** Stream variant of {@link ensureDataDependencyRecorder}. */
379
+ export declare const ensureDataDependencyRecorderStream: <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>;
152
380
  export declare const makeDataDependencyRecorder: (readsRef: Ref.Ref<DataDependencies>, writesRef: Ref.Ref<DataDependencies>) => DataDependencyRecorderService;
153
381
  export declare const repo: (name: string) => DataDependency;
154
382
  export declare const signal: (name: string) => DataDependency;
155
383
  export declare const QueryReadDependenciesMetaKey = "effect-app.query.readDependencies";
156
- export declare const read: (dependency: DataDependency) => Effect.Effect<void, never, never>;
157
- export declare const write: (dependency: DataDependency) => Effect.Effect<void, never, never>;
158
- export declare const intersects: (a: ReadonlyArray<DataDependency>, b: ReadonlyArray<DataDependency>) => boolean;
384
+ export declare const read: (dependency: DataDependency) => Effect.Effect<void, RequestScopedDependencies.RequestScopedDependencyNotStartedError, never>;
385
+ export declare const write: (dependency: DataDependency) => Effect.Effect<void, RequestScopedDependencies.RequestScopedDependencyNotStartedError, never>;
386
+ export declare const intersects: (a: ReadonlySet<DataDependency>, b: ReadonlySet<DataDependency>) => boolean;
387
+ export declare const isNonEmpty: (dependencies: DataDependencies) => boolean;
159
388
  //# sourceMappingURL=DataDependencies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataDependencies.d.ts","sourceRoot":"","sources":["../src/DataDependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,YAAY,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,CAAC,MAAM,aAAa,CAAA;AAEhC,eAAO,MAAM,cAAc;;;;;;;;;;;;EAGzB,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,cAAc,CAAC,CAAA;AAEjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0B,CAAA;AACvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAErE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEvE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClE,QAAQ,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;CACtD;AAQD,eAAO,MAAM,sBAAsB,kDAWlC,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,eAAO,MAAM,0BAA0B,aAC3B,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,aACxB,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,KACnC,6BAYD,CAAA;AAEF,eAAO,MAAM,IAAI,SAAU,MAAM,KAAG,cAA0C,CAAA;AAC9E,eAAO,MAAM,MAAM,SAAU,MAAM,KAAG,cAA4C,CAAA;AAElF,eAAO,MAAM,4BAA4B,sCAAsC,CAAA;AAE/E,eAAO,MAAM,IAAI,eAAgB,cAAc,sCAA0D,CAAA;AAEzG,eAAO,MAAM,KAAK,eAAgB,cAAc,sCAA2D,CAAA;AAE3G,eAAO,MAAM,UAAU,MAClB,aAAa,CAAC,cAAc,CAAC,KAC7B,aAAa,CAAC,cAAc,CAAC,YAC4B,CAAA"}
1
+ {"version":3,"file":"DataDependencies.d.ts","sourceRoot":"","sources":["../src/DataDependencies.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,40 @@
1
1
  import * as Ref from "effect/Ref";
2
- import * as Context from "./Context.js";
2
+ import * as Stream from "effect/Stream";
3
3
  import * as Effect from "./Effect.js";
4
+ import * as RequestScopedDependencies from "./RequestScopedDependencies.js";
4
5
  import * as S from "./Schema.js";
5
6
  export const DataDependency = S.Struct({
6
7
  type: S.Literals(["repo", "signal"]),
7
8
  name: S.String
8
9
  });
9
- export const DataDependencies = S.Array(DataDependency);
10
+ export const DataDependencies = S.ReadonlySet(DataDependency);
11
+ export const empty = () => new Set();
10
12
  export const DataDependencySet = S.Struct({
11
13
  reads: DataDependencies,
12
14
  writes: DataDependencies
13
15
  });
14
- const containsDependency = (dependencies, dependency) => dependencies.some((_) => _.type === dependency.type && _.name === dependency.name);
15
- const appendDependency = (dependency) => (dependencies) => containsDependency(dependencies, dependency) ? dependencies : [...dependencies, dependency];
16
- export const DataDependencyRecorder = Context.Reference("effect-app/DataDependencyRecorder", {
17
- defaultValue: () => ({
18
- read: (_dependency) => Effect.void,
19
- write: (_dependency) => Effect.void,
20
- get: Effect.succeed({ reads: [], writes: [] }),
21
- drain: Effect.succeed({ reads: [], writes: [] }),
22
- drainWrites: Effect.succeed([])
23
- })
24
- });
16
+ const containsDependency = (dependencies, dependency) => {
17
+ for (const _ of dependencies) {
18
+ if (_.type === dependency.type && _.name === dependency.name)
19
+ return true;
20
+ }
21
+ return false;
22
+ };
23
+ const appendDependency = (dependency) => (dependencies) => containsDependency(dependencies, dependency) ? dependencies : new Set([...dependencies, dependency]);
24
+ export const DataDependencyRecorder = RequestScopedDependencies.make("effect-app/DataDependencyRecorder", Effect.gen(function* () {
25
+ const readsRef = yield* Ref.make(empty());
26
+ const writesRef = yield* Ref.make(empty());
27
+ return makeDataDependencyRecorder(readsRef, writesRef);
28
+ }));
29
+ export const getDataDependencyRecorder = DataDependencyRecorder.current;
30
+ /**
31
+ * Guarantee a recorder is in scope for `self`, providing a fresh one per request when none is
32
+ * (e.g. a top-level client call with no parent query/command tracking its dependencies). An
33
+ * existing recorder is inherited, so nested calls forward into their parent rather than shadow it.
34
+ */
35
+ export const ensureDataDependencyRecorder = (self) => Effect.flatMap(DataDependencyRecorder, (current) => current === "root" ? Effect.provide(self, DataDependencyRecorder.layer) : self);
36
+ /** Stream variant of {@link ensureDataDependencyRecorder}. */
37
+ export const ensureDataDependencyRecorderStream = (self) => Stream.unwrap(Effect.map(DataDependencyRecorder, (current) => current === "root" ? Stream.provide(self, DataDependencyRecorder.layer) : self));
25
38
  export const makeDataDependencyRecorder = (readsRef, writesRef) => ({
26
39
  read: (dependency) => Ref.update(readsRef, appendDependency(dependency)),
27
40
  write: (dependency) => Ref.update(writesRef, appendDependency(dependency)),
@@ -30,15 +43,22 @@ export const makeDataDependencyRecorder = (readsRef, writesRef) => ({
30
43
  writes: Ref.get(writesRef)
31
44
  }),
32
45
  drain: Effect.all({
33
- reads: Ref.getAndSet(readsRef, []),
34
- writes: Ref.getAndSet(writesRef, [])
46
+ reads: Ref.getAndSet(readsRef, empty()),
47
+ writes: Ref.getAndSet(writesRef, empty())
35
48
  }),
36
- drainWrites: Ref.getAndSet(writesRef, [])
49
+ drainWrites: Ref.getAndSet(writesRef, empty())
37
50
  });
38
51
  export const repo = (name) => ({ type: "repo", name });
39
52
  export const signal = (name) => ({ type: "signal", name });
40
53
  export const QueryReadDependenciesMetaKey = "effect-app.query.readDependencies";
41
- export const read = (dependency) => DataDependencyRecorder.use((_) => _.read(dependency));
42
- export const write = (dependency) => DataDependencyRecorder.use((_) => _.write(dependency));
43
- export const intersects = (a, b) => a.some((dependency) => containsDependency(b, dependency));
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YURlcGVuZGVuY2llcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9EYXRhRGVwZW5kZW5jaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFBO0FBQ2pDLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxDQUFDLE1BQU0sYUFBYSxDQUFBO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3JDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtDQUNmLENBQUMsQ0FBQTtBQUdGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7QUFHdkQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0I7Q0FDekIsQ0FBQyxDQUFBO0FBV0YsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFlBQTJDLEVBQUUsVUFBMEIsRUFBRSxFQUFFLENBQ3JHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUVwRixNQUFNLGdCQUFnQixHQUFHLENBQUMsVUFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUE4QixFQUFvQixFQUFFLENBQzVHLGtCQUFrQixDQUFDLFlBQVksRUFBRSxV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
54
+ export const read = (dependency) => getDataDependencyRecorder.pipe(Effect.flatMap((_) => _.read(dependency)));
55
+ export const write = (dependency) => getDataDependencyRecorder.pipe(Effect.flatMap((_) => _.write(dependency)));
56
+ export const intersects = (a, b) => {
57
+ for (const dependency of a) {
58
+ if (containsDependency(b, dependency))
59
+ return true;
60
+ }
61
+ return false;
62
+ };
63
+ export const isNonEmpty = (dependencies) => dependencies.size > 0;
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YURlcGVuZGVuY2llcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9EYXRhRGVwZW5kZW5jaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFBO0FBQ2pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ3JDLE9BQU8sS0FBSyx5QkFBeUIsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMzRSxPQUFPLEtBQUssQ0FBQyxNQUFNLGFBQWEsQ0FBQTtBQUVoQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNwQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU07Q0FDZixDQUFDLENBQUE7QUFHRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRzdELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxHQUFxQixFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQTtBQUV0RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3hDLEtBQUssRUFBRSxnQkFBZ0I7SUFDdkIsTUFBTSxFQUFFLGdCQUFnQjtDQUN6QixDQUFDLENBQUE7QUFXRixNQUFNLGtCQUFrQixHQUFHLENBQUMsWUFBeUMsRUFBRSxVQUEwQixFQUFFLEVBQUU7SUFDbkcsS0FBSyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxJQUFJO1lB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
@@ -0,0 +1,21 @@
1
+ import type * as Scope from "effect/Scope";
2
+ import * as Context from "./Context.js";
3
+ import * as Effect from "./Effect.js";
4
+ import * as Layer from "./Layer.js";
5
+ export type Root = "root";
6
+ declare const RequestScopedDependencyNotStartedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
7
+ readonly _tag: "RequestScopedDependencyNotStartedError";
8
+ } & Readonly<A>;
9
+ export declare class RequestScopedDependencyNotStartedError extends RequestScopedDependencyNotStartedError_base<{
10
+ readonly key: string;
11
+ }> {
12
+ }
13
+ export interface RequestScopedDependency<Service, E = never, R = never> extends Context.Reference<Service | Root> {
14
+ readonly current: Effect.Effect<Service, RequestScopedDependencyNotStartedError>;
15
+ readonly layer: Layer.Layer<never, E, R>;
16
+ }
17
+ export declare const access: <Service>(dependency: Context.Reference<Service | Root>, key: string) => Effect.Effect<Service, RequestScopedDependencyNotStartedError>;
18
+ export declare const make: <Service, E = never, R = never>(key: string, service: Effect.Effect<Service, E, R>) => RequestScopedDependency<Service, E, Exclude<R, Scope.Scope>>;
19
+ export declare const layer: <Deps extends readonly [RequestScopedDependency<any, any, any>, ...Array<RequestScopedDependency<any, any, any>>]>(...dependencies: Deps) => Layer.Layer<never, { [K in keyof Deps]: Deps[K] extends RequestScopedDependency<any, infer E, any> ? E : never; }[number], { [K in keyof Deps]: Deps[K] extends RequestScopedDependency<any, any, infer R> ? R : never; }[number]>;
20
+ export {};
21
+ //# sourceMappingURL=RequestScopedDependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestScopedDependencies.d.ts","sourceRoot":"","sources":["../src/RequestScopedDependencies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,MAAM,MAAM,IAAI,GAAG,MAAM,CAAA;;;;AAEzB,qBAAa,sCAAuC,SAAQ,4CAE1D;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;CAAG;AAE9B,MAAM,WAAW,uBAAuB,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAE,SAAQ,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;IAC/G,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAA;IAChF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACzC;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,cAChB,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,OACxC,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,sCAAsC,CAG7D,CAAA;AAEH,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,OAC3C,MAAM,WACF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,KACpC,uBAAuB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAM7D,CAAA;AAED,eAAO,MAAM,KAAK,GAChB,IAAI,SAAS,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,mBAE/F,IAAI,KACpB,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAE,CAAC,MAAM,CAAC,EACrG,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAE,CAAC,MAAM,CAAC,CACnB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import * as Data from "effect/Data";
2
+ import * as Context from "./Context.js";
3
+ import * as Effect from "./Effect.js";
4
+ import * as Layer from "./Layer.js";
5
+ export class RequestScopedDependencyNotStartedError extends Data.TaggedError("RequestScopedDependencyNotStartedError") {
6
+ }
7
+ export const access = (dependency, key) => dependency.pipe(Effect.filterOrFail((_) => _ !== "root", () => new RequestScopedDependencyNotStartedError({ key })));
8
+ export const make = (key, service) => {
9
+ const dependency = Context.Reference(key, { defaultValue: () => "root" });
10
+ return Object.assign(dependency, {
11
+ current: access(dependency, key),
12
+ layer: Layer.effect(dependency, service)
13
+ });
14
+ };
15
+ export const layer = (...dependencies) => dependencies.map((_) => _.layer).reduce((acc, l) => Layer.merge(acc, l));
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdFNjb3BlZERlcGVuZGVuY2llcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9SZXF1ZXN0U2NvcGVkRGVwZW5kZW5jaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sYUFBYSxDQUFBO0FBRW5DLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBSW5DLE1BQU0sT0FBTyxzQ0FBdUMsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUMxRSx3Q0FBd0MsQ0FDZjtDQUFHO0FBTzlCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUNwQixVQUE2QyxFQUM3QyxHQUFXLEVBQ3FELEVBQUUsQ0FDbEUsVUFBVSxDQUFDLElBQUksQ0FDYixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFnQixFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLHNDQUFzQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUNsSCxDQUFBO0FBRUgsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQ2xCLEdBQVcsRUFDWCxPQUFxQyxFQUN5QixFQUFFO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQWlCLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ3pGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7UUFDL0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO1FBQ2hDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUM7S0FDekMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBR25CLEdBQUcsWUFBa0IsRUFLckIsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBUSxDQUFBIn0=
package/dist/Store.d.ts CHANGED
@@ -3,12 +3,12 @@ import type { NonEmptyReadonlyArray } from "./Array.js";
3
3
  import type { DatabaseError, OptimisticConcurrencyException } from "./client/errors.js";
4
4
  import * as Context from "./Context.js";
5
5
  import * as Effect from "./Effect.js";
6
- import * as Layer from "./Layer.js";
7
6
  import type { FilterResult } from "./Model/filter/filterApi.js";
8
7
  import type { FieldValues } from "./Model/filter/types.js";
9
8
  import type { FieldPath } from "./Model/filter/types/path/index.js";
10
9
  import type { AggregateIrExpression, ComputedProjectionIrExpression, RawQuery } from "./Model/query.js";
11
10
  import type * as Option from "./Option.js";
11
+ import * as RequestScopedDependencies from "./RequestScopedDependencies.js";
12
12
  import { NonEmptyString255 } from "./Schema.js";
13
13
  /**
14
14
  * Adapter-neutral unique-key definition for stores that support unique indexes,
@@ -137,16 +137,9 @@ declare const ContextMap_base: Context.OpaqueClass<ContextMap, "effect-app/Conte
137
137
  };
138
138
  export declare class ContextMap extends ContextMap_base {
139
139
  }
140
- declare const ContextMapContainer_base: Context.Reference<"root" | ContextMap>;
141
- export declare class ContextMapContainer extends ContextMapContainer_base {
142
- static readonly layer: Layer.Layer<never, never, never>;
143
- }
144
- declare const ContextMapNotStartedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
145
- readonly _tag: "ContextMapNotStartedError";
146
- } & Readonly<A>;
147
- export declare class ContextMapNotStartedError extends ContextMapNotStartedError_base {
148
- }
149
- export declare const getContextMap: Effect.Effect<ContextMap, ContextMapNotStartedError, never>;
140
+ export declare const ContextMapContainer: RequestScopedDependencies.RequestScopedDependency<ContextMap, never, never>;
141
+ export type ContextMapNotStartedError = RequestScopedDependencies.RequestScopedDependencyNotStartedError;
142
+ export declare const getContextMap: Effect.Effect<ContextMap, RequestScopedDependencies.RequestScopedDependencyNotStartedError, never>;
150
143
  /**
151
144
  * Runs `make` at most once per ContextMap (i.e. per request) and caches the
152
145
  * resulting value in the ContextMap under a fresh symbol. Subsequent calls of