Update docs
All checks were successful
Lint / lint (push) Successful in 13s

This commit is contained in:
Julien Valverdé
2026-03-24 12:16:16 +01:00
parent 80c434d390
commit ff72c83ef0

View File

@@ -41,6 +41,9 @@ export class LensImpl<in out A, in out ER = never, in out EW = never, in out RR
/**
* Checks whether a value implements `Lens`.
*/
/**
* Determines whether a value implements the `Lens` interface.
*/
export const isLens = (u: unknown): u is Lens<unknown, unknown, unknown, unknown, unknown> => Predicate.hasProperty(u, LensTypeId)
@@ -294,6 +297,9 @@ export const focusChunkAt: {
)
/**
* Reads the current value from the Lens.
*/
export const get = <A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>): Effect.Effect<A, ER, RR> => self.get
export const set: {
@@ -303,6 +309,9 @@ export const set: {
self.modify<void, never, never>(() => Effect.succeed([void 0, value] as const)),
)
/**
* Sets the `Lens` to a new value and returns the previous value.
*/
export const getAndSet: {
<A, ER, EW, RR, RW>(value: A): (self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW, RR | RW>
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, value: A): Effect.Effect<A, ER | EW, RR | RW>
@@ -310,6 +319,9 @@ export const getAndSet: {
self.modify<A, never, never>(a => Effect.succeed([a, value] as const)),
)
/**
* Applies a synchronous transformation to the focused value, discarding the previous value.
*/
export const update: {
<A, ER, EW, RR, RW>(f: (a: A) => A): (self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<void, ER | EW, RR | RW>
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => A): Effect.Effect<void, ER | EW, RR | RW>
@@ -317,6 +329,9 @@ export const update: {
self.modify<void, never, never>(a => Effect.succeed([void 0, f(a)] as const)),
)
/**
* Applies an effectful transformation to the focused value, discarding the previous value.
*/
export const updateEffect: {
<A, ER, EW, RR, RW, E, R>(f: (a: A) => Effect.Effect<A, E, R>): (self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<void, ER | EW | E, RR | RW | R>
<A, ER, EW, RR, RW, E, R>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => Effect.Effect<A, E, R>): Effect.Effect<void, ER | EW | E, RR | RW | R>
@@ -327,6 +342,9 @@ export const updateEffect: {
)),
)
/**
* Applies a synchronous transformation while returning the previous value.
*/
export const getAndUpdate: {
<A, ER, EW, RR, RW>(f: (a: A) => A): (self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW, RR | RW>
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => A): Effect.Effect<A, ER | EW, RR | RW>
@@ -334,6 +352,9 @@ export const getAndUpdate: {
self.modify<A, never, never>(a => Effect.succeed([a, f(a)] as const)),
)
/**
* Applies an effectful transformation while returning the previous value.
*/
export const getAndUpdateEffect: {
<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>
<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>
@@ -344,6 +365,9 @@ export const getAndUpdateEffect: {
)),
)
/**
* Sets the value and returns the new value.
*/
export const setAndGet: {
<A, ER, EW, RR, RW>(value: A): (self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW, RR | RW>
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, value: A): Effect.Effect<A, ER | EW, RR | RW>
@@ -351,6 +375,9 @@ export const setAndGet: {
self.modify<A, never, never>(() => Effect.succeed([value, value] as const)),
)
/**
* Applies a synchronous update and returns the new value.
*/
export const updateAndGet: {
<A, ER, EW, RR, RW>(f: (a: A) => A): (self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW, RR | RW>
<A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => A): Effect.Effect<A, ER | EW, RR | RW>
@@ -361,6 +388,9 @@ export const updateAndGet: {
}),
)
/**
* Applies an effectful update and returns the new value.
*/
export const updateAndGetEffect: {
<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>
<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>