@@ -35,21 +35,21 @@ export interface LensStep<
|
|||||||
in out A,
|
in out A,
|
||||||
in out B,
|
in out B,
|
||||||
in out ER = never,
|
in out ER = never,
|
||||||
|
in out ESR = never,
|
||||||
in out EW = never,
|
in out EW = never,
|
||||||
|
in out ESW = never,
|
||||||
in out RR = never,
|
in out RR = never,
|
||||||
|
in out RSR = never,
|
||||||
in out RW = never,
|
in out RW = never,
|
||||||
in out SourceER = never,
|
in out RSW = never,
|
||||||
in out SourceEW = never,
|
|
||||||
in out SourceRR = never,
|
|
||||||
in out SourceRW = never,
|
|
||||||
> {
|
> {
|
||||||
readonly [LensStepTypeId]: LensStepTypeId
|
readonly [LensStepTypeId]: LensStepTypeId
|
||||||
readonly transform: (effect: Effect.Effect<B, SourceER, SourceRR>) => Effect.Effect<A, ER, RR>
|
readonly transform: (effect: Effect.Effect<B, ESR, RSR>) => Effect.Effect<A, ER, RR>
|
||||||
readonly transformStream: (stream: Stream.Stream<B, SourceER, SourceRR>) => Stream.Stream<A, ER, RR>
|
readonly transformStream: (stream: Stream.Stream<B, ESR, RSR>) => Stream.Stream<A, ER, RR>
|
||||||
readonly update: (next: Effect.Effect<A, SourceEW, SourceRW>, parent: B) => Effect.Effect<B, EW, RW>
|
readonly update: (next: Effect.Effect<A, ESW, RSW>, parent: B) => Effect.Effect<B, EW, RW>
|
||||||
}
|
}
|
||||||
|
|
||||||
export const isLensStep = (u: unknown): u is LensStep<unknown, unknown, unknown, unknown, unknown, unknown> => Predicate.hasProperty(u, LensStepTypeId)
|
export const isLensStep = (u: unknown): u is LensStep<unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown> => Predicate.hasProperty(u, LensStepTypeId)
|
||||||
|
|
||||||
|
|
||||||
// export const asLensWithInternals = <A, ER, EW, RR, RW>(
|
// export const asLensWithInternals = <A, ER, EW, RR, RW>(
|
||||||
@@ -68,13 +68,13 @@ export abstract class LensImpl<
|
|||||||
in out A,
|
in out A,
|
||||||
in out B,
|
in out B,
|
||||||
in out ER = never,
|
in out ER = never,
|
||||||
|
in out ESR = never,
|
||||||
in out EW = never,
|
in out EW = never,
|
||||||
|
in out ESW = never,
|
||||||
in out RR = never,
|
in out RR = never,
|
||||||
|
in out RSR = never,
|
||||||
in out RW = never,
|
in out RW = never,
|
||||||
in out SourceER = never,
|
in out RSW = never,
|
||||||
in out SourceEW = never,
|
|
||||||
in out SourceRR = never,
|
|
||||||
in out SourceRW = never,
|
|
||||||
>
|
>
|
||||||
extends Pipeable.Class() implements Lens<A, ER, EW, RR, RW> {
|
extends Pipeable.Class() implements Lens<A, ER, EW, RR, RW> {
|
||||||
readonly [Readable.TypeId]: Readable.TypeId = Readable.TypeId
|
readonly [Readable.TypeId]: Readable.TypeId = Readable.TypeId
|
||||||
@@ -84,9 +84,9 @@ extends Pipeable.Class() implements Lens<A, ER, EW, RR, RW> {
|
|||||||
|
|
||||||
readonly steps: readonly LensStep<unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown>[] = []
|
readonly steps: readonly LensStep<unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown>[] = []
|
||||||
|
|
||||||
abstract readonly sourceGet: Effect.Effect<B, SourceER, SourceRR>
|
abstract readonly sourceGet: Effect.Effect<B, ESR, RSR>
|
||||||
abstract readonly sourceChanges: Stream.Stream<B, SourceER, SourceRR>
|
abstract readonly sourceChanges: Stream.Stream<B, ESR, RSR>
|
||||||
abstract readonly sourceCommit: (b: B) => Effect.Effect<void, SourceEW, SourceRW>
|
abstract readonly sourceCommit: (b: B) => Effect.Effect<void, ESW, RSW>
|
||||||
abstract readonly withLock: <A1, E1, R1>(self: Effect.Effect<A1, E1, R1>) => Effect.Effect<A1, EW | E1, RW | R1>
|
abstract readonly withLock: <A1, E1, R1>(self: Effect.Effect<A1, E1, R1>) => Effect.Effect<A1, EW | E1, RW | R1>
|
||||||
|
|
||||||
get get(): Effect.Effect<A, ER, RR> {
|
get get(): Effect.Effect<A, ER, RR> {
|
||||||
|
|||||||
Reference in New Issue
Block a user