0.2.0 #5
@@ -35,21 +35,21 @@ export interface LensStep<
|
||||
in out A,
|
||||
in out B,
|
||||
in out ER = never,
|
||||
in out ESR = never,
|
||||
in out EW = never,
|
||||
in out ESW = never,
|
||||
in out RR = never,
|
||||
in out RSR = never,
|
||||
in out RW = never,
|
||||
in out SourceER = never,
|
||||
in out SourceEW = never,
|
||||
in out SourceRR = never,
|
||||
in out SourceRW = never,
|
||||
in out RSW = never,
|
||||
> {
|
||||
readonly [LensStepTypeId]: LensStepTypeId
|
||||
readonly transform: (effect: Effect.Effect<B, SourceER, SourceRR>) => Effect.Effect<A, ER, RR>
|
||||
readonly transformStream: (stream: Stream.Stream<B, SourceER, SourceRR>) => Stream.Stream<A, ER, RR>
|
||||
readonly update: (next: Effect.Effect<A, SourceEW, SourceRW>, parent: B) => Effect.Effect<B, EW, RW>
|
||||
readonly transform: (effect: Effect.Effect<B, ESR, RSR>) => Effect.Effect<A, ER, RR>
|
||||
readonly transformStream: (stream: Stream.Stream<B, ESR, RSR>) => Stream.Stream<A, ER, RR>
|
||||
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>(
|
||||
@@ -68,13 +68,13 @@ export abstract class LensImpl<
|
||||
in out A,
|
||||
in out B,
|
||||
in out ER = never,
|
||||
in out ESR = never,
|
||||
in out EW = never,
|
||||
in out ESW = never,
|
||||
in out RR = never,
|
||||
in out RSR = never,
|
||||
in out RW = never,
|
||||
in out SourceER = never,
|
||||
in out SourceEW = never,
|
||||
in out SourceRR = never,
|
||||
in out SourceRW = never,
|
||||
in out RSW = never,
|
||||
>
|
||||
extends Pipeable.Class() implements Lens<A, ER, EW, RR, RW> {
|
||||
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>[] = []
|
||||
|
||||
abstract readonly sourceGet: Effect.Effect<B, SourceER, SourceRR>
|
||||
abstract readonly sourceChanges: Stream.Stream<B, SourceER, SourceRR>
|
||||
abstract readonly sourceCommit: (b: B) => Effect.Effect<void, SourceEW, SourceRW>
|
||||
abstract readonly sourceGet: Effect.Effect<B, ESR, RSR>
|
||||
abstract readonly sourceChanges: Stream.Stream<B, ESR, RSR>
|
||||
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>
|
||||
|
||||
get get(): Effect.Effect<A, ER, RR> {
|
||||
|
||||
Reference in New Issue
Block a user