effect-lens 0.1.5 → 0.2.1

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/dist/Lens.js CHANGED
@@ -1,77 +1,168 @@
1
- import { Array, Chunk, Effect, Function, Option, Pipeable, Predicate, Readable, Stream } from "effect";
1
+ import { Array, Chunk, Effect, Function, identity, Option, Pipeable, Predicate, PubSub, Readable, Ref, Stream } from "effect";
2
2
  import * as Subscribable from "./Subscribable.js";
3
3
  export const LensTypeId = Symbol.for("@effect-fc/Lens/Lens");
4
4
  /**
5
- * Internal `Lens` implementation.
5
+ * Checks whether a value is a `Lens`.
6
6
  */
7
+ export const isLens = (u) => Predicate.hasProperty(u, LensTypeId);
8
+ export const LensImplTypeId = Symbol.for("@effect-fc/Lens/LensImpl");
7
9
  export class LensImpl extends Pipeable.Class() {
8
- get;
9
- changes;
10
- modify;
11
10
  [Readable.TypeId] = Readable.TypeId;
12
11
  [Subscribable.TypeId] = Subscribable.TypeId;
13
12
  [LensTypeId] = LensTypeId;
14
- constructor(get, changes, modify) {
13
+ [LensImplTypeId] = LensImplTypeId;
14
+ get get() { return Effect.map(this.resolve, resolved => resolved.value); }
15
+ modifyEffect(f) {
16
+ return Effect.flatMap(this.lock, lock => lock(Effect.flatMap(this.resolve, resolved => Effect.flatMap(f(resolved.value), ([c, next]) => Effect.as(resolved.commit(Effect.succeed(next)), c)))));
17
+ }
18
+ }
19
+ export const isLensImpl = (u) => Predicate.hasProperty(u, LensImplTypeId);
20
+ export const asLensImpl = (lens) => {
21
+ if (!isLensImpl(lens))
22
+ throw new Error("Not a 'LensImpl'");
23
+ return lens;
24
+ };
25
+ export const asSubscribable = (lens) => lens;
26
+ export class LensLazyImpl extends LensImpl {
27
+ source;
28
+ constructor(source) {
15
29
  super();
16
- this.get = get;
17
- this.changes = changes;
18
- this.modify = modify;
30
+ this.source = source;
31
+ }
32
+ get resolve() {
33
+ return Effect.map(this.source.get, value => ({
34
+ value,
35
+ commit: next => Effect.flatMap(next, value => this.source.commit(value)),
36
+ }));
19
37
  }
38
+ get changes() { return this.source.changes; }
39
+ get lock() { return this.source.lock; }
20
40
  }
21
41
  /**
22
- * Checks whether a value is a `Lens`.
42
+ * Creates a `Lens` by supplying how to read the current value, observe changes, and apply transformations.
23
43
  */
24
- export const isLens = (u) => Predicate.hasProperty(u, LensTypeId);
44
+ export const make = (source) => new LensLazyImpl(source);
45
+ export class UnwrappedLensImpl extends LensImpl {
46
+ effect;
47
+ constructor(effect) {
48
+ super();
49
+ this.effect = effect;
50
+ }
51
+ get resolve() {
52
+ return Effect.map(Effect.flatMap(this.effect, l => asLensImpl(l).resolve), resolved => ({
53
+ value: resolved.value,
54
+ commit: next => resolved.commit(next),
55
+ }));
56
+ }
57
+ get changes() { return Stream.unwrap(Effect.map(this.effect, l => l.changes)); }
58
+ get lock() { return Effect.flatMap(this.effect, l => asLensImpl(l).lock); }
59
+ }
25
60
  /**
26
- * Creates a `Lens` by supplying how to read the current value, observe changes, and apply transformations.
27
- *
28
- * Either `modify` or `set` needs to be supplied.
61
+ * Flattens an effectful `Lens`.
29
62
  */
30
- export const make = (options) => new LensImpl(options.get, options.changes, Predicate.hasProperty(options, "modify")
31
- ? options.modify
32
- : (f) => Effect.flatMap(options.get, a => Effect.flatMap(f(a), ([b, next]) => Effect.as(options.set(next), b))));
63
+ export const unwrap = (effect) => new UnwrappedLensImpl(effect);
64
+ export class RefLensImpl extends LensImpl {
65
+ ref;
66
+ semaphore;
67
+ constructor(ref, semaphore) {
68
+ super();
69
+ this.ref = ref;
70
+ this.semaphore = semaphore;
71
+ }
72
+ get resolve() {
73
+ return Effect.map(Ref.get(this.ref), value => ({
74
+ value,
75
+ commit: next => Effect.flatMap(next, value => Ref.set(this.ref, value)),
76
+ }));
77
+ }
78
+ get changes() { return Stream.unwrap(Effect.map(Ref.get(this.ref), Stream.make)); }
79
+ get lock() { return Effect.succeed(this.semaphore.withPermits(1)); }
80
+ }
33
81
  /**
34
- * Creates a `Lens` that proxies a `SubscriptionRef`.
82
+ * Creates a `Lens` that proxies a `Ref`.
83
+ *
84
+ * Note: since `Ref` does not provide any kind of reactivity mechanism, the produced `Lens` will be non-reactive.
85
+ * This means its `changes` stream will only emit the current value once when evaluated and nothing else.
35
86
  */
36
- export const fromSubscriptionRef = (ref) => make({
37
- get get() { return ref.get; },
38
- get changes() { return ref.changes; },
39
- modify: (f) => ref.modifyEffect(f),
40
- });
87
+ export const fromRef = (ref) => Effect.map(Effect.makeSemaphore(1), semaphore => new RefLensImpl(ref, semaphore));
88
+ export class SynchronizedRefLensImpl extends LensImpl {
89
+ ref;
90
+ constructor(ref) {
91
+ super();
92
+ this.ref = ref;
93
+ }
94
+ get resolve() {
95
+ return Effect.map(Ref.get(this.ref.ref), value => ({
96
+ value,
97
+ commit: next => Effect.flatMap(next, value => Ref.set(this.ref.ref, value)),
98
+ }));
99
+ }
100
+ get changes() { return Stream.unwrap(Effect.map(Ref.get(this.ref.ref), Stream.make)); }
101
+ get lock() { return Effect.succeed(this.ref.withLock); }
102
+ }
41
103
  /**
42
104
  * Creates a `Lens` that proxies a `SynchronizedRef`.
43
105
  *
44
106
  * Note: since `SynchronizedRef` does not provide any kind of reactivity mechanism, the produced `Lens` will be non-reactive.
45
107
  * This means its `changes` stream will only emit the current value once when evaluated and nothing else.
46
108
  */
47
- export const fromSynchronizedRef = (ref) => make({
48
- get get() { return ref.get; },
49
- get changes() { return Stream.unwrap(Effect.map(ref.get, Stream.make)); },
50
- modify: (f) => ref.modifyEffect(f),
51
- });
109
+ export const fromSynchronizedRef = (ref) => new SynchronizedRefLensImpl(ref);
110
+ export class SubscriptionRefLensImpl extends LensImpl {
111
+ ref;
112
+ constructor(ref) {
113
+ super();
114
+ this.ref = ref;
115
+ }
116
+ get resolve() {
117
+ return Effect.map(this.ref.get, value => ({
118
+ value,
119
+ commit: next => Effect.flatMap(next, value => Effect.zipLeft(Ref.set(this.ref.ref, value), PubSub.publish(this.ref.pubsub, value))),
120
+ }));
121
+ }
122
+ get changes() { return this.ref.changes; }
123
+ get lock() { return Effect.succeed(this.ref.semaphore.withPermits(1)); }
124
+ }
52
125
  /**
53
- * Flattens an effectful `Lens`.
126
+ * Creates a `Lens` that proxies a `SubscriptionRef`.
54
127
  */
55
- export const unwrap = (effect) => make({
56
- get: Effect.flatMap(effect, l => l.get),
57
- changes: Stream.unwrap(Effect.map(effect, l => l.changes)),
58
- modify: (f) => Effect.flatMap(effect, l => l.modify(f)),
59
- });
128
+ export const fromSubscriptionRef = (ref) => new SubscriptionRefLensImpl(ref);
129
+ export class DerivedLensImpl extends LensImpl {
130
+ parent;
131
+ source;
132
+ constructor(parent, source) {
133
+ super();
134
+ this.parent = parent;
135
+ this.source = source;
136
+ }
137
+ get resolve() { return this.source.resolve(this.parent.resolve); }
138
+ get changes() { return this.source.mapStream(this.parent.changes); }
139
+ get lock() { return this.source.mapLock(this.parent.lock); }
140
+ }
141
+ /**
142
+ * Derives a new `Lens` by linking a step to an existing parent lens.
143
+ */
144
+ export const derive = Function.dual(2, (self, source) => new DerivedLensImpl(asLensImpl(self), source));
60
145
  /**
61
146
  * Derives a new `Lens` by applying synchronous getters and setters over the focused value.
62
147
  */
63
- export const map = Function.dual(3, (self, get, set) => make({
64
- get get() { return Effect.map(self.get, get); },
65
- get changes() { return Stream.map(self.changes, get); },
66
- modify: (f) => self.modify(a => Effect.flatMap(f(get(a)), ([c, next]) => Effect.succeed([c, set(a, next)]))),
148
+ export const map = Function.dual(3, (self, get, set) => derive(self, {
149
+ resolve: parent => Effect.map(parent, resolved => ({
150
+ value: get(resolved.value),
151
+ commit: next => resolved.commit(Effect.map(next, b => set(resolved.value, b))),
152
+ })),
153
+ mapStream: Stream.map(get),
154
+ mapLock: identity,
67
155
  }));
68
156
  /**
69
157
  * Derives a new `Lens` by applying effectful getters and setters over the focused value.
70
158
  */
71
- export const mapEffect = Function.dual(3, (self, get, set) => make({
72
- get get() { return Effect.flatMap(self.get, get); },
73
- get changes() { return Stream.mapEffect(self.changes, get); },
74
- modify: (f) => self.modify(a => Effect.flatMap(get(a), b => Effect.flatMap(f(b), ([c, bNext]) => Effect.flatMap(set(a, bNext), nextA => Effect.succeed([c, nextA]))))),
159
+ export const mapEffect = Function.dual(3, (self, get, set) => derive(self, {
160
+ resolve: parent => Effect.flatMap(parent, resolved => Effect.map(get(resolved.value), value => ({
161
+ value,
162
+ commit: next => resolved.commit(Effect.flatMap(next, b => set(resolved.value, b))),
163
+ }))),
164
+ mapStream: Stream.mapEffect(get),
165
+ mapLock: (identity),
75
166
  }));
76
167
  /**
77
168
  * Derives a new `Lens` by applying synchronous getters and setters over the value inside an `Option`.
@@ -104,10 +195,111 @@ export const mapOptionEffect = Function.dual(3, (self, get, set) => mapEffect(se
104
195
  /**
105
196
  * Allows transforming only the `changes` stream of a `Lens` while keeping the focus type intact.
106
197
  */
107
- export const mapStream = Function.dual(2, (self, f) => make({
108
- get get() { return self.get; },
109
- get changes() { return f(self.changes); },
110
- get modify() { return self.modify; },
198
+ export const mapStream = Function.dual(2, (self, f) => derive(self, {
199
+ resolve: identity,
200
+ mapStream: f,
201
+ mapLock: identity,
202
+ }));
203
+ /**
204
+ * Transforms read errors of a `Lens`.
205
+ *
206
+ * Applies to `get` and `changes` while leaving `modify` unchanged.
207
+ */
208
+ export const mapErrorRead = Function.dual(2, (self, f) => derive(self, {
209
+ resolve: Effect.mapError(f),
210
+ mapStream: Stream.mapError(f),
211
+ mapLock: identity,
212
+ }));
213
+ /**
214
+ * Transforms modify errors of a `Lens`.
215
+ *
216
+ * Applies to the commit/rebuild portion of `modifyEffect` while leaving failures from the
217
+ * user-supplied callback unchanged.
218
+ */
219
+ export const mapErrorWrite = Function.dual(2, (self, f) => derive(self, {
220
+ resolve: parent => Effect.map(parent, resolved => ({
221
+ value: resolved.value,
222
+ commit: next => Effect.flatMap(next, value => Effect.mapError(resolved.commit(Effect.succeed(value)), f)),
223
+ })),
224
+ mapStream: identity,
225
+ mapLock: Effect.mapError(f),
226
+ }));
227
+ /**
228
+ * Transforms all errors of a `Lens`.
229
+ *
230
+ * Applies to `get`, `changes`, and the commit/rebuild portion of `modifyEffect` while leaving
231
+ * failures from the user-supplied callback unchanged.
232
+ */
233
+ export const mapError = Function.dual(2, (self, f) => derive(self, {
234
+ resolve: parent => Effect.map(Effect.mapError(parent, f), resolved => ({
235
+ value: resolved.value,
236
+ commit: next => Effect.flatMap(next, value => Effect.mapError(resolved.commit(Effect.succeed(value)), f)),
237
+ })),
238
+ mapStream: Stream.mapError(f),
239
+ mapLock: Effect.mapError(f),
240
+ }));
241
+ /**
242
+ * Runs an effect when read failures occur.
243
+ *
244
+ * Applies to `get` and `changes` while leaving `modify` unchanged.
245
+ */
246
+ export const tapErrorRead = Function.dual(2, (self, f) => derive(self, {
247
+ resolve: Effect.tapError(f),
248
+ mapStream: Stream.tapError(f),
249
+ mapLock: identity,
250
+ }));
251
+ /**
252
+ * Runs an effect when modify failures occur.
253
+ *
254
+ * Applies to the commit/rebuild portion of `modifyEffect` while leaving failures from the
255
+ * user-supplied callback unchanged.
256
+ */
257
+ export const tapErrorWrite = Function.dual(2, (self, f) => derive(self, {
258
+ resolve: parent => Effect.map(parent, resolved => ({
259
+ value: resolved.value,
260
+ commit: next => Effect.flatMap(next, value => Effect.tapError(resolved.commit(Effect.succeed(value)), f)),
261
+ })),
262
+ mapStream: identity,
263
+ mapLock: Effect.tapError(f),
264
+ }));
265
+ /**
266
+ * Runs an effect when any `Lens` failure occurs.
267
+ *
268
+ * Applies to `get`, `changes`, and the commit/rebuild portion of `modifyEffect` while leaving
269
+ * failures from the user-supplied callback unchanged.
270
+ */
271
+ export const tapError = Function.dual(2, (self, f) => derive(self, {
272
+ resolve: parent => Effect.map(Effect.tapError(parent, f), resolved => ({
273
+ value: resolved.value,
274
+ commit: next => Effect.flatMap(next, value => Effect.tapError(resolved.commit(Effect.succeed(value)), f)),
275
+ })),
276
+ mapStream: Stream.tapError(f),
277
+ mapLock: Effect.tapError(f),
278
+ }));
279
+ /**
280
+ * Provides a `Context` to a `Lens`, removing it from both the read and write environments.
281
+ */
282
+ export const provideContext = Function.dual(2, (self, context) => derive(self, {
283
+ resolve: parent => Effect.map(Effect.provide(parent, context), resolved => ({
284
+ value: resolved.value,
285
+ commit: next => Effect.provide(resolved.commit(next), context),
286
+ })),
287
+ mapStream: Stream.provideSomeContext(context),
288
+ mapLock: Effect.provide(context),
289
+ }));
290
+ /**
291
+ * Provides a single service to a `Lens`, removing it from both the read and write environments.
292
+ *
293
+ * This is the `Lens` equivalent of `Effect.provideService`: use it when a lens requires one
294
+ * `Context.Tag` and you already have the concrete service value.
295
+ */
296
+ export const provideService = Function.dual(3, (self, tag, service) => derive(self, {
297
+ resolve: parent => Effect.map(Effect.provideService(parent, tag, service), resolved => ({
298
+ value: resolved.value,
299
+ commit: next => Effect.provideService(resolved.commit(next), tag, service),
300
+ })),
301
+ mapStream: Stream.provideService(tag, service),
302
+ mapLock: Effect.provideService(tag, service),
111
303
  }));
112
304
  /**
113
305
  * Narrows the focus to a field of an object. Replaces the object in an immutable fashion when written to.
@@ -137,47 +329,97 @@ export const focusMutableTupleAt = Function.dual(2, (self, index) => map(self, A
137
329
  * Narrows the focus to an indexed element of `Chunk`. Replaces the `Chunk` in an immutable fashion when written to.
138
330
  */
139
331
  export const focusChunkAt = Function.dual(2, (self, index) => mapEffect(self, Chunk.get(index), (a, b) => Effect.succeed(Chunk.replace(a, index, b))));
332
+ /**
333
+ * Narrows the focus to the value inside an `Option`.
334
+ *
335
+ * Reading or writing through this lens fails with `NoSuchElementException` when the parent option is `None`.
336
+ * Writing wraps the new focused value back into `Option.some`.
337
+ */
338
+ export const focusOption = (self) => mapEffect(self, identity, (a, b) => Effect.map(a, () => Option.some(b)));
140
339
  /**
141
340
  * Reads the current value from a `Lens`.
142
341
  */
143
342
  export const get = (self) => self.get;
343
+ /**
344
+ * Atomically modifies the value of a `Lens` and returns a computed result.
345
+ */
346
+ export const modify = Function.dual(2, (self, f) => self.modifyEffect(a => Effect.succeed(f(a))));
347
+ /**
348
+ * Atomically modifies the value of a `Lens` with an effect and returns a computed result.
349
+ */
350
+ export const modifyEffect = Function.dual(2, (self, f) => self.modifyEffect(f));
351
+ /**
352
+ * Conditionally modifies the value of a `Lens`, returning `fallback` when the function returns `None`.
353
+ */
354
+ export const modifySome = Function.dual(3, (self, fallback, pf) => self.modifyEffect(a => Effect.succeed(Option.getOrElse(pf(a), () => [fallback, a]))));
355
+ /**
356
+ * Conditionally modifies the value of a `Lens` with an effect, returning `fallback` when the function returns `None`.
357
+ */
358
+ export const modifySomeEffect = Function.dual(3, (self, fallback, pf) => self.modifyEffect(a => Option.getOrElse(pf(a), () => Effect.succeed([fallback, a]))));
144
359
  /**
145
360
  * Sets the value of a `Lens`.
146
361
  */
147
- export const set = Function.dual(2, (self, value) => self.modify(() => Effect.succeed([void 0, value])));
362
+ export const set = Function.dual(2, (self, value) => self.modifyEffect(() => Effect.succeed([void 0, value])));
148
363
  /**
149
364
  * Sets a `Lens` to a new value and returns the previous value.
150
365
  */
151
- export const getAndSet = Function.dual(2, (self, value) => self.modify(a => Effect.succeed([a, value])));
366
+ export const getAndSet = Function.dual(2, (self, value) => self.modifyEffect(a => Effect.succeed([a, value])));
152
367
  /**
153
368
  * Applies a synchronous transformation to the value of a `Lens`, discarding the previous value.
154
369
  */
155
- export const update = Function.dual(2, (self, f) => self.modify(a => Effect.succeed([void 0, f(a)])));
370
+ export const update = Function.dual(2, (self, f) => self.modifyEffect(a => Effect.succeed([void 0, f(a)])));
156
371
  /**
157
372
  * Applies an effectful transformation to the value of a `Lens`, discarding the previous value.
158
373
  */
159
- export const updateEffect = Function.dual(2, (self, f) => self.modify(a => Effect.flatMap(f(a), next => Effect.succeed([void 0, next]))));
374
+ export const updateEffect = Function.dual(2, (self, f) => self.modifyEffect(a => Effect.flatMap(f(a), next => Effect.succeed([void 0, next]))));
160
375
  /**
161
376
  * Applies a synchronous transformation the value of a `Lens` while returning the previous value.
162
377
  */
163
- export const getAndUpdate = Function.dual(2, (self, f) => self.modify(a => Effect.succeed([a, f(a)])));
378
+ export const getAndUpdate = Function.dual(2, (self, f) => self.modifyEffect(a => Effect.succeed([a, f(a)])));
164
379
  /**
165
380
  * Applies an effectful transformation the value of a `Lens` while returning the previous value.
166
381
  */
167
- export const getAndUpdateEffect = Function.dual(2, (self, f) => self.modify(a => Effect.flatMap(f(a), next => Effect.succeed([a, next]))));
382
+ export const getAndUpdateEffect = Function.dual(2, (self, f) => self.modifyEffect(a => Effect.flatMap(f(a), next => Effect.succeed([a, next]))));
383
+ /**
384
+ * Conditionally updates a `Lens` and returns the previous value.
385
+ */
386
+ export const getAndUpdateSome = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.succeed([a, Option.getOrElse(pf(a), () => a)])));
387
+ /**
388
+ * Conditionally updates a `Lens` with an effect and returns the previous value.
389
+ */
390
+ export const getAndUpdateSomeEffect = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.map(Option.getOrElse(pf(a), () => Effect.succeed(a)), next => [a, next])));
168
391
  /**
169
392
  * Sets the value of a `Lens` and returns the new value.
170
393
  */
171
- export const setAndGet = Function.dual(2, (self, value) => self.modify(() => Effect.succeed([value, value])));
394
+ export const setAndGet = Function.dual(2, (self, value) => self.modifyEffect(() => Effect.succeed([value, value])));
172
395
  /**
173
396
  * Applies a synchronous update the value of a `Lens` and returns the new value.
174
397
  */
175
- export const updateAndGet = Function.dual(2, (self, f) => self.modify(a => {
398
+ export const updateAndGet = Function.dual(2, (self, f) => self.modifyEffect(a => {
176
399
  const next = f(a);
177
400
  return Effect.succeed([next, next]);
178
401
  }));
179
402
  /**
180
403
  * Applies an effectful update to the value of a `Lens` and returns the new value.
181
404
  */
182
- export const updateAndGetEffect = Function.dual(2, (self, f) => self.modify(a => Effect.flatMap(f(a), next => Effect.succeed([next, next]))));
405
+ export const updateAndGetEffect = Function.dual(2, (self, f) => self.modifyEffect(a => Effect.flatMap(f(a), next => Effect.succeed([next, next]))));
406
+ /**
407
+ * Conditionally updates the value of a `Lens`.
408
+ */
409
+ export const updateSome = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.succeed([void 0, Option.getOrElse(pf(a), () => a)])));
410
+ /**
411
+ * Conditionally updates the value of a `Lens` with an effect.
412
+ */
413
+ export const updateSomeEffect = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.map(Option.getOrElse(pf(a), () => Effect.succeed(a)), next => [void 0, next])));
414
+ /**
415
+ * Conditionally updates a `Lens` and returns the resulting value.
416
+ */
417
+ export const updateSomeAndGet = Function.dual(2, (self, pf) => self.modifyEffect(a => {
418
+ const next = Option.getOrElse(pf(a), () => a);
419
+ return Effect.succeed([next, next]);
420
+ }));
421
+ /**
422
+ * Conditionally updates a `Lens` with an effect and returns the resulting value.
423
+ */
424
+ export const updateSomeAndGetEffect = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.map(Option.getOrElse(pf(a), () => Effect.succeed(a)), next => [next, next])));
183
425
  //# sourceMappingURL=Lens.js.map
package/dist/Lens.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Lens.js","sourceRoot":"","sources":["../src/Lens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Lens.js","sourceRoot":"","sources":["../src/Lens.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,108 @@
1
- import { Chunk, Effect, Option, Subscribable } from "effect";
1
+ import { type Cause, Chunk, Effect, type Either, Option, type Schedule, Subscribable } from "effect";
2
2
  import type { NoSuchElementException } from "effect/Cause";
3
3
  export * from "effect/Subscribable";
4
4
  /**
5
5
  * Maps over an `Option` value in the `Subscribable`.
6
6
  */
7
7
  export declare const mapOption: {
8
- <A, B, E, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>, f: (a: A) => B): Subscribable.Subscribable<Option.Option<B>, E, R>;
9
8
  <A, B>(f: (a: A) => B): <E, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>) => Subscribable.Subscribable<Option.Option<B>, E, R>;
9
+ <A, B, E, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>, f: (a: A) => B): Subscribable.Subscribable<Option.Option<B>, E, R>;
10
10
  };
11
11
  /**
12
12
  * Maps over an `Option` value in the `Subscribable` with an Effect.
13
13
  */
14
14
  export declare const mapOptionEffect: {
15
- <A, B, E, E2, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>, f: (a: A) => Effect.Effect<B, E2, R>): Subscribable.Subscribable<Option.Option<B>, E | E2, R>;
16
15
  <A, B, E2>(f: (a: A) => Effect.Effect<B, E2>): <E, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>) => Subscribable.Subscribable<Option.Option<B>, E | E2, R>;
16
+ <A, B, E, E2, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>, f: (a: A) => Effect.Effect<B, E2, R>): Subscribable.Subscribable<Option.Option<B>, E | E2, R>;
17
+ };
18
+ /**
19
+ * Maps errors from both the current value and the stream of changes.
20
+ */
21
+ export declare const mapError: {
22
+ <E, E2>(f: (error: NoInfer<E>) => E2): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E2, R>;
23
+ <A, E, R, E2>(self: Subscribable.Subscribable<A, E, R>, f: (error: NoInfer<E>) => E2): Subscribable.Subscribable<A, E2, R>;
24
+ };
25
+ /** Maps complete failure causes from both channels. */
26
+ export declare const mapErrorCause: {
27
+ <E, E2>(f: (cause: Cause.Cause<NoInfer<E>>) => Cause.Cause<E2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E2, R>;
28
+ <A, E, R, E2>(self: Subscribable.Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Cause.Cause<E2>): Subscribable.Subscribable<A, E2, R>;
17
29
  };
30
+ /**
31
+ * Runs an effect when either the current value or the stream of changes fails.
32
+ */
33
+ export declare const tapError: {
34
+ <E, B, E2, R2>(f: (error: NoInfer<E>) => Effect.Effect<B, E2, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E | E2, R | R2>;
35
+ <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, f: (error: NoInfer<E>) => Effect.Effect<B, E2, R2>): Subscribable.Subscribable<A, E | E2, R | R2>;
36
+ };
37
+ /** Recovers from typed errors with another `Subscribable`. */
38
+ export declare const catchAll: {
39
+ <E, B, E2, R2>(f: (error: NoInfer<E>) => Subscribable.Subscribable<B, E2, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A | B, E2, R | R2>;
40
+ <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, f: (error: NoInfer<E>) => Subscribable.Subscribable<B, E2, R2>): Subscribable.Subscribable<A | B, E2, R | R2>;
41
+ };
42
+ /** Recovers from all failure causes with another `Subscribable`. */
43
+ export declare const catchAllCause: {
44
+ <E, B, E2, R2>(f: (cause: Cause.Cause<NoInfer<E>>) => Subscribable.Subscribable<B, E2, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A | B, E2, R | R2>;
45
+ <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Subscribable.Subscribable<B, E2, R2>): Subscribable.Subscribable<A | B, E2, R | R2>;
46
+ };
47
+ /** Runs an effect when either channel fails, exposing the complete failure cause. */
48
+ export declare const tapErrorCause: {
49
+ <E, B, E2, R2>(f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<B, E2, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E | E2, R | R2>;
50
+ <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<B, E2, R2>): Subscribable.Subscribable<A, E | E2, R | R2>;
51
+ };
52
+ /** Falls back to another `Subscribable` when either channel fails. */
53
+ export declare const orElse: {
54
+ <B, E2, R2>(that: () => Subscribable.Subscribable<B, E2, R2>): <A, E, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A | B, E2, R | R2>;
55
+ <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, that: () => Subscribable.Subscribable<B, E2, R2>): Subscribable.Subscribable<A | B, E2, R | R2>;
56
+ };
57
+ /** Replaces typed errors from either channel with a lazily evaluated value. */
58
+ export declare const orElseSucceed: {
59
+ <B>(value: () => B): <A, E, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A | B, never, R>;
60
+ <A, E, R, B>(self: Subscribable.Subscribable<A, E, R>, value: () => B): Subscribable.Subscribable<A | B, never, R>;
61
+ };
62
+ /** Retries failures from both channels according to the supplied schedule. */
63
+ export declare const retry: {
64
+ <E, X, R2>(policy: Schedule.Schedule<X, NoInfer<E>, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E, R | R2>;
65
+ <A, E, R, X, R2>(self: Subscribable.Subscribable<A, E, R>, policy: Schedule.Schedule<X, NoInfer<E>, R2>): Subscribable.Subscribable<A, E, R | R2>;
66
+ };
67
+ /** Converts typed failures from both channels into `Either` values. */
68
+ export declare const either: <A, E, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<Either.Either<A, E>, never, R>;
18
69
  /**
19
70
  * Narrows the focus to a field of an object.
20
71
  */
21
72
  export declare const focusObjectOn: {
22
- <A extends object, K extends keyof A, E, R>(self: Subscribable.Subscribable<A, E, R>, key: K): Subscribable.Subscribable<A[K], E, R>;
23
73
  <A extends object, K extends keyof A, E, R>(key: K): (self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A[K], E, R>;
74
+ <A extends object, K extends keyof A, E, R>(self: Subscribable.Subscribable<A, E, R>, key: K): Subscribable.Subscribable<A[K], E, R>;
24
75
  };
25
76
  /**
26
77
  * Narrows the focus to an indexed element of an array.
27
78
  */
28
79
  export declare const focusArrayAt: {
29
- <A extends readonly any[], E, R>(self: Subscribable.Subscribable<A, E, R>, index: number): Subscribable.Subscribable<A[number], E, R>;
30
80
  <A extends readonly any[], E, R>(index: number): (self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A[number], E | NoSuchElementException, R>;
81
+ <A extends readonly any[], E, R>(self: Subscribable.Subscribable<A, E, R>, index: number): Subscribable.Subscribable<A[number], E, R>;
31
82
  };
83
+ /**
84
+ * Narrows the focus to the length of an array.
85
+ */
86
+ export declare const focusArrayLength: <A extends readonly any[], E, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<number, E, R>;
32
87
  /**
33
88
  * Narrows the focus to an indexed element of a readonly tuple.
34
89
  */
35
90
  export declare const focusTupleAt: {
36
- <T extends readonly [any, ...any[]], I extends number, E, R>(self: Subscribable.Subscribable<T, E, R>, index: I): Subscribable.Subscribable<T[I], E, R>;
37
91
  <T extends readonly [any, ...any[]], I extends number, E, R>(index: I): (self: Subscribable.Subscribable<T, E, R>) => Subscribable.Subscribable<T[I], E, R>;
92
+ <T extends readonly [any, ...any[]], I extends number, E, R>(self: Subscribable.Subscribable<T, E, R>, index: I): Subscribable.Subscribable<T[I], E, R>;
38
93
  };
39
94
  /**
40
95
  * Narrows the focus to an indexed element of `Chunk`.
41
96
  */
42
97
  export declare const focusChunkAt: {
43
- <A, E, R>(self: Subscribable.Subscribable<Chunk.Chunk<A>, E, R>, index: number): Subscribable.Subscribable<A, E | NoSuchElementException, R>;
44
98
  <A, E, R>(index: number): (self: Subscribable.Subscribable<Chunk.Chunk<A>, E, R>) => Subscribable.Subscribable<A, E | NoSuchElementException, R>;
99
+ <A, E, R>(self: Subscribable.Subscribable<Chunk.Chunk<A>, E, R>, index: number): Subscribable.Subscribable<A, E | NoSuchElementException, R>;
45
100
  };
101
+ /**
102
+ * Narrows the focus to the size of a `Chunk`.
103
+ */
104
+ export declare const focusChunkSize: <A, E, R>(self: Subscribable.Subscribable<Chunk.Chunk<A>, E, R>) => Subscribable.Subscribable<number, E, R>;
105
+ /**
106
+ * Narrows the focus to the size of a `Iterable`.
107
+ */
108
+ export declare const focusIterableSize: <A, E, R>(self: Subscribable.Subscribable<Iterable<A>, E, R>) => Subscribable.Subscribable<number, E, R>;