effect-lens 0.2.0 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -34
- package/dist/Lens.d.ts +115 -59
- package/dist/Lens.js +82 -29
- package/dist/Lens.js.map +1 -1
- package/dist/Subscribable.d.ts +103 -47
- package/dist/Subscribable.js +92 -38
- package/dist/Subscribable.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -4,13 +4,13 @@ A Lens type for [Effect](https://effect.website/) to easily manage nested state.
|
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
```
|
|
7
|
-
npm install effect-lens
|
|
8
|
-
yarn add effect-lens
|
|
9
|
-
bun add effect-lens
|
|
7
|
+
npm install effect-lens@beta effect@4.0.0-beta.85
|
|
8
|
+
yarn add effect-lens@beta effect@4.0.0-beta.85
|
|
9
|
+
bun add effect-lens@beta effect@4.0.0-beta.85
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
## Peer dependencies
|
|
13
|
-
- `effect`
|
|
13
|
+
- `effect` 4.0.0-beta.85
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
## Quickstart
|
|
@@ -49,7 +49,9 @@ const lens = Lens.fromSubscriptionRef(ref)
|
|
|
49
49
|
|
|
50
50
|
const value = yield* Lens.get(lens)
|
|
51
51
|
yield* Effect.forkScoped(Stream.runForEach(lens.changes, Console.log))
|
|
52
|
-
yield* Lens.
|
|
52
|
+
yield* Lens.updateEffect(lens, values =>
|
|
53
|
+
Effect.fromOption(Array.replace(values, 1, 1664))
|
|
54
|
+
)
|
|
53
55
|
```
|
|
54
56
|
|
|
55
57
|
Currently available:
|
|
@@ -70,7 +72,7 @@ You can get pretty creative! Here's an example of a Lens that points to a specif
|
|
|
70
72
|
const lens = Effect.all([
|
|
71
73
|
KeyValueStore.KeyValueStore,
|
|
72
74
|
Effect.succeed("someKey"),
|
|
73
|
-
|
|
75
|
+
Semaphore.make(1),
|
|
74
76
|
]).pipe(
|
|
75
77
|
Effect.map(([kv, key, semaphore]) => Lens.make({
|
|
76
78
|
get: kv.get(key),
|
|
@@ -135,19 +137,19 @@ const ref = yield* SubscriptionRef.make<{
|
|
|
135
137
|
readonly users: readonly User[]
|
|
136
138
|
}>({
|
|
137
139
|
users: [
|
|
138
|
-
{ name: "Jean Dupont", age: yield* DateTime.make("03/25/1969") },
|
|
139
|
-
{ name: "Juan Joya Borja", age: yield* DateTime.make("04/05/1956") },
|
|
140
|
-
{ name: "Benzemonstre", age: yield* DateTime.make("06/12/2000") },
|
|
140
|
+
{ name: "Jean Dupont", age: yield* Effect.fromOption(DateTime.make("03/25/1969")) },
|
|
141
|
+
{ name: "Juan Joya Borja", age: yield* Effect.fromOption(DateTime.make("04/05/1956")) },
|
|
142
|
+
{ name: "Benzemonstre", age: yield* Effect.fromOption(DateTime.make("06/12/2000")) },
|
|
141
143
|
]
|
|
142
144
|
})
|
|
143
145
|
|
|
144
|
-
// \/ Lens<User,
|
|
146
|
+
// \/ Lens<User, NoSuchElementError, NoSuchElementError, never, never>
|
|
145
147
|
const jeanDupontLens = ref.pipe(
|
|
146
148
|
Lens.fromSubscriptionRef, // Creates a lens that proxies the ref
|
|
147
149
|
Lens.focusObjectOn("users"), // Creates a focused lens that points to the users field
|
|
148
150
|
Lens.focusArrayAt(0), // Creates a focused lens that points to the first entry of the user array
|
|
149
151
|
)
|
|
150
|
-
// Reading or writing from this lens can fail with
|
|
152
|
+
// Reading or writing from this lens can fail with NoSuchElementError
|
|
151
153
|
// This is because of Lens.focusArrayAt(0), as reading and writing to an array is an unsafe operation
|
|
152
154
|
|
|
153
155
|
const jeanDupont = yield* Lens.get(jeanDupontLens)
|
|
@@ -155,7 +157,7 @@ const jeanDupont = yield* Lens.get(jeanDupontLens)
|
|
|
155
157
|
yield* Lens.set(
|
|
156
158
|
// You can focus even further down
|
|
157
159
|
Lens.focusObjectOn(jeanDupontLens, "age"),
|
|
158
|
-
yield* DateTime.make("03/25/1970"),
|
|
160
|
+
yield* Effect.fromOption(DateTime.make("03/25/1970")),
|
|
159
161
|
)
|
|
160
162
|
// Mutations with the parent state are performed immutably by default
|
|
161
163
|
// unless you use a specific mutable transform such as 'focusObjectOnWritable'
|
|
@@ -171,33 +173,33 @@ Currently available:
|
|
|
171
173
|
| `focusTupleAt` | Focuses to an indexed entry of a readonly tuple. Replaces the parent tuple immutably when writing to the focused index | Immutable | |
|
|
172
174
|
| `focusMutableTupleAt` | Focuses to an indexed entry of a mutable tuple. Mutates the parent tuple in place at the focused index | Mutable | Type-safe: will not allow you to mutate `readonly` tuples |
|
|
173
175
|
| `focusChunkAt` | Focuses to an indexed entry of a `Chunk`. Replaces the parent `Chunk` immutably when writing to the focused element | Immutable | |
|
|
174
|
-
| `focusOption` | Focuses to the value inside an `Option`. Wraps writes back into `Option.some` | Immutable | Reading or writing fails with `
|
|
176
|
+
| `focusOption` | Focuses to the value inside an `Option`. Wraps writes back into `Option.some` | Immutable | Reading or writing fails with `NoSuchElementError` when the parent option is `None` |
|
|
175
177
|
|
|
176
178
|
#### Manually
|
|
177
179
|
You can create focused Lenses by composing them manually using `map`, `mapEffect` and `unwrap`:
|
|
178
180
|
```typescript
|
|
179
181
|
const ref = yield* SubscriptionRef.make<readonly User[]>([
|
|
180
|
-
{ name: "Jean Dupont", age: yield* DateTime.make("03/25/1969") },
|
|
181
|
-
{ name: "Juan Joya Borja", age: yield* DateTime.make("04/05/1956") },
|
|
182
|
-
{ name: "Benzemonstre", age: yield* DateTime.make("06/12/2000") },
|
|
182
|
+
{ name: "Jean Dupont", age: yield* Effect.fromOption(DateTime.make("03/25/1969")) },
|
|
183
|
+
{ name: "Juan Joya Borja", age: yield* Effect.fromOption(DateTime.make("04/05/1956")) },
|
|
184
|
+
{ name: "Benzemonstre", age: yield* Effect.fromOption(DateTime.make("06/12/2000")) },
|
|
183
185
|
])
|
|
184
186
|
|
|
185
|
-
// \/ Lens<User,
|
|
187
|
+
// \/ Lens<User, NoSuchElementError, NoSuchElementError, never, never>
|
|
186
188
|
const benzemonstreLens = ref.pipe(
|
|
187
189
|
Lens.fromSubscriptionRef,
|
|
188
190
|
|
|
189
191
|
// Manually focus
|
|
190
192
|
Lens.mapEffect(
|
|
191
193
|
// Getter:
|
|
192
|
-
Array.get(2),
|
|
194
|
+
a => Effect.fromOption(Array.get(a, 2)),
|
|
193
195
|
// Setter:
|
|
194
|
-
(a, b) => Array.
|
|
196
|
+
(a, b) => Effect.fromOption(Array.replace(a, 2, b)),
|
|
195
197
|
// ^ The current Lens value (readonly User[])
|
|
196
198
|
// ^ The new focused value to push (User)
|
|
197
199
|
),
|
|
198
200
|
)
|
|
199
|
-
// Both Array.get and Array.
|
|
200
|
-
//
|
|
201
|
+
// Both Array.get and Array.replace return an Option, which Effect.fromOption
|
|
202
|
+
// converts into Effect<A, NoSuchElementError>
|
|
201
203
|
// As you can see, this is automatically tracked by the Lens type
|
|
202
204
|
```
|
|
203
205
|
|
|
@@ -240,7 +242,7 @@ const nameLens = lens.pipe(
|
|
|
240
242
|
|
|
241
243
|
### Subscribable
|
|
242
244
|
|
|
243
|
-
|
|
245
|
+
Effect 4 no longer provides `Subscribable` and `Readable`. This library provides its own `Subscribable` interface, which you can use as a constraint to allow some parts of your app to only read and subscribe to the Lenses you provide them:
|
|
244
246
|
```typescript
|
|
245
247
|
const ref = yield* SubscriptionRef.make<{
|
|
246
248
|
readonly users: readonly User[]
|
|
@@ -263,13 +265,13 @@ yield* someFunctionThatShouldOnlyHaveReadonlyAccessToTheState(lens)
|
|
|
263
265
|
```
|
|
264
266
|
|
|
265
267
|
#### Focusing
|
|
266
|
-
This library
|
|
268
|
+
This library provides a `Subscribable` module with value and error transforms, recovery (`catch`, `catchCause`, `orElse`, `orElseSucceed`, and `retry`), and transforms to narrow the focus of `Subscribable`'s, same as Lenses:
|
|
267
269
|
```typescript
|
|
268
270
|
import { Subscribable } from "effect-lens"
|
|
269
271
|
|
|
270
272
|
declare const sub: Subscribable.Subscribable<readonly { name: string }[], never, never>
|
|
271
273
|
|
|
272
|
-
// \/ Subscribable.Subscribable<string,
|
|
274
|
+
// \/ Subscribable.Subscribable<string, NoSuchElementError, never>
|
|
273
275
|
const nameSub = sub.pipe(
|
|
274
276
|
Subscribable.focusArrayAt(1),
|
|
275
277
|
Subscribable.focusObjectOn("name"),
|
|
@@ -286,13 +288,3 @@ Currently available:
|
|
|
286
288
|
| `focusChunkAt` | Focuses to an indexed entry of a `Chunk` |
|
|
287
289
|
| `focusChunkSize` | Focuses to the size of a `Chunk` |
|
|
288
290
|
| `focusIterableSize` | Focuses to the size of an iterable |
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
## Todo
|
|
292
|
-
|
|
293
|
-
This library is already ready to use! However, there is always more to do...
|
|
294
|
-
- Finish those docs
|
|
295
|
-
- Provide an API reference
|
|
296
|
-
- Add new adapters for various data source types
|
|
297
|
-
- Add new focus transforms
|
|
298
|
-
- Provide a preview version for Effect 4 beta
|
package/dist/Lens.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Chunk, type Context, Effect, Option, Pipeable,
|
|
2
|
-
import type { NoSuchElementException } from "effect/Cause";
|
|
1
|
+
import { type Cause, Chunk, type Context, Effect, Option, Pipeable, Ref, Semaphore, Stream, SubscriptionRef, SynchronizedRef } from "effect";
|
|
3
2
|
import * as Subscribable from "./Subscribable.js";
|
|
4
3
|
export declare const LensTypeId: unique symbol;
|
|
5
4
|
export type LensTypeId = typeof LensTypeId;
|
|
@@ -13,6 +12,7 @@ export type LensTypeId = typeof LensTypeId;
|
|
|
13
12
|
export interface Lens<in out A, in out ER = never, in out EW = never, in out RR = never, in out RW = never> extends Subscribable.Subscribable<A, ER, RR> {
|
|
14
13
|
readonly [LensTypeId]: LensTypeId;
|
|
15
14
|
readonly modifyEffect: <B, E1 = never, R1 = never>(f: (a: A) => Effect.Effect<readonly [B, A], E1, R1>) => Effect.Effect<B, ER | EW | E1, RR | RW | R1>;
|
|
15
|
+
readonly modifySomeEffect: <B, E1 = never, R1 = never>(f: (a: A) => Effect.Effect<readonly [B, Option.Option<A>], E1, R1>) => Effect.Effect<B, ER | EW | E1, RR | RW | R1>;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Checks whether a value is a `Lens`.
|
|
@@ -29,10 +29,8 @@ export declare namespace LensImpl {
|
|
|
29
29
|
<A1, E1, R1>(self: Effect.Effect<A1, E1, R1>): Effect.Effect<A1, E1, R1>;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
declare
|
|
33
|
-
|
|
34
|
-
readonly [Readable.TypeId]: Readable.TypeId;
|
|
35
|
-
readonly [Subscribable.TypeId]: Subscribable.TypeId;
|
|
32
|
+
export declare abstract class LensImpl<in out A, in out ER = never, in out EW = never, in out RR = never, in out RW = never> extends Pipeable.Class implements Lens<A, ER, EW, RR, RW> {
|
|
33
|
+
readonly [Subscribable.SubscribableTypeId]: Subscribable.SubscribableTypeId;
|
|
36
34
|
readonly [LensTypeId]: LensTypeId;
|
|
37
35
|
readonly [LensImplTypeId]: LensImplTypeId;
|
|
38
36
|
abstract readonly resolve: Effect.Effect<LensImpl.Resolved<A, EW, RW>, ER, RR>;
|
|
@@ -40,9 +38,11 @@ export declare abstract class LensImpl<in out A, in out ER = never, in out EW =
|
|
|
40
38
|
abstract readonly lock: Effect.Effect<LensImpl.Lock, EW, RW>;
|
|
41
39
|
get get(): Effect.Effect<A, ER, RR>;
|
|
42
40
|
modifyEffect<B, E1 = never, R1 = never>(f: (a: A) => Effect.Effect<readonly [B, A], E1, R1>): Effect.Effect<B, ER | EW | E1, RR | RW | R1>;
|
|
41
|
+
modifySomeEffect<B, E1 = never, R1 = never>(f: (a: A) => Effect.Effect<readonly [B, Option.Option<A>], E1, R1>): Effect.Effect<B, ER | EW | E1, RR | RW | R1>;
|
|
43
42
|
}
|
|
44
43
|
export declare const isLensImpl: (u: unknown) => u is LensImpl<unknown, unknown, unknown, unknown, unknown>;
|
|
45
44
|
export declare const asLensImpl: <A, ER, EW, RR, RW>(lens: Lens<A, ER, EW, RR, RW>) => LensImpl<A, ER, EW, RR, RW>;
|
|
45
|
+
export declare const asSubscribable: <A, ER, EW, RR, RW>(lens: Lens<A, ER, EW, RR, RW>) => Subscribable.Subscribable<A, ER, RR>;
|
|
46
46
|
export declare namespace LensLazyImpl {
|
|
47
47
|
interface Source<in out A, in out ER = never, in out EW = never, in out RR = never, in out RW = never> {
|
|
48
48
|
readonly get: Effect.Effect<A, ER, RR>;
|
|
@@ -66,7 +66,7 @@ export declare class UnwrappedLensImpl<in out A, in out ER, in out EW, in out RR
|
|
|
66
66
|
readonly effect: Effect.Effect<Lens<A, ER, EW, RR, RW>, E1, R1>;
|
|
67
67
|
constructor(effect: Effect.Effect<Lens<A, ER, EW, RR, RW>, E1, R1>);
|
|
68
68
|
get resolve(): Effect.Effect<LensImpl.Resolved<A, EW | E1, RW | R1>, ER | E1, RR | R1>;
|
|
69
|
-
get changes(): Stream.Stream<A, ER | E1, RR | R1
|
|
69
|
+
get changes(): Stream.Stream<A, ER | E1, RR | Exclude<R1, import("effect/Scope").Scope>>;
|
|
70
70
|
get lock(): Effect.Effect<LensImpl.Lock, EW | E1, RW | R1>;
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
@@ -75,8 +75,8 @@ export declare class UnwrappedLensImpl<in out A, in out ER, in out EW, in out RR
|
|
|
75
75
|
export declare const unwrap: <A, ER, EW, RR, RW, E1, R1>(effect: Effect.Effect<Lens<A, ER, EW, RR, RW>, E1, R1>) => Lens<A, ER | E1, EW | E1, RR | R1, RW | R1>;
|
|
76
76
|
export declare class RefLensImpl<in out A> extends LensImpl<A, never, never, never, never> {
|
|
77
77
|
readonly ref: Ref.Ref<A>;
|
|
78
|
-
readonly semaphore:
|
|
79
|
-
constructor(ref: Ref.Ref<A>, semaphore:
|
|
78
|
+
readonly semaphore: Semaphore.Semaphore;
|
|
79
|
+
constructor(ref: Ref.Ref<A>, semaphore: Semaphore.Semaphore);
|
|
80
80
|
get resolve(): Effect.Effect<LensImpl.Resolved<A>, never, never>;
|
|
81
81
|
get changes(): Stream.Stream<A, never, never>;
|
|
82
82
|
get lock(): Effect.Effect<(<A_1, E, R>(self: Effect.Effect<A_1, E, R>) => Effect.Effect<A_1, E, R>), never, never>;
|
|
@@ -88,18 +88,12 @@ export declare class RefLensImpl<in out A> extends LensImpl<A, never, never, nev
|
|
|
88
88
|
* This means its `changes` stream will only emit the current value once when evaluated and nothing else.
|
|
89
89
|
*/
|
|
90
90
|
export declare const fromRef: <A>(ref: Ref.Ref<A>) => Effect.Effect<Lens<A, never, never, never, never>, never, never>;
|
|
91
|
-
export declare namespace SynchronizedRefLensImpl {
|
|
92
|
-
interface SynchronizedRefWithInternals<in out A> extends SynchronizedRef.SynchronizedRef<A> {
|
|
93
|
-
readonly ref: Ref.Ref<A>;
|
|
94
|
-
readonly withLock: LensImpl.Lock;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
91
|
export declare class SynchronizedRefLensImpl<in out A> extends LensImpl<A, never, never, never, never> {
|
|
98
|
-
readonly ref:
|
|
99
|
-
constructor(ref:
|
|
92
|
+
readonly ref: SynchronizedRef.SynchronizedRef<A>;
|
|
93
|
+
constructor(ref: SynchronizedRef.SynchronizedRef<A>);
|
|
100
94
|
get resolve(): Effect.Effect<LensImpl.Resolved<A>, never, never>;
|
|
101
95
|
get changes(): Stream.Stream<A, never, never>;
|
|
102
|
-
get lock(): Effect.Effect<
|
|
96
|
+
get lock(): Effect.Effect<(<A_1, E, R>(self: Effect.Effect<A_1, E, R>) => Effect.Effect<A_1, E, R>), never, never>;
|
|
103
97
|
}
|
|
104
98
|
/**
|
|
105
99
|
* Creates a `Lens` that proxies a `SynchronizedRef`.
|
|
@@ -108,16 +102,9 @@ export declare class SynchronizedRefLensImpl<in out A> extends LensImpl<A, never
|
|
|
108
102
|
* This means its `changes` stream will only emit the current value once when evaluated and nothing else.
|
|
109
103
|
*/
|
|
110
104
|
export declare const fromSynchronizedRef: <A>(ref: SynchronizedRef.SynchronizedRef<A>) => Lens<A, never, never, never, never>;
|
|
111
|
-
export declare namespace SubscriptionRefLensImpl {
|
|
112
|
-
interface SubscriptionRefWithInternals<in out A> extends SubscriptionRef.SubscriptionRef<A> {
|
|
113
|
-
readonly ref: Ref.Ref<A>;
|
|
114
|
-
readonly pubsub: PubSub.PubSub<A>;
|
|
115
|
-
readonly semaphore: Effect.Semaphore;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
105
|
export declare class SubscriptionRefLensImpl<in out A> extends LensImpl<A, never, never, never, never> {
|
|
119
|
-
readonly ref:
|
|
120
|
-
constructor(ref:
|
|
106
|
+
readonly ref: SubscriptionRef.SubscriptionRef<A>;
|
|
107
|
+
constructor(ref: SubscriptionRef.SubscriptionRef<A>);
|
|
121
108
|
get resolve(): Effect.Effect<LensImpl.Resolved<A>, never, never>;
|
|
122
109
|
get changes(): Stream.Stream<A, never, never>;
|
|
123
110
|
get lock(): Effect.Effect<(<A_1, E, R>(self: Effect.Effect<A_1, E, R>) => Effect.Effect<A_1, E, R>), never, never>;
|
|
@@ -145,22 +132,22 @@ export declare class DerivedLensImpl<in out A, in out B, in out ER = never, in o
|
|
|
145
132
|
* Derives a new `Lens` by linking a step to an existing parent lens.
|
|
146
133
|
*/
|
|
147
134
|
export declare const derive: {
|
|
148
|
-
<A, B, ER, EW, RR, RW, ER2, EW2, RR2, RW2>(self: Lens<B, ER, EW, RR, RW>, source: DerivedLensImpl.Source<A, B, ER2, ER, EW2, EW, RR2, RR, RW2, RW>): Lens<A, ER2, EW2, RR2, RW2>;
|
|
149
135
|
<A, B, ER, EW, RR, RW, ER2, EW2, RR2, RW2>(source: DerivedLensImpl.Source<A, B, ER2, ER, EW2, EW, RR2, RR, RW2, RW>): (self: Lens<B, ER, EW, RR, RW>) => Lens<A, ER2, EW2, RR2, RW2>;
|
|
136
|
+
<A, B, ER, EW, RR, RW, ER2, EW2, RR2, RW2>(self: Lens<B, ER, EW, RR, RW>, source: DerivedLensImpl.Source<A, B, ER2, ER, EW2, EW, RR2, RR, RW2, RW>): Lens<A, ER2, EW2, RR2, RW2>;
|
|
150
137
|
};
|
|
151
138
|
/**
|
|
152
139
|
* Derives a new `Lens` by applying synchronous getters and setters over the focused value.
|
|
153
140
|
*/
|
|
154
141
|
export declare const map: {
|
|
155
|
-
<A, ER, EW, RR, RW, B>(self: Lens<A, ER, EW, RR, RW>, get: (a: NoInfer<A>) => B, set: (a: NoInfer<A>, b: B) => NoInfer<A>): Lens<B, ER, EW, RR, RW>;
|
|
156
142
|
<A, ER, EW, RR, RW, B>(get: (a: NoInfer<A>) => B, set: (a: NoInfer<A>, b: B) => NoInfer<A>): (self: Lens<A, ER, EW, RR, RW>) => Lens<B, ER, EW, RR, RW>;
|
|
143
|
+
<A, ER, EW, RR, RW, B>(self: Lens<A, ER, EW, RR, RW>, get: (a: NoInfer<A>) => B, set: (a: NoInfer<A>, b: B) => NoInfer<A>): Lens<B, ER, EW, RR, RW>;
|
|
157
144
|
};
|
|
158
145
|
/**
|
|
159
146
|
* Derives a new `Lens` by applying effectful getters and setters over the focused value.
|
|
160
147
|
*/
|
|
161
148
|
export declare const mapEffect: {
|
|
162
|
-
<A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(self: Lens<A, ER, EW, RR, RW>, get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>, set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>): Lens<B, ER | EGet, EW | ESet, RR | RGet, RW | RSet>;
|
|
163
149
|
<A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>, set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>): (self: Lens<A, ER, EW, RR, RW>) => Lens<B, ER | EGet, EW | ESet, RR | RGet, RW | RSet>;
|
|
150
|
+
<A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(self: Lens<A, ER, EW, RR, RW>, get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>, set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>): Lens<B, ER | EGet, EW | ESet, RR | RGet, RW | RSet>;
|
|
164
151
|
};
|
|
165
152
|
/**
|
|
166
153
|
* Derives a new `Lens` by applying synchronous getters and setters over the value inside an `Option`.
|
|
@@ -170,8 +157,8 @@ export declare const mapEffect: {
|
|
|
170
157
|
* - If the `Option` is `None`, it remains `None`
|
|
171
158
|
*/
|
|
172
159
|
export declare const mapOption: {
|
|
173
|
-
<A, ER, EW, RR, RW, B>(self: Lens<Option.Option<A>, ER, EW, RR, RW>, get: (a: NoInfer<A>) => B, set: (a: NoInfer<A>, b: B) => NoInfer<A>): Lens<Option.Option<B>, ER, EW, RR, RW>;
|
|
174
160
|
<A, ER, EW, RR, RW, B>(get: (a: NoInfer<A>) => B, set: (a: NoInfer<A>, b: B) => NoInfer<A>): (self: Lens<Option.Option<A>, ER, EW, RR, RW>) => Lens<Option.Option<B>, ER, EW, RR, RW>;
|
|
161
|
+
<A, ER, EW, RR, RW, B>(self: Lens<Option.Option<A>, ER, EW, RR, RW>, get: (a: NoInfer<A>) => B, set: (a: NoInfer<A>, b: B) => NoInfer<A>): Lens<Option.Option<B>, ER, EW, RR, RW>;
|
|
175
162
|
};
|
|
176
163
|
/**
|
|
177
164
|
* Derives a new `Lens` by applying effectful getters and setters over the value inside an `Option`.
|
|
@@ -181,15 +168,15 @@ export declare const mapOption: {
|
|
|
181
168
|
* - If the `Option` is `None`, it remains `None`
|
|
182
169
|
*/
|
|
183
170
|
export declare const mapOptionEffect: {
|
|
184
|
-
<A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(self: Lens<Option.Option<A>, ER, EW, RR, RW>, get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>, set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>): Lens<Option.Option<B>, ER | EGet, EW | ESet, RR | RGet, RW | RSet>;
|
|
185
171
|
<A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>, set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>): (self: Lens<Option.Option<A>, ER, EW, RR, RW>) => Lens<Option.Option<B>, ER | EGet, EW | ESet, RR | RGet, RW | RSet>;
|
|
172
|
+
<A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(self: Lens<Option.Option<A>, ER, EW, RR, RW>, get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>, set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>): Lens<Option.Option<B>, ER | EGet, EW | ESet, RR | RGet, RW | RSet>;
|
|
186
173
|
};
|
|
187
174
|
/**
|
|
188
175
|
* Allows transforming only the `changes` stream of a `Lens` while keeping the focus type intact.
|
|
189
176
|
*/
|
|
190
177
|
export declare const mapStream: {
|
|
191
|
-
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, f: (changes: Stream.Stream<NoInfer<A>, NoInfer<ER>, NoInfer<RR>>) => Stream.Stream<NoInfer<A>, NoInfer<ER>, NoInfer<RR>>): Lens<A, ER, EW, RR, RW>;
|
|
192
178
|
<A, ER, EW, RR, RW>(f: (changes: Stream.Stream<NoInfer<A>, NoInfer<ER>, NoInfer<RR>>) => Stream.Stream<NoInfer<A>, NoInfer<ER>, NoInfer<RR>>): (self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER, EW, RR, RW>;
|
|
179
|
+
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, f: (changes: Stream.Stream<NoInfer<A>, NoInfer<ER>, NoInfer<RR>>) => Stream.Stream<NoInfer<A>, NoInfer<ER>, NoInfer<RR>>): Lens<A, ER, EW, RR, RW>;
|
|
193
180
|
};
|
|
194
181
|
/**
|
|
195
182
|
* Transforms read errors of a `Lens`.
|
|
@@ -197,8 +184,8 @@ export declare const mapStream: {
|
|
|
197
184
|
* Applies to `get` and `changes` while leaving `modify` unchanged.
|
|
198
185
|
*/
|
|
199
186
|
export declare const mapErrorRead: {
|
|
200
|
-
<A, ER, EW, RR, RW, E2>(self: Lens<A, ER, EW, RR, RW>, f: (error: NoInfer<ER>) => E2): Lens<A, E2, EW, RR, RW>;
|
|
201
187
|
<A, ER, EW, RR, RW, E2>(f: (error: NoInfer<ER>) => E2): (self: Lens<A, ER, EW, RR, RW>) => Lens<A, E2, EW, RR, RW>;
|
|
188
|
+
<A, ER, EW, RR, RW, E2>(self: Lens<A, ER, EW, RR, RW>, f: (error: NoInfer<ER>) => E2): Lens<A, E2, EW, RR, RW>;
|
|
202
189
|
};
|
|
203
190
|
/**
|
|
204
191
|
* Transforms modify errors of a `Lens`.
|
|
@@ -207,8 +194,8 @@ export declare const mapErrorRead: {
|
|
|
207
194
|
* user-supplied callback unchanged.
|
|
208
195
|
*/
|
|
209
196
|
export declare const mapErrorWrite: {
|
|
210
|
-
<A, ER, EW, RR, RW, E2>(self: Lens<A, ER, EW, RR, RW>, f: (error: NoInfer<EW>) => E2): Lens<A, ER, E2, RR, RW>;
|
|
211
197
|
<A, ER, EW, RR, RW, E2>(f: (error: NoInfer<EW>) => E2): (self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER, E2, RR, RW>;
|
|
198
|
+
<A, ER, EW, RR, RW, E2>(self: Lens<A, ER, EW, RR, RW>, f: (error: NoInfer<EW>) => E2): Lens<A, ER, E2, RR, RW>;
|
|
212
199
|
};
|
|
213
200
|
/**
|
|
214
201
|
* Transforms all errors of a `Lens`.
|
|
@@ -217,8 +204,8 @@ export declare const mapErrorWrite: {
|
|
|
217
204
|
* failures from the user-supplied callback unchanged.
|
|
218
205
|
*/
|
|
219
206
|
export declare const mapError: {
|
|
220
|
-
<A, ER, EW, RR, RW, E2>(self: Lens<A, ER, EW, RR, RW>, f: (error: NoInfer<ER | EW>) => E2): Lens<A, E2, E2, RR, RW>;
|
|
221
207
|
<A, ER, EW, RR, RW, E2>(f: (error: NoInfer<ER | EW>) => E2): (self: Lens<A, ER, EW, RR, RW>) => Lens<A, E2, E2, RR, RW>;
|
|
208
|
+
<A, ER, EW, RR, RW, E2>(self: Lens<A, ER, EW, RR, RW>, f: (error: NoInfer<ER | EW>) => E2): Lens<A, E2, E2, RR, RW>;
|
|
222
209
|
};
|
|
223
210
|
/**
|
|
224
211
|
* Runs an effect when read failures occur.
|
|
@@ -226,8 +213,8 @@ export declare const mapError: {
|
|
|
226
213
|
* Applies to `get` and `changes` while leaving `modify` unchanged.
|
|
227
214
|
*/
|
|
228
215
|
export declare const tapErrorRead: {
|
|
229
|
-
<A, ER, EW, RR, RW, E2, R2>(
|
|
230
|
-
<A, ER, EW, RR, RW, E2, R2>(f: (error: NoInfer<ER>) => Effect.Effect<
|
|
216
|
+
<A, ER, EW, RR, RW, B, E2, R2>(f: (error: NoInfer<ER>) => Effect.Effect<B, E2, R2>): (self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER | E2, EW, RR | R2, RW>;
|
|
217
|
+
<A, ER, EW, RR, RW, B, E2, R2>(self: Lens<A, ER, EW, RR, RW>, f: (error: NoInfer<ER>) => Effect.Effect<B, E2, R2>): Lens<A, ER | E2, EW, RR | R2, RW>;
|
|
231
218
|
};
|
|
232
219
|
/**
|
|
233
220
|
* Runs an effect when modify failures occur.
|
|
@@ -236,8 +223,8 @@ export declare const tapErrorRead: {
|
|
|
236
223
|
* user-supplied callback unchanged.
|
|
237
224
|
*/
|
|
238
225
|
export declare const tapErrorWrite: {
|
|
239
|
-
<A, ER, EW, RR, RW, E2, R2>(
|
|
240
|
-
<A, ER, EW, RR, RW, E2, R2>(f: (error: NoInfer<EW>) => Effect.Effect<
|
|
226
|
+
<A, ER, EW, RR, RW, B, E2, R2>(f: (error: NoInfer<EW>) => Effect.Effect<B, E2, R2>): (self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER, EW | E2, RR, RW | R2>;
|
|
227
|
+
<A, ER, EW, RR, RW, B, E2, R2>(self: Lens<A, ER, EW, RR, RW>, f: (error: NoInfer<EW>) => Effect.Effect<B, E2, R2>): Lens<A, ER, EW | E2, RR, RW | R2>;
|
|
241
228
|
};
|
|
242
229
|
/**
|
|
243
230
|
* Runs an effect when any `Lens` failure occurs.
|
|
@@ -246,32 +233,32 @@ export declare const tapErrorWrite: {
|
|
|
246
233
|
* failures from the user-supplied callback unchanged.
|
|
247
234
|
*/
|
|
248
235
|
export declare const tapError: {
|
|
249
|
-
<A, ER, EW, RR, RW, E2, R2>(
|
|
250
|
-
<A, ER, EW, RR, RW, E2, R2>(f: (error: NoInfer<ER | EW>) => Effect.Effect<
|
|
236
|
+
<A, ER, EW, RR, RW, B, E2, R2>(f: (error: NoInfer<ER | EW>) => Effect.Effect<B, E2, R2>): (self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER | E2, EW | E2, RR | R2, RW | R2>;
|
|
237
|
+
<A, ER, EW, RR, RW, B, E2, R2>(self: Lens<A, ER, EW, RR, RW>, f: (error: NoInfer<ER | EW>) => Effect.Effect<B, E2, R2>): Lens<A, ER | E2, EW | E2, RR | R2, RW | R2>;
|
|
251
238
|
};
|
|
252
239
|
/**
|
|
253
240
|
* Provides a `Context` to a `Lens`, removing it from both the read and write environments.
|
|
254
241
|
*/
|
|
255
242
|
export declare const provideContext: {
|
|
256
|
-
<A, ER, EW, RR, RW, R2>(self: Lens<A, ER, EW, RR, RW>, context: Context.Context<R2>): Lens<A, ER, EW, Exclude<RR, R2>, Exclude<RW, R2>>;
|
|
257
243
|
<R2>(context: Context.Context<R2>): <A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER, EW, Exclude<RR, R2>, Exclude<RW, R2>>;
|
|
244
|
+
<A, ER, EW, RR, RW, R2>(self: Lens<A, ER, EW, RR, RW>, context: Context.Context<R2>): Lens<A, ER, EW, Exclude<RR, R2>, Exclude<RW, R2>>;
|
|
258
245
|
};
|
|
259
246
|
/**
|
|
260
247
|
* Provides a single service to a `Lens`, removing it from both the read and write environments.
|
|
261
248
|
*
|
|
262
249
|
* This is the `Lens` equivalent of `Effect.provideService`: use it when a lens requires one
|
|
263
|
-
* `Context.
|
|
250
|
+
* `Context.Key` and you already have the concrete service value.
|
|
264
251
|
*/
|
|
265
252
|
export declare const provideService: {
|
|
266
|
-
<A, ER, EW, RR, RW
|
|
267
|
-
<
|
|
253
|
+
<I, S>(tag: Context.Key<I, S>, service: NoInfer<S>): <A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER, EW, Exclude<RR, I>, Exclude<RW, I>>;
|
|
254
|
+
<A, ER, EW, RR, RW, I, S>(self: Lens<A, ER, EW, RR, RW>, tag: Context.Key<I, S>, service: NoInfer<S>): Lens<A, ER, EW, Exclude<RR, I>, Exclude<RW, I>>;
|
|
268
255
|
};
|
|
269
256
|
/**
|
|
270
257
|
* Narrows the focus to a field of an object. Replaces the object in an immutable fashion when written to.
|
|
271
258
|
*/
|
|
272
259
|
export declare const focusObjectOn: {
|
|
273
|
-
<A extends object, ER, EW, RR, RW, K extends keyof A>(self: Lens<A, ER, EW, RR, RW>, key: K): Lens<A[K], ER, EW, RR, RW>;
|
|
274
260
|
<A extends object, ER, EW, RR, RW, K extends keyof A>(key: K): (self: Lens<A, ER, EW, RR, RW>) => Lens<A[K], ER, EW, RR, RW>;
|
|
261
|
+
<A extends object, ER, EW, RR, RW, K extends keyof A>(self: Lens<A, ER, EW, RR, RW>, key: K): Lens<A[K], ER, EW, RR, RW>;
|
|
275
262
|
};
|
|
276
263
|
export declare namespace focusObjectOnWritable {
|
|
277
264
|
type WritableKeys<T> = {
|
|
@@ -287,57 +274,85 @@ export declare namespace focusObjectOnWritable {
|
|
|
287
274
|
* Narrows the focus to a writable field of an object. Mutates the object in place when written to.
|
|
288
275
|
*/
|
|
289
276
|
export declare const focusObjectOnWritable: {
|
|
290
|
-
<A extends object, ER, EW, RR, RW, K extends focusObjectOnWritable.WritableKeys<A>>(self: Lens<A, ER, EW, RR, RW>, key: K): Lens<A[K], ER, EW, RR, RW>;
|
|
291
277
|
<A extends object, ER, EW, RR, RW, K extends focusObjectOnWritable.WritableKeys<A>>(key: K): (self: Lens<A, ER, EW, RR, RW>) => Lens<A[K], ER, EW, RR, RW>;
|
|
278
|
+
<A extends object, ER, EW, RR, RW, K extends focusObjectOnWritable.WritableKeys<A>>(self: Lens<A, ER, EW, RR, RW>, key: K): Lens<A[K], ER, EW, RR, RW>;
|
|
292
279
|
};
|
|
293
280
|
/**
|
|
294
281
|
* Narrows the focus to an indexed element of an array. Replaces the array in an immutable fashion when written to.
|
|
295
282
|
*/
|
|
296
283
|
export declare const focusArrayAt: {
|
|
297
|
-
<A extends readonly any[], ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW
|
|
298
|
-
<A extends readonly any[], ER, EW, RR, RW>(
|
|
284
|
+
<A extends readonly any[], ER, EW, RR, RW>(index: number): (self: Lens<A, ER, EW, RR, RW>) => Lens<A[number], ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
|
|
285
|
+
<A extends readonly any[], ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, index: number): Lens<A[number], ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
|
|
299
286
|
};
|
|
300
287
|
/**
|
|
301
288
|
* Narrows the focus to an indexed element of a mutable array. Mutates the array in place when written to.
|
|
302
289
|
*/
|
|
303
290
|
export declare const focusMutableArrayAt: {
|
|
304
|
-
<A, ER, EW, RR, RW>(self: Lens<A[], ER, EW, RR, RW
|
|
305
|
-
<A, ER, EW, RR, RW>(
|
|
291
|
+
<A, ER, EW, RR, RW>(index: number): (self: Lens<A[], ER, EW, RR, RW>) => Lens<A, ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
|
|
292
|
+
<A, ER, EW, RR, RW>(self: Lens<A[], ER, EW, RR, RW>, index: number): Lens<A, ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
|
|
306
293
|
};
|
|
307
294
|
/**
|
|
308
295
|
* Narrows the focus to an indexed element of a readonly tuple. Replaces the tuple in an immutable fashion when written to.
|
|
309
296
|
*/
|
|
310
297
|
export declare const focusTupleAt: {
|
|
311
|
-
<T extends readonly [any, ...any[]], ER, EW, RR, RW, I extends number>(self: Lens<T, ER, EW, RR, RW>, index: I): Lens<T[I], ER, EW, RR, RW>;
|
|
312
298
|
<T extends readonly [any, ...any[]], ER, EW, RR, RW, I extends number>(index: I): (self: Lens<T, ER, EW, RR, RW>) => Lens<T[I], ER, EW, RR, RW>;
|
|
299
|
+
<T extends readonly [any, ...any[]], ER, EW, RR, RW, I extends number>(self: Lens<T, ER, EW, RR, RW>, index: I): Lens<T[I], ER, EW, RR, RW>;
|
|
313
300
|
};
|
|
314
301
|
/**
|
|
315
302
|
* Narrows the focus to an indexed element of a mutable tuple. Mutates the tuple in place when written to.
|
|
316
303
|
*/
|
|
317
304
|
export declare const focusMutableTupleAt: {
|
|
318
|
-
<T extends [any, ...any[]], ER, EW, RR, RW, I extends number>(self: Lens<T, ER, EW, RR, RW>, index: I): Lens<T[I], ER, EW, RR, RW>;
|
|
319
305
|
<T extends [any, ...any[]], ER, EW, RR, RW, I extends number>(index: I): (self: Lens<T, ER, EW, RR, RW>) => Lens<T[I], ER, EW, RR, RW>;
|
|
306
|
+
<T extends [any, ...any[]], ER, EW, RR, RW, I extends number>(self: Lens<T, ER, EW, RR, RW>, index: I): Lens<T[I], ER, EW, RR, RW>;
|
|
320
307
|
};
|
|
321
308
|
/**
|
|
322
309
|
* Narrows the focus to an indexed element of `Chunk`. Replaces the `Chunk` in an immutable fashion when written to.
|
|
323
310
|
*/
|
|
324
311
|
export declare const focusChunkAt: {
|
|
325
|
-
<A, ER, EW, RR, RW>(self: Lens<Chunk.Chunk<A>, ER, EW, RR, RW
|
|
326
|
-
<A, ER, EW, RR, RW>(
|
|
312
|
+
<A, ER, EW, RR, RW>(index: number): (self: Lens<Chunk.Chunk<A>, ER, EW, RR, RW>) => Lens<A, ER | Cause.NoSuchElementError, EW, RR, RW>;
|
|
313
|
+
<A, ER, EW, RR, RW>(self: Lens<Chunk.Chunk<A>, ER, EW, RR, RW>, index: number): Lens<A, ER | Cause.NoSuchElementError, EW, RR, RW>;
|
|
327
314
|
};
|
|
328
315
|
/**
|
|
329
316
|
* Narrows the focus to the value inside an `Option`.
|
|
330
317
|
*
|
|
331
|
-
* Reading or writing through this lens fails with `
|
|
318
|
+
* Reading or writing through this lens fails with `NoSuchElementError` when the parent option is `None`.
|
|
332
319
|
* Writing wraps the new focused value back into `Option.some`.
|
|
333
320
|
*/
|
|
334
321
|
export declare const focusOption: {
|
|
335
|
-
<A, ER, EW, RR, RW>(self: Lens<Option.Option<A>, ER, EW, RR, RW>): Lens<A, ER |
|
|
322
|
+
<A, ER, EW, RR, RW>(self: Lens<Option.Option<A>, ER, EW, RR, RW>): Lens<A, ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
|
|
336
323
|
};
|
|
337
324
|
/**
|
|
338
325
|
* Reads the current value from a `Lens`.
|
|
339
326
|
*/
|
|
340
327
|
export declare const get: <A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER, RR>;
|
|
328
|
+
/**
|
|
329
|
+
* Atomically modifies the value of a `Lens` and returns a computed result.
|
|
330
|
+
*/
|
|
331
|
+
export declare const modify: {
|
|
332
|
+
<A, B>(f: (a: A) => readonly [B, A]): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<B, ER | EW, RR | RW>;
|
|
333
|
+
<A, ER, EW, RR, RW, B>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => readonly [B, A]): Effect.Effect<B, ER | EW, RR | RW>;
|
|
334
|
+
};
|
|
335
|
+
/**
|
|
336
|
+
* Atomically modifies the value of a `Lens` with an effect and returns a computed result.
|
|
337
|
+
*/
|
|
338
|
+
export declare const modifyEffect: {
|
|
339
|
+
<A, B, E, R>(f: (a: A) => Effect.Effect<readonly [B, A], E, R>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<B, ER | EW | E, RR | RW | R>;
|
|
340
|
+
<A, ER, EW, RR, RW, B, E, R>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => Effect.Effect<readonly [B, A], E, R>): Effect.Effect<B, ER | EW | E, RR | RW | R>;
|
|
341
|
+
};
|
|
342
|
+
/**
|
|
343
|
+
* Conditionally modifies a `Lens` without committing when the next value is `None`.
|
|
344
|
+
*/
|
|
345
|
+
export declare const modifySome: {
|
|
346
|
+
<B, A>(f: (a: NoInfer<A>) => readonly [B, Option.Option<NoInfer<A>>]): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<B, ER | EW, RR | RW>;
|
|
347
|
+
<A, ER, EW, RR, RW, B>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => readonly [B, Option.Option<A>]): Effect.Effect<B, ER | EW, RR | RW>;
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* Conditionally modifies a `Lens` with an effect without committing when the next value is `None`.
|
|
351
|
+
*/
|
|
352
|
+
export declare const modifySomeEffect: {
|
|
353
|
+
<B, A, E = never, R = never>(f: (a: NoInfer<A>) => Effect.Effect<readonly [B, Option.Option<NoInfer<A>>], E, R>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<B, ER | EW | E, RR | RW | R>;
|
|
354
|
+
<A, ER, EW, RR, RW, B, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => Effect.Effect<readonly [B, Option.Option<A>], E, R>): Effect.Effect<B, ER | EW | E, RR | RW | R>;
|
|
355
|
+
};
|
|
341
356
|
/**
|
|
342
357
|
* Sets the value of a `Lens`.
|
|
343
358
|
*/
|
|
@@ -380,6 +395,20 @@ export declare const getAndUpdateEffect: {
|
|
|
380
395
|
<A, ER, EW, RR, RW, E, R>(f: (a: A) => Effect.Effect<A, E, R>): (self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW | E, RR | RW | R>;
|
|
381
396
|
<A, ER, EW, RR, RW, E, R>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => Effect.Effect<A, E, R>): Effect.Effect<A, ER | EW | E, RR | RW | R>;
|
|
382
397
|
};
|
|
398
|
+
/**
|
|
399
|
+
* Conditionally updates a `Lens` and returns the previous value.
|
|
400
|
+
*/
|
|
401
|
+
export declare const getAndUpdateSome: {
|
|
402
|
+
<A>(pf: (a: NoInfer<A>) => Option.Option<NoInfer<A>>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW, RR | RW>;
|
|
403
|
+
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Option.Option<A>): Effect.Effect<A, ER | EW, RR | RW>;
|
|
404
|
+
};
|
|
405
|
+
/**
|
|
406
|
+
* Conditionally updates a `Lens` with an effect and returns the previous value.
|
|
407
|
+
*/
|
|
408
|
+
export declare const getAndUpdateSomeEffect: {
|
|
409
|
+
<A, E = never, R = never>(pf: (a: NoInfer<A>) => Effect.Effect<Option.Option<NoInfer<A>>, E, R>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW | E, RR | RW | R>;
|
|
410
|
+
<A, ER, EW, RR, RW, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Effect.Effect<Option.Option<A>, E, R>): Effect.Effect<A, ER | EW | E, RR | RW | R>;
|
|
411
|
+
};
|
|
383
412
|
/**
|
|
384
413
|
* Sets the value of a `Lens` and returns the new value.
|
|
385
414
|
*/
|
|
@@ -401,4 +430,31 @@ export declare const updateAndGetEffect: {
|
|
|
401
430
|
<A, ER, EW, RR, RW, E, R>(f: (a: A) => Effect.Effect<A, E, R>): (self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW | E, RR | RW | R>;
|
|
402
431
|
<A, ER, EW, RR, RW, E, R>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => Effect.Effect<A, E, R>): Effect.Effect<A, ER | EW | E, RR | RW | R>;
|
|
403
432
|
};
|
|
404
|
-
|
|
433
|
+
/**
|
|
434
|
+
* Conditionally updates the value of a `Lens`.
|
|
435
|
+
*/
|
|
436
|
+
export declare const updateSome: {
|
|
437
|
+
<A>(pf: (a: NoInfer<A>) => Option.Option<NoInfer<A>>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<void, ER | EW, RR | RW>;
|
|
438
|
+
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Option.Option<A>): Effect.Effect<void, ER | EW, RR | RW>;
|
|
439
|
+
};
|
|
440
|
+
/**
|
|
441
|
+
* Conditionally updates the value of a `Lens` with an effect.
|
|
442
|
+
*/
|
|
443
|
+
export declare const updateSomeEffect: {
|
|
444
|
+
<A, E = never, R = never>(pf: (a: NoInfer<A>) => Effect.Effect<Option.Option<NoInfer<A>>, E, R>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<void, ER | EW | E, RR | RW | R>;
|
|
445
|
+
<A, ER, EW, RR, RW, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Effect.Effect<Option.Option<A>, E, R>): Effect.Effect<void, ER | EW | E, RR | RW | R>;
|
|
446
|
+
};
|
|
447
|
+
/**
|
|
448
|
+
* Conditionally updates a `Lens` and returns the resulting value.
|
|
449
|
+
*/
|
|
450
|
+
export declare const updateSomeAndGet: {
|
|
451
|
+
<A>(pf: (a: NoInfer<A>) => Option.Option<NoInfer<A>>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW, RR | RW>;
|
|
452
|
+
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Option.Option<A>): Effect.Effect<A, ER | EW, RR | RW>;
|
|
453
|
+
};
|
|
454
|
+
/**
|
|
455
|
+
* Conditionally updates a `Lens` with an effect and returns the resulting value.
|
|
456
|
+
*/
|
|
457
|
+
export declare const updateSomeAndGetEffect: {
|
|
458
|
+
<A, E = never, R = never>(pf: (a: NoInfer<A>) => Effect.Effect<Option.Option<NoInfer<A>>, E, R>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW | E, RR | RW | R>;
|
|
459
|
+
<A, ER, EW, RR, RW, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Effect.Effect<Option.Option<A>, E, R>): Effect.Effect<A, ER | EW | E, RR | RW | R>;
|
|
460
|
+
};
|
package/dist/Lens.js
CHANGED
|
@@ -1,20 +1,25 @@
|
|
|
1
|
-
import { Array, Chunk, Effect, Function, identity, Option, Pipeable, Predicate, PubSub,
|
|
1
|
+
import { Array, Chunk, Effect, Function, identity, Option, Pipeable, Predicate, PubSub, Ref, Semaphore, Stream, SubscriptionRef, SynchronizedRef, } from "effect";
|
|
2
2
|
import * as Subscribable from "./Subscribable.js";
|
|
3
|
-
export const LensTypeId = Symbol.for("@effect-fc/Lens/Lens");
|
|
3
|
+
export const LensTypeId = Symbol.for("@effect-fc/Lens/v4/Lens");
|
|
4
4
|
/**
|
|
5
5
|
* Checks whether a value is a `Lens`.
|
|
6
6
|
*/
|
|
7
7
|
export const isLens = (u) => Predicate.hasProperty(u, LensTypeId);
|
|
8
|
-
export const LensImplTypeId = Symbol.for("@effect-fc/Lens/LensImpl");
|
|
9
|
-
export class LensImpl extends Pipeable.Class
|
|
10
|
-
[
|
|
11
|
-
[Subscribable.TypeId] = Subscribable.TypeId;
|
|
8
|
+
export const LensImplTypeId = Symbol.for("@effect-fc/Lens/v4/LensImpl");
|
|
9
|
+
export class LensImpl extends Pipeable.Class {
|
|
10
|
+
[Subscribable.SubscribableTypeId] = Subscribable.SubscribableTypeId;
|
|
12
11
|
[LensTypeId] = LensTypeId;
|
|
13
12
|
[LensImplTypeId] = LensImplTypeId;
|
|
14
13
|
get get() { return Effect.map(this.resolve, resolved => resolved.value); }
|
|
15
14
|
modifyEffect(f) {
|
|
16
15
|
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
16
|
}
|
|
17
|
+
modifySomeEffect(f) {
|
|
18
|
+
return Effect.flatMap(this.lock, lock => lock(Effect.flatMap(this.resolve, resolved => Effect.flatMap(f(resolved.value), ([result, next]) => Option.match(next, {
|
|
19
|
+
onSome: value => Effect.as(resolved.commit(Effect.succeed(value)), result),
|
|
20
|
+
onNone: () => Effect.succeed(result),
|
|
21
|
+
})))));
|
|
22
|
+
}
|
|
18
23
|
}
|
|
19
24
|
export const isLensImpl = (u) => Predicate.hasProperty(u, LensImplTypeId);
|
|
20
25
|
export const asLensImpl = (lens) => {
|
|
@@ -22,6 +27,7 @@ export const asLensImpl = (lens) => {
|
|
|
22
27
|
throw new Error("Not a 'LensImpl'");
|
|
23
28
|
return lens;
|
|
24
29
|
};
|
|
30
|
+
export const asSubscribable = (lens) => lens;
|
|
25
31
|
export class LensLazyImpl extends LensImpl {
|
|
26
32
|
source;
|
|
27
33
|
constructor(source) {
|
|
@@ -75,7 +81,7 @@ export class RefLensImpl extends LensImpl {
|
|
|
75
81
|
}));
|
|
76
82
|
}
|
|
77
83
|
get changes() { return Stream.unwrap(Effect.map(Ref.get(this.ref), Stream.make)); }
|
|
78
|
-
get lock() { return Effect.succeed(this.semaphore.
|
|
84
|
+
get lock() { return Effect.succeed(this.semaphore.withPermit); }
|
|
79
85
|
}
|
|
80
86
|
/**
|
|
81
87
|
* Creates a `Lens` that proxies a `Ref`.
|
|
@@ -83,9 +89,7 @@ export class RefLensImpl extends LensImpl {
|
|
|
83
89
|
* Note: since `Ref` does not provide any kind of reactivity mechanism, the produced `Lens` will be non-reactive.
|
|
84
90
|
* This means its `changes` stream will only emit the current value once when evaluated and nothing else.
|
|
85
91
|
*/
|
|
86
|
-
export const fromRef = Effect.
|
|
87
|
-
return new RefLensImpl(ref, yield* Effect.makeSemaphore(1));
|
|
88
|
-
});
|
|
92
|
+
export const fromRef = (ref) => Effect.map(Semaphore.make(1), semaphore => new RefLensImpl(ref, semaphore));
|
|
89
93
|
export class SynchronizedRefLensImpl extends LensImpl {
|
|
90
94
|
ref;
|
|
91
95
|
constructor(ref) {
|
|
@@ -93,13 +97,13 @@ export class SynchronizedRefLensImpl extends LensImpl {
|
|
|
93
97
|
this.ref = ref;
|
|
94
98
|
}
|
|
95
99
|
get resolve() {
|
|
96
|
-
return Effect.map(
|
|
100
|
+
return Effect.map(SynchronizedRef.get(this.ref), value => ({
|
|
97
101
|
value,
|
|
98
|
-
commit: next => Effect.flatMap(next, value => Ref.set(this.ref.
|
|
102
|
+
commit: next => Effect.flatMap(next, value => Ref.set(this.ref.backing, value)),
|
|
99
103
|
}));
|
|
100
104
|
}
|
|
101
|
-
get changes() { return Stream.unwrap(Effect.map(
|
|
102
|
-
get lock() { return Effect.succeed(this.ref.
|
|
105
|
+
get changes() { return Stream.unwrap(Effect.map(SynchronizedRef.get(this.ref), Stream.make)); }
|
|
106
|
+
get lock() { return Effect.succeed(this.ref.semaphore.withPermit); }
|
|
103
107
|
}
|
|
104
108
|
/**
|
|
105
109
|
* Creates a `Lens` that proxies a `SynchronizedRef`.
|
|
@@ -115,13 +119,16 @@ export class SubscriptionRefLensImpl extends LensImpl {
|
|
|
115
119
|
this.ref = ref;
|
|
116
120
|
}
|
|
117
121
|
get resolve() {
|
|
118
|
-
return Effect.map(this.ref
|
|
122
|
+
return Effect.map(SubscriptionRef.get(this.ref), value => ({
|
|
119
123
|
value,
|
|
120
|
-
commit: next => Effect.flatMap(next, value => Effect.
|
|
124
|
+
commit: next => Effect.flatMap(next, value => Effect.sync(() => {
|
|
125
|
+
this.ref.value = value;
|
|
126
|
+
PubSub.publishUnsafe(this.ref.pubsub, value);
|
|
127
|
+
})),
|
|
121
128
|
}));
|
|
122
129
|
}
|
|
123
|
-
get changes() { return this.ref
|
|
124
|
-
get lock() { return Effect.succeed(this.ref.semaphore.
|
|
130
|
+
get changes() { return SubscriptionRef.changes(this.ref); }
|
|
131
|
+
get lock() { return Effect.succeed(this.ref.semaphore.withPermit); }
|
|
125
132
|
}
|
|
126
133
|
/**
|
|
127
134
|
* Creates a `Lens` that proxies a `SubscriptionRef`.
|
|
@@ -274,8 +281,8 @@ export const tapError = Function.dual(2, (self, f) => derive(self, {
|
|
|
274
281
|
value: resolved.value,
|
|
275
282
|
commit: next => Effect.flatMap(next, value => Effect.tapError(resolved.commit(Effect.succeed(value)), f)),
|
|
276
283
|
})),
|
|
277
|
-
mapStream: Stream.tapError(f),
|
|
278
|
-
mapLock: Effect.tapError(f),
|
|
284
|
+
mapStream: Stream.tapError(e => f(e)),
|
|
285
|
+
mapLock: Effect.tapError(e => f(e)),
|
|
279
286
|
}));
|
|
280
287
|
/**
|
|
281
288
|
* Provides a `Context` to a `Lens`, removing it from both the read and write environments.
|
|
@@ -285,14 +292,14 @@ export const provideContext = Function.dual(2, (self, context) => derive(self, {
|
|
|
285
292
|
value: resolved.value,
|
|
286
293
|
commit: next => Effect.provide(resolved.commit(next), context),
|
|
287
294
|
})),
|
|
288
|
-
mapStream: Stream.
|
|
295
|
+
mapStream: Stream.provideContext(context),
|
|
289
296
|
mapLock: Effect.provide(context),
|
|
290
297
|
}));
|
|
291
298
|
/**
|
|
292
299
|
* Provides a single service to a `Lens`, removing it from both the read and write environments.
|
|
293
300
|
*
|
|
294
301
|
* This is the `Lens` equivalent of `Effect.provideService`: use it when a lens requires one
|
|
295
|
-
* `Context.
|
|
302
|
+
* `Context.Key` and you already have the concrete service value.
|
|
296
303
|
*/
|
|
297
304
|
export const provideService = Function.dual(3, (self, tag, service) => derive(self, {
|
|
298
305
|
resolve: parent => Effect.map(Effect.provideService(parent, tag, service), resolved => ({
|
|
@@ -313,34 +320,50 @@ export const focusObjectOnWritable = Function.dual(2, (self, key) => map(self, a
|
|
|
313
320
|
/**
|
|
314
321
|
* Narrows the focus to an indexed element of an array. Replaces the array in an immutable fashion when written to.
|
|
315
322
|
*/
|
|
316
|
-
export const focusArrayAt = Function.dual(2, (self, index) => mapEffect(self, Array.get(index), (a, b) => Array.
|
|
323
|
+
export const focusArrayAt = Function.dual(2, (self, index) => mapEffect(self, a => Effect.fromOption(Array.get(a, index)), (a, b) => Effect.fromOption(Array.replace(a, index, b))));
|
|
317
324
|
/**
|
|
318
325
|
* Narrows the focus to an indexed element of a mutable array. Mutates the array in place when written to.
|
|
319
326
|
*/
|
|
320
|
-
export const focusMutableArrayAt = Function.dual(2, (self, index) => mapEffect(self, Array.get(index), (a, b) => Effect.flatMap(Array.get(a, index), () => Effect.as(Effect.sync(() => { a[index] = b; }), a))));
|
|
327
|
+
export const focusMutableArrayAt = Function.dual(2, (self, index) => mapEffect(self, a => Effect.fromOption(Array.get(a, index)), (a, b) => Effect.flatMap(Effect.fromOption(Array.get(a, index)), () => Effect.as(Effect.sync(() => { a[index] = b; }), a))));
|
|
321
328
|
/**
|
|
322
329
|
* Narrows the focus to an indexed element of a readonly tuple. Replaces the tuple in an immutable fashion when written to.
|
|
323
330
|
*/
|
|
324
|
-
export const focusTupleAt = Function.dual(2, (self, index) => map(self, Array.
|
|
331
|
+
export const focusTupleAt = Function.dual(2, (self, index) => map(self, Array.getUnsafe(index), (a, b) => Option.getOrElse(Array.replace(a, index, b), () => a)));
|
|
325
332
|
/**
|
|
326
333
|
* Narrows the focus to an indexed element of a mutable tuple. Mutates the tuple in place when written to.
|
|
327
334
|
*/
|
|
328
|
-
export const focusMutableTupleAt = Function.dual(2, (self, index) => map(self, Array.
|
|
335
|
+
export const focusMutableTupleAt = Function.dual(2, (self, index) => map(self, Array.getUnsafe(index), (a, b) => { a[index] = b; return a; }));
|
|
329
336
|
/**
|
|
330
337
|
* Narrows the focus to an indexed element of `Chunk`. Replaces the `Chunk` in an immutable fashion when written to.
|
|
331
338
|
*/
|
|
332
|
-
export const focusChunkAt = Function.dual(2, (self, index) => mapEffect(self, Chunk.get(index), (
|
|
339
|
+
export const focusChunkAt = Function.dual(2, (self, index) => mapEffect(self, chunk => Effect.fromOption(Chunk.get(chunk, index)), (chunk, value) => Effect.succeed(Option.getOrElse(Chunk.replace(chunk, index, value), () => chunk))));
|
|
333
340
|
/**
|
|
334
341
|
* Narrows the focus to the value inside an `Option`.
|
|
335
342
|
*
|
|
336
|
-
* Reading or writing through this lens fails with `
|
|
343
|
+
* Reading or writing through this lens fails with `NoSuchElementError` when the parent option is `None`.
|
|
337
344
|
* Writing wraps the new focused value back into `Option.some`.
|
|
338
345
|
*/
|
|
339
|
-
export const focusOption = (self) => mapEffect(self,
|
|
346
|
+
export const focusOption = (self) => mapEffect(self, Effect.fromOption, (option, value) => Effect.as(Effect.fromOption(option), Option.some(value)));
|
|
340
347
|
/**
|
|
341
348
|
* Reads the current value from a `Lens`.
|
|
342
349
|
*/
|
|
343
350
|
export const get = (self) => self.get;
|
|
351
|
+
/**
|
|
352
|
+
* Atomically modifies the value of a `Lens` and returns a computed result.
|
|
353
|
+
*/
|
|
354
|
+
export const modify = Function.dual(2, (self, f) => self.modifyEffect(a => Effect.succeed(f(a))));
|
|
355
|
+
/**
|
|
356
|
+
* Atomically modifies the value of a `Lens` with an effect and returns a computed result.
|
|
357
|
+
*/
|
|
358
|
+
export const modifyEffect = Function.dual(2, (self, f) => self.modifyEffect(f));
|
|
359
|
+
/**
|
|
360
|
+
* Conditionally modifies a `Lens` without committing when the next value is `None`.
|
|
361
|
+
*/
|
|
362
|
+
export const modifySome = Function.dual(2, (self, f) => self.modifySomeEffect(a => Effect.succeed(f(a))));
|
|
363
|
+
/**
|
|
364
|
+
* Conditionally modifies a `Lens` with an effect without committing when the next value is `None`.
|
|
365
|
+
*/
|
|
366
|
+
export const modifySomeEffect = Function.dual(2, (self, f) => self.modifySomeEffect(f));
|
|
344
367
|
/**
|
|
345
368
|
* Sets the value of a `Lens`.
|
|
346
369
|
*/
|
|
@@ -365,6 +388,14 @@ export const getAndUpdate = Function.dual(2, (self, f) => self.modifyEffect(a =>
|
|
|
365
388
|
* Applies an effectful transformation the value of a `Lens` while returning the previous value.
|
|
366
389
|
*/
|
|
367
390
|
export const getAndUpdateEffect = Function.dual(2, (self, f) => self.modifyEffect(a => Effect.flatMap(f(a), next => Effect.succeed([a, next]))));
|
|
391
|
+
/**
|
|
392
|
+
* Conditionally updates a `Lens` and returns the previous value.
|
|
393
|
+
*/
|
|
394
|
+
export const getAndUpdateSome = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.succeed([a, pf(a)])));
|
|
395
|
+
/**
|
|
396
|
+
* Conditionally updates a `Lens` with an effect and returns the previous value.
|
|
397
|
+
*/
|
|
398
|
+
export const getAndUpdateSomeEffect = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.map(pf(a), next => [a, next])));
|
|
368
399
|
/**
|
|
369
400
|
* Sets the value of a `Lens` and returns the new value.
|
|
370
401
|
*/
|
|
@@ -380,4 +411,26 @@ export const updateAndGet = Function.dual(2, (self, f) => self.modifyEffect(a =>
|
|
|
380
411
|
* Applies an effectful update to the value of a `Lens` and returns the new value.
|
|
381
412
|
*/
|
|
382
413
|
export const updateAndGetEffect = Function.dual(2, (self, f) => self.modifyEffect(a => Effect.flatMap(f(a), next => Effect.succeed([next, next]))));
|
|
414
|
+
/**
|
|
415
|
+
* Conditionally updates the value of a `Lens`.
|
|
416
|
+
*/
|
|
417
|
+
export const updateSome = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.succeed([void 0, pf(a)])));
|
|
418
|
+
/**
|
|
419
|
+
* Conditionally updates the value of a `Lens` with an effect.
|
|
420
|
+
*/
|
|
421
|
+
export const updateSomeEffect = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.map(pf(a), next => [void 0, next])));
|
|
422
|
+
/**
|
|
423
|
+
* Conditionally updates a `Lens` and returns the resulting value.
|
|
424
|
+
*/
|
|
425
|
+
export const updateSomeAndGet = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.succeed(Option.match(pf(a), {
|
|
426
|
+
onNone: () => [a, Option.none()],
|
|
427
|
+
onSome: next => [next, Option.some(next)],
|
|
428
|
+
}))));
|
|
429
|
+
/**
|
|
430
|
+
* Conditionally updates a `Lens` with an effect and returns the resulting value.
|
|
431
|
+
*/
|
|
432
|
+
export const updateSomeAndGetEffect = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.map(pf(a), next => Option.match(next, {
|
|
433
|
+
onNone: () => [a, Option.none()],
|
|
434
|
+
onSome: value => [value, Option.some(value)],
|
|
435
|
+
}))));
|
|
383
436
|
//# 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":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAgB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAA8C,MAAM,QAAQ,CAAA;AAEvL,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAGjD,MAAM,CAAC,MAAM,UAAU,GAAkB,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAmB3E;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAU,EAA0D,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AAGlI,MAAM,CAAC,MAAM,cAAc,GAAkB,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;AAgBnF,MAAM,OAAgB,QACtB,SAAQ,QAAQ,CAAC,KAAK,EAAE;IACX,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAoB,QAAQ,CAAC,MAAM,CAAA;IACpD,CAAC,YAAY,CAAC,MAAM,CAAC,GAAwB,YAAY,CAAC,MAAM,CAAA;IAChE,CAAC,UAAU,CAAC,GAAe,UAAU,CAAA;IACrC,CAAC,cAAc,CAAC,GAAmB,cAAc,CAAA;IAM1D,IAAI,GAAG,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;IAEzE,YAAY,CACR,CAAmD;QAEnD,OAAO,MAAM,CAAC,OAAO,CACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CACvB,IAAI,CAAC,OAAO,EACZ,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EACjB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CACrE,CACJ,CAAC,CACL,CAAA;IACL,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAU,EAA8D,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;AAE9I,MAAM,CAAC,MAAM,UAAU,GAAG,CACtB,IAA6B,EACF,EAAE;IAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACvC,OAAO,IAAmC,CAAA;AAC9C,CAAC,CAAA;AAYD,MAAM,OAAO,YACb,SAAQ,QAA2B;IAElB;IADb,YACa,MAA8C;QAEvD,KAAK,EAAE,CAAA;QAFE,WAAM,GAAN,MAAM,CAAwC;IAG3D,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,IAAI,CAAC,MAAM,CAAC,GAAG,EACf,KAAK,CAAC,EAAE,CAAC,CAAC;YACN,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3E,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAChB,MAA8C,EACvB,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;AAGtD,MAAM,OAAO,iBACb,SAAQ,QAA+C;IAEtC;IADb,YACa,MAAsD;QAE/D,KAAK,EAAE,CAAA;QAFE,WAAM,GAAN,MAAM,CAAgD;IAGnE,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EACvD,QAAQ,CAAC,EAAE,CAAC,CAAC;YACT,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;SACxC,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC,CAAC;IAC/E,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAClB,MAAsD,EACX,EAAE,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAG/E,MAAM,OAAO,WACb,SAAQ,QAAuC;IAE9B;IACA;IAFb,YACa,GAAe,EACf,SAA2B;QAEpC,KAAK,EAAE,CAAA;QAHE,QAAG,GAAH,GAAG,CAAY;QACf,cAAS,GAAT,SAAS,CAAkB;IAGxC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EACjB,KAAK,CAAC,EAAE,CAAC,CAAC;YACN,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CACpC;SACJ,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,CAAC;IAClF,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;CACtE;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC9C,GAAe;IAEf,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC,CAAC,CAAA;AAWF,MAAM,OAAO,uBACb,SAAQ,QAAuC;IAE9B;IADb,YACa,GAA4D;QAErE,KAAK,EAAE,CAAA;QAFE,QAAG,GAAH,GAAG,CAAyD;IAGzE,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EACrB,KAAK,CAAC,EAAE,CAAC,CAAC;YACN,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CACxC;SACJ,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,CAAC;IACtF,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;CAC1D;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,GAAuC,EACJ,EAAE,CAAC,IAAI,uBAAuB,CAAC,GAA8D,CAAC,CAAA;AAYrI,MAAM,OAAO,uBACb,SAAQ,QAAuC;IAE9B;IADb,YACa,GAA4D;QAErE,KAAK,EAAE,CAAA;QAFE,QAAG,GAAH,GAAG,CAAyD;IAGzE,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,CAAC,EAAE,CAAC,CAAC;YACN,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CACzC,CACJ;SACJ,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,GAAuC,EACJ,EAAE,CAAC,IAAI,uBAAuB,CAAC,GAA8D,CAAC,CAAA;AAsBrI,MAAM,OAAO,eAYb,SAAQ,QAA2B;IAElB;IACA;IAFb,YACa,MAAuC,EACvC,MAAwE;QAEjF,KAAK,EAAE,CAAA;QAHE,WAAM,GAAN,MAAM,CAAiC;QACvC,WAAM,GAAN,MAAM,CAAkE;IAGrF,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC;IACjE,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC;IACnE,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAQf,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,MAAwE,EAC7C,EAAE,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAGhF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAUZ,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAyB,EACzB,GAAwC,EACjB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,EACN,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC1B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KACjF,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;IAC1B,OAAO,EAAE,QAAQ;CACpB,CAAC,CAAC,CAAA;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAUlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAoD,EACpD,GAAmE,EAChB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACnE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC7B,MAAM,EACN,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAClB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnB,KAAK,CAAC,EAAE,CAAC,CAAC;QACN,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KACrF,CAAC,CACL,CACJ;IACD,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;IAChC,OAAO,EAAE,CAAA,QAA4D,CAAA;CACxE,CAAC,CAAC,CAAA;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAUlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA4C,EAC5C,GAAyB,EACzB,GAAwC,EACF,EAAE,CAAC,GAAG,CAC5C,IAAI,EACJ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EACf,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;CAC9B,CAAC,CACL,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAUxB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA4C,EAC5C,GAAoD,EACpD,GAAmE,EACD,EAAE,CAAC,SAAS,CAC9E,IAAI,EACJ,MAAM,CAAC,KAAK,CAAC;IACT,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;IAC5C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;CAC9C,CAAC,EACF,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;QAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;QAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KAC9C,CAAC;IACF,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;CAC9C,CAAC,CACL,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAQlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAAwH,EACjG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,QAAQ;CACpB,CAAC,CAAC,CAAA;AAGH;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAA6B,EACN,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,QAAQ;CACpB,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAQtB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAA6B,EACN,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACtE;KACJ,CAAC,CAAC;IACH,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAQjB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAAkC,EACX,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACtE;KACJ,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC,CAAA;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAAyD,EACxB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,QAAQ;CACpB,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAQtB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAAyD,EACxB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACtE;KACJ,CAAC,CAAC;IACH,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAQjB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAA8D,EACnB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IAC3D,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACtE;KACJ,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC,CAAA;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAQvB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,OAA4B,EACqB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACjE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;KACjE,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;CACnC,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAUvB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAsB,EACtB,OAAmB,EAC4B,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IAC/D,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAC3C,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC;KAC7E,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;CAC/C,CAAC,CAAC,CAAA;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAQtB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAM,EACoB,EAAE,CAAC,GAAG,CAChC,IAAI,EACJ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EACX,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC,CAAA;AAeF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAQ9B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAM,EACoB,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5F;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,KAAa,EACoE,EAAE,CAAC,SAAS,CAC7F,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAQ,CACpD,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAQ5B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA+B,EAC/B,KAAa,EAC4D,EAAE,CAAC,SAAS,CACrF,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CACpB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EACnB,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC1D,CACJ,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,KAAQ,EACkB,EAAE,CAAC,GAAG,CAChC,IAAI,EACJ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EACtB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAQ,CAC9C,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAQ5B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,KAAQ,EACkB,EAAE,CAAC,GAAG,CAChC,IAAI,EACJ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EACtB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC,CACvC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA0C,EAC1C,KAAa,EACmC,EAAE,CAAC,SAAS,CAC5D,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CACxD,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAIpB,CACA,IAA4C,EAC6B,EAAE,CAAC,SAAS,CACrF,IAAI,EACJ,QAAQ,EACR,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAChD,CAAA;AAGD;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAoB,IAA6B,EAA4B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAA;AAE3G;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAGZ,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,KAAQ,EAAE,EAAE,CAChF,IAAI,CAAC,YAAY,CAAqB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAU,CAAC,CAAC,CACxF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAGlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,KAAQ,EAAE,EAAE,CAChF,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAU,CAAC,CAAC,CAC/E,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAGf,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,CAAc,EAAE,EAAE,CACtF,IAAI,CAAC,YAAY,CAAqB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC,CAAC,CACtF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAGrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA0B,IAA6B,EAAE,CAAmC,EAAE,EAAE,CACjH,IAAI,CAAC,YAAY,CAAa,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC7C,CAAC,CAAC,CAAC,CAAC,EACJ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAU,CAAC,CAClD,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAGrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,CAAc,EAAE,EAAE,CACtF,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC,CAAC,CAC9E,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAG3B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA0B,IAA6B,EAAE,CAAmC,EAAE,EAAE,CACjH,IAAI,CAAC,YAAY,CAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1C,CAAC,CAAC,CAAC,CAAC,EACJ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAU,CAAC,CAC7C,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAGlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,KAAQ,EAAE,EAAE,CAChF,IAAI,CAAC,YAAY,CAAkB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC,CAAC,CACpF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAGrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,CAAc,EAAE,EAAE,CACtF,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE;IACnC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACjB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAAA;AAChD,CAAC,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAG3B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA0B,IAA6B,EAAE,CAAmC,EAAE,EAAE,CACjH,IAAI,CAAC,YAAY,CAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1C,CAAC,CAAC,CAAC,CAAC,EACJ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAChD,CAAC,CACL,CAAA"}
|
|
1
|
+
{"version":3,"file":"Lens.js","sourceRoot":"","sources":["../src/Lens.ts"],"names":[],"mappings":"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"}
|
package/dist/Subscribable.d.ts
CHANGED
|
@@ -1,57 +1,113 @@
|
|
|
1
|
-
import { Chunk, Effect, Option,
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { type Cause, Chunk, Effect, Option, Pipeable, type Result, type Schedule, Stream } from "effect";
|
|
2
|
+
export declare const SubscribableTypeId: unique symbol;
|
|
3
|
+
export type SubscribableTypeId = typeof SubscribableTypeId;
|
|
4
|
+
export interface Subscribable<in out A, in out E = never, in out R = never> extends Pipeable.Pipeable {
|
|
5
|
+
readonly [SubscribableTypeId]: SubscribableTypeId;
|
|
6
|
+
readonly get: Effect.Effect<A, E, R>;
|
|
7
|
+
readonly changes: Stream.Stream<A, E, R>;
|
|
8
|
+
}
|
|
9
|
+
export declare const isSubscribable: (u: unknown) => u is Subscribable<unknown, unknown, unknown>;
|
|
10
|
+
export declare const SubscribableImplTypeId: unique symbol;
|
|
11
|
+
export type SubscribableImplTypeId = typeof SubscribableImplTypeId;
|
|
12
|
+
export declare namespace SubscribableImpl {
|
|
13
|
+
interface Source<in out A, in out E = never, in out R = never> {
|
|
14
|
+
readonly get: Effect.Effect<A, E, R>;
|
|
15
|
+
readonly changes: Stream.Stream<A, E, R>;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export declare class SubscribableImpl<in out A, in out E = never, in out R = never> extends Pipeable.Class implements Subscribable<A, E, R> {
|
|
19
|
+
readonly source: SubscribableImpl.Source<A, E, R>;
|
|
20
|
+
readonly [SubscribableTypeId]: SubscribableTypeId;
|
|
21
|
+
readonly [SubscribableImplTypeId]: SubscribableImplTypeId;
|
|
22
|
+
constructor(source: SubscribableImpl.Source<A, E, R>);
|
|
23
|
+
get get(): Effect.Effect<A, E, R>;
|
|
24
|
+
get changes(): Stream.Stream<A, E, R>;
|
|
25
|
+
}
|
|
26
|
+
export declare const isSubscribableImpl: (u: unknown) => u is SubscribableImpl<unknown, unknown, unknown>;
|
|
27
|
+
export declare const asSubscribableImpl: <A, E, R>(subscribable: Subscribable<A, E, R>) => SubscribableImpl<A, E, R>;
|
|
28
|
+
export declare const make: <A, E, R>(source: SubscribableImpl.Source<A, E, R>) => Subscribable<A, E, R>;
|
|
29
|
+
export declare const unwrap: <A, E, R, E1, R1>(effect: Effect.Effect<Subscribable<A, E, R>, E1, R1>) => Subscribable<A, E | E1, R | R1>;
|
|
30
|
+
export declare const map: {
|
|
31
|
+
<A, B>(f: (a: NoInfer<A>) => B): <E, R>(self: Subscribable<A, E, R>) => Subscribable<B, E, R>;
|
|
32
|
+
<A, E, R, B>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => B): Subscribable<B, E, R>;
|
|
33
|
+
};
|
|
34
|
+
export declare const mapEffect: {
|
|
35
|
+
<A, B, E2, R2>(f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>): <E, R>(self: Subscribable<A, E, R>) => Subscribable<B, E | E2, R | R2>;
|
|
36
|
+
<A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>): Subscribable<B, E | E2, R | R2>;
|
|
37
|
+
};
|
|
38
|
+
/** Maps over an `Option` value in the `Subscribable`. */
|
|
7
39
|
export declare const mapOption: {
|
|
8
|
-
<A, B
|
|
9
|
-
<A, B
|
|
40
|
+
<A, B>(f: (a: A) => B): <E, R>(self: Subscribable<Option.Option<A>, E, R>) => Subscribable<Option.Option<B>, E, R>;
|
|
41
|
+
<A, B, E, R>(self: Subscribable<Option.Option<A>, E, R>, f: (a: A) => B): Subscribable<Option.Option<B>, E, R>;
|
|
10
42
|
};
|
|
11
|
-
/**
|
|
12
|
-
* Maps over an `Option` value in the `Subscribable` with an Effect.
|
|
13
|
-
*/
|
|
43
|
+
/** Maps over an `Option` value in the `Subscribable` with an Effect. */
|
|
14
44
|
export declare const mapOptionEffect: {
|
|
15
|
-
<A, B,
|
|
16
|
-
<A, B,
|
|
45
|
+
<A, B, E2, R2>(f: (a: A) => Effect.Effect<B, E2, R2>): <E, R>(self: Subscribable<Option.Option<A>, E, R>) => Subscribable<Option.Option<B>, E | E2, R | R2>;
|
|
46
|
+
<A, B, E, R, E2, R2>(self: Subscribable<Option.Option<A>, E, R>, f: (a: A) => Effect.Effect<B, E2, R2>): Subscribable<Option.Option<B>, E | E2, R | R2>;
|
|
47
|
+
};
|
|
48
|
+
/** Maps errors from both the current value and the stream of changes. */
|
|
49
|
+
export declare const mapError: {
|
|
50
|
+
<E, E2>(f: (error: NoInfer<E>) => E2): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A, E2, R>;
|
|
51
|
+
<A, E, R, E2>(self: Subscribable<A, E, R>, f: (error: NoInfer<E>) => E2): Subscribable<A, E2, R>;
|
|
52
|
+
};
|
|
53
|
+
/** Runs an effect when either the current value or the stream of changes fails. */
|
|
54
|
+
export declare const tapError: {
|
|
55
|
+
<E, B, E2, R2>(f: (error: NoInfer<E>) => Effect.Effect<B, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A, E | E2, R | R2>;
|
|
56
|
+
<A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (error: NoInfer<E>) => Effect.Effect<B, E2, R2>): Subscribable<A, E | E2, R | R2>;
|
|
57
|
+
};
|
|
58
|
+
declare const catch_: {
|
|
59
|
+
<E, B, E2, R2>(f: (error: NoInfer<E>) => Subscribable<B, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A | B, E2, R | R2>;
|
|
60
|
+
<A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (error: NoInfer<E>) => Subscribable<B, E2, R2>): Subscribable<A | B, E2, R | R2>;
|
|
61
|
+
};
|
|
62
|
+
/** Recovers from typed errors with another `Subscribable`. */
|
|
63
|
+
export { catch_ as catch };
|
|
64
|
+
/** Recovers from all failure causes with another `Subscribable`. */
|
|
65
|
+
export declare const catchCause: {
|
|
66
|
+
<E, B, E2, R2>(f: (cause: Cause.Cause<NoInfer<E>>) => Subscribable<B, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A | B, E2, R | R2>;
|
|
67
|
+
<A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Subscribable<B, E2, R2>): Subscribable<A | B, E2, R | R2>;
|
|
17
68
|
};
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
69
|
+
/** Runs an effect when either channel fails, exposing the complete failure cause. */
|
|
70
|
+
export declare const tapCause: {
|
|
71
|
+
<E, B, E2, R2>(f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<B, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A, E | E2, R | R2>;
|
|
72
|
+
<A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<B, E2, R2>): Subscribable<A, E | E2, R | R2>;
|
|
73
|
+
};
|
|
74
|
+
/** Falls back to another `Subscribable` when either channel fails. */
|
|
75
|
+
export declare const orElse: {
|
|
76
|
+
<B, E2, R2>(that: () => Subscribable<B, E2, R2>): <A, E, R>(self: Subscribable<A, E, R>) => Subscribable<A | B, E2, R | R2>;
|
|
77
|
+
<A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, that: () => Subscribable<B, E2, R2>): Subscribable<A | B, E2, R | R2>;
|
|
78
|
+
};
|
|
79
|
+
/** Replaces typed errors from either channel with a lazily evaluated value. */
|
|
80
|
+
export declare const orElseSucceed: {
|
|
81
|
+
<B>(value: () => B): <A, E, R>(self: Subscribable<A, E, R>) => Subscribable<A | B, never, R>;
|
|
82
|
+
<A, E, R, B>(self: Subscribable<A, E, R>, value: () => B): Subscribable<A | B, never, R>;
|
|
83
|
+
};
|
|
84
|
+
/** Retries failures from both channels according to the supplied schedule. */
|
|
85
|
+
export declare const retry: {
|
|
86
|
+
<E, X, E2, R2>(policy: Schedule.Schedule<X, NoInfer<E>, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A, E | E2, R | R2>;
|
|
87
|
+
<A, E, R, X, E2, R2>(self: Subscribable<A, E, R>, policy: Schedule.Schedule<X, NoInfer<E>, E2, R2>): Subscribable<A, E | E2, R | R2>;
|
|
88
|
+
};
|
|
89
|
+
/** Converts typed failures from both channels into `Result` values. */
|
|
90
|
+
export declare const result: <A, E, R>(self: Subscribable<A, E, R>) => Subscribable<Result.Result<A, E>, never, R>;
|
|
91
|
+
/** Narrows the focus to a field of an object. */
|
|
21
92
|
export declare const focusObjectOn: {
|
|
22
|
-
<A extends object, K extends keyof A
|
|
23
|
-
<A extends object, K extends keyof A, E, R>(
|
|
93
|
+
<A extends object, K extends keyof A>(key: K): <E, R>(self: Subscribable<A, E, R>) => Subscribable<A[K], E, R>;
|
|
94
|
+
<A extends object, K extends keyof A, E, R>(self: Subscribable<A, E, R>, key: K): Subscribable<A[K], E, R>;
|
|
24
95
|
};
|
|
25
|
-
/**
|
|
26
|
-
* Narrows the focus to an indexed element of an array.
|
|
27
|
-
*/
|
|
96
|
+
/** Narrows the focus to an indexed element of an array. */
|
|
28
97
|
export declare const focusArrayAt: {
|
|
29
|
-
<A extends readonly any[]
|
|
30
|
-
<A extends readonly any[], E, R>(
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
*/
|
|
35
|
-
export declare const focusArrayLength: <A extends readonly any[], E, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<number, E, R>;
|
|
36
|
-
/**
|
|
37
|
-
* Narrows the focus to an indexed element of a readonly tuple.
|
|
38
|
-
*/
|
|
98
|
+
<A extends readonly any[]>(index: number): <E, R>(self: Subscribable<A, E, R>) => Subscribable<A[number], E | Cause.NoSuchElementError, R>;
|
|
99
|
+
<A extends readonly any[], E, R>(self: Subscribable<A, E, R>, index: number): Subscribable<A[number], E | Cause.NoSuchElementError, R>;
|
|
100
|
+
};
|
|
101
|
+
export declare const focusArrayLength: <A extends readonly any[], E, R>(self: Subscribable<A, E, R>) => Subscribable<number, E, R>;
|
|
102
|
+
/** Narrows the focus to an indexed element of a readonly tuple. */
|
|
39
103
|
export declare const focusTupleAt: {
|
|
40
|
-
<T extends readonly [any, ...any[]], I extends number
|
|
41
|
-
<T extends readonly [any, ...any[]], I extends number, E, R>(
|
|
104
|
+
<T extends readonly [any, ...any[]], I extends number>(index: I): <E, R>(self: Subscribable<T, E, R>) => Subscribable<T[I], E, R>;
|
|
105
|
+
<T extends readonly [any, ...any[]], I extends number, E, R>(self: Subscribable<T, E, R>, index: I): Subscribable<T[I], E, R>;
|
|
42
106
|
};
|
|
43
|
-
/**
|
|
44
|
-
* Narrows the focus to an indexed element of `Chunk`.
|
|
45
|
-
*/
|
|
107
|
+
/** Narrows the focus to an indexed element of `Chunk`. */
|
|
46
108
|
export declare const focusChunkAt: {
|
|
47
|
-
<A
|
|
48
|
-
<A, E, R>(
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
*/
|
|
53
|
-
export declare const focusChunkSize: <A, E, R>(self: Subscribable.Subscribable<Chunk.Chunk<A>, E, R>) => Subscribable.Subscribable<number, E, R>;
|
|
54
|
-
/**
|
|
55
|
-
* Narrows the focus to the size of a `Iterable`.
|
|
56
|
-
*/
|
|
57
|
-
export declare const focusIterableSize: <A, E, R>(self: Subscribable.Subscribable<Iterable<A>, E, R>) => Subscribable.Subscribable<number, E, R>;
|
|
109
|
+
<A>(index: number): <E, R>(self: Subscribable<Chunk.Chunk<A>, E, R>) => Subscribable<A, E | Cause.NoSuchElementError, R>;
|
|
110
|
+
<A, E, R>(self: Subscribable<Chunk.Chunk<A>, E, R>, index: number): Subscribable<A, E | Cause.NoSuchElementError, R>;
|
|
111
|
+
};
|
|
112
|
+
export declare const focusChunkSize: <A, E, R>(self: Subscribable<Chunk.Chunk<A>, E, R>) => Subscribable<number, E, R>;
|
|
113
|
+
export declare const focusIterableSize: <A extends Iterable<any>, E, R>(self: Subscribable<A, E, R>) => Subscribable<number, E, R>;
|
package/dist/Subscribable.js
CHANGED
|
@@ -1,42 +1,96 @@
|
|
|
1
|
-
import { Array, Chunk, Effect, Function, Iterable, Option,
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { Array, Chunk, Effect, Function, Iterable, Option, Pipeable, Predicate, Stream } from "effect";
|
|
2
|
+
export const SubscribableTypeId = Symbol.for("@effect-fc/Lens/v4/Subscribable");
|
|
3
|
+
export const isSubscribable = (u) => Predicate.hasProperty(u, SubscribableTypeId);
|
|
4
|
+
export const SubscribableImplTypeId = Symbol.for("@effect-fc/Lens/v4/SubscribableImpl");
|
|
5
|
+
export class SubscribableImpl extends Pipeable.Class {
|
|
6
|
+
source;
|
|
7
|
+
[SubscribableTypeId] = SubscribableTypeId;
|
|
8
|
+
[SubscribableImplTypeId] = SubscribableImplTypeId;
|
|
9
|
+
constructor(source) {
|
|
10
|
+
super();
|
|
11
|
+
this.source = source;
|
|
12
|
+
}
|
|
13
|
+
get get() { return this.source.get; }
|
|
14
|
+
get changes() { return this.source.changes; }
|
|
15
|
+
}
|
|
16
|
+
export const isSubscribableImpl = (u) => Predicate.hasProperty(u, SubscribableImplTypeId);
|
|
17
|
+
export const asSubscribableImpl = (subscribable) => {
|
|
18
|
+
if (!isSubscribableImpl(subscribable))
|
|
19
|
+
throw new Error("Not a 'SubscribableImpl'");
|
|
20
|
+
return subscribable;
|
|
21
|
+
};
|
|
22
|
+
export const make = (source) => new SubscribableImpl(source);
|
|
23
|
+
export const unwrap = (effect) => make({
|
|
24
|
+
get: Effect.flatMap(effect, self => self.get),
|
|
25
|
+
changes: Stream.unwrap(Effect.map(effect, self => self.changes)),
|
|
26
|
+
});
|
|
27
|
+
export const map = Function.dual(2, (self, f) => make({
|
|
28
|
+
get get() { return Effect.map(self.get, f); },
|
|
29
|
+
get changes() { return Stream.map(self.changes, f); },
|
|
30
|
+
}));
|
|
31
|
+
export const mapEffect = Function.dual(2, (self, f) => make({
|
|
32
|
+
get get() { return Effect.flatMap(self.get, f); },
|
|
33
|
+
get changes() { return Stream.mapEffect(self.changes, f); },
|
|
34
|
+
}));
|
|
35
|
+
/** Maps over an `Option` value in the `Subscribable`. */
|
|
36
|
+
export const mapOption = Function.dual(2, (self, f) => map(self, Option.map(f)));
|
|
37
|
+
/** Maps over an `Option` value in the `Subscribable` with an Effect. */
|
|
38
|
+
export const mapOptionEffect = Function.dual(2, (self, f) => mapEffect(self, Option.match({
|
|
11
39
|
onSome: a => Effect.map(f(a), Option.some),
|
|
12
40
|
onNone: () => Effect.succeed(Option.none()),
|
|
13
41
|
})));
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*/
|
|
29
|
-
export
|
|
30
|
-
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
*/
|
|
41
|
-
export const
|
|
42
|
+
/** Maps errors from both the current value and the stream of changes. */
|
|
43
|
+
export const mapError = Function.dual(2, (self, f) => make({
|
|
44
|
+
get get() { return Effect.mapError(self.get, f); },
|
|
45
|
+
get changes() { return Stream.mapError(self.changes, f); },
|
|
46
|
+
}));
|
|
47
|
+
/** Runs an effect when either the current value or the stream of changes fails. */
|
|
48
|
+
export const tapError = Function.dual(2, (self, f) => make({
|
|
49
|
+
get get() { return Effect.tapError(self.get, f); },
|
|
50
|
+
get changes() { return Stream.tapError(self.changes, f); },
|
|
51
|
+
}));
|
|
52
|
+
const catch_ = Function.dual(2, (self, f) => make({
|
|
53
|
+
get get() { return Effect.catch(self.get, error => f(error).get); },
|
|
54
|
+
get changes() { return Stream.catch(self.changes, error => f(error).changes); },
|
|
55
|
+
}));
|
|
56
|
+
/** Recovers from typed errors with another `Subscribable`. */
|
|
57
|
+
export { catch_ as catch };
|
|
58
|
+
/** Recovers from all failure causes with another `Subscribable`. */
|
|
59
|
+
export const catchCause = Function.dual(2, (self, f) => make({
|
|
60
|
+
get get() { return Effect.catchCause(self.get, cause => f(cause).get); },
|
|
61
|
+
get changes() { return Stream.catchCause(self.changes, cause => f(cause).changes); },
|
|
62
|
+
}));
|
|
63
|
+
/** Runs an effect when either channel fails, exposing the complete failure cause. */
|
|
64
|
+
export const tapCause = Function.dual(2, (self, f) => make({
|
|
65
|
+
get get() { return Effect.tapCause(self.get, f); },
|
|
66
|
+
get changes() { return Stream.tapCause(self.changes, f); },
|
|
67
|
+
}));
|
|
68
|
+
/** Falls back to another `Subscribable` when either channel fails. */
|
|
69
|
+
export const orElse = Function.dual(2, (self, that) => catch_(self, that));
|
|
70
|
+
/** Replaces typed errors from either channel with a lazily evaluated value. */
|
|
71
|
+
export const orElseSucceed = Function.dual(2, (self, value) => make({
|
|
72
|
+
get get() { return Effect.orElseSucceed(self.get, value); },
|
|
73
|
+
get changes() { return Stream.orElseSucceed(self.changes, value); },
|
|
74
|
+
}));
|
|
75
|
+
/** Retries failures from both channels according to the supplied schedule. */
|
|
76
|
+
export const retry = Function.dual(2, (self, policy) => make({
|
|
77
|
+
get get() { return Effect.retry(self.get, policy); },
|
|
78
|
+
get changes() { return Stream.retry(self.changes, policy); },
|
|
79
|
+
}));
|
|
80
|
+
/** Converts typed failures from both channels into `Result` values. */
|
|
81
|
+
export const result = (self) => make({
|
|
82
|
+
get get() { return Effect.result(self.get); },
|
|
83
|
+
get changes() { return Stream.result(self.changes); },
|
|
84
|
+
});
|
|
85
|
+
/** Narrows the focus to a field of an object. */
|
|
86
|
+
export const focusObjectOn = Function.dual(2, (self, key) => map(self, a => a[key]));
|
|
87
|
+
/** Narrows the focus to an indexed element of an array. */
|
|
88
|
+
export const focusArrayAt = Function.dual(2, (self, index) => mapEffect(self, a => Effect.fromOption(Array.get(a, index))));
|
|
89
|
+
export const focusArrayLength = (self) => map(self, Array.length);
|
|
90
|
+
/** Narrows the focus to an indexed element of a readonly tuple. */
|
|
91
|
+
export const focusTupleAt = Function.dual(2, (self, index) => map(self, Array.getUnsafe(index)));
|
|
92
|
+
/** Narrows the focus to an indexed element of `Chunk`. */
|
|
93
|
+
export const focusChunkAt = Function.dual(2, (self, index) => mapEffect(self, chunk => Effect.fromOption(Chunk.get(chunk, index))));
|
|
94
|
+
export const focusChunkSize = (self) => map(self, Chunk.size);
|
|
95
|
+
export const focusIterableSize = (self) => map(self, Iterable.size);
|
|
42
96
|
//# sourceMappingURL=Subscribable.js.map
|
package/dist/Subscribable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subscribable.js","sourceRoot":"","sources":["../src/Subscribable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"Subscribable.js","sourceRoot":"","sources":["../src/Subscribable.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-lens",
|
|
3
3
|
"description": "An effectful Lens type to easily manage nested state",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "2.0.0-beta.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"./README.md",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|
|
30
|
-
"build": "tsc",
|
|
30
|
+
"build": "tsc -p tsconfig.build.json",
|
|
31
31
|
"lint:tsc": "tsc --noEmit",
|
|
32
32
|
"lint:biome": "biome lint",
|
|
33
33
|
"pack": "npm pack",
|
|
@@ -36,6 +36,9 @@
|
|
|
36
36
|
"clean:modules": "rm -rf node_modules"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"effect": "
|
|
39
|
+
"effect": "4.0.0-beta.85"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"effect": "4.0.0-beta.85"
|
|
40
43
|
}
|
|
41
44
|
}
|