Skip to content

Commit

Permalink
feat: tapReader
Browse files Browse the repository at this point in the history
  • Loading branch information
sukovanej committed May 19, 2023
1 parent 7929c17 commit 2bbeedd
Show file tree
Hide file tree
Showing 16 changed files with 484 additions and 229 deletions.
81 changes: 51 additions & 30 deletions docs/modules/ReaderEither.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Added in v2.0.0
- [combinators](#combinators)
- [tap](#tap)
- [tapEither](#tapeither)
- [tapReader](#tapreader)
- [constructors](#constructors)
- [ask](#ask)
- [asks](#asks)
Expand Down Expand Up @@ -74,6 +75,8 @@ Added in v2.0.0
- [chainFirst](#chainfirst)
- [chainFirstEitherK](#chainfirsteitherk)
- [chainFirstEitherKW](#chainfirsteitherkw)
- [chainFirstReaderK](#chainfirstreaderk)
- [chainFirstReaderKW](#chainfirstreaderkw)
- [chainFirstW](#chainfirstw)
- [chainOptionK](#chainoptionk)
- [chainOptionKW](#chainoptionkw)
Expand Down Expand Up @@ -104,8 +107,6 @@ Added in v2.0.0
- [matchEW](#matchew)
- [matchW](#matchw)
- [sequencing](#sequencing)
- [chainFirstReaderK](#chainfirstreaderk)
- [chainFirstReaderKW](#chainfirstreaderkw)
- [chainReaderK](#chainreaderk)
- [chainReaderKW](#chainreaderkw)
- [flatMap](#flatmap)
Expand Down Expand Up @@ -200,6 +201,22 @@ assert.deepStrictEqual(checkString('fp-ts')(2), E.right(2))

Added in v2.16.0

## tapReader

Composes computations in sequence, using the return value of one computation to determine the next computation and
keeping only the result of the first.

**Signature**

```ts
export declare const tapReader: {
<R1, R2, E, A, _>(self: ReaderEither<R1, E, A>, f: (a: A) => R.Reader<R2, _>): ReaderEither<R1 & R2, E, A>
<R2, A, E, _>(f: (a: A) => R.Reader<R2, _>): <R1>(self: ReaderEither<R1, E, A>) => ReaderEither<R1 & R2, E, A>
}
```

Added in v2.16.0

# constructors

## ask
Expand Down Expand Up @@ -892,6 +909,38 @@ export declare const chainFirstEitherKW: <A, E2, B>(

Added in v2.12.0

## chainFirstReaderK

Alias of `tapReader`.

**Signature**

```ts
export declare const chainFirstReaderK: <A, R, B>(
f: (a: A) => R.Reader<R, B>
) => <E>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A>
```

Added in v2.11.0

## chainFirstReaderKW

Alias of `tapReader`.

Less strict version of [`chainReaderK`](#chainreaderk).

The `W` suffix (short for **W**idening) means that the environment types will be merged.

**Signature**

```ts
export declare const chainFirstReaderKW: <A, R1, B>(
f: (a: A) => R.Reader<R1, B>
) => <R2, E>(ma: ReaderEither<R2, E, A>) => ReaderEither<R1 & R2, E, A>
```

Added in v2.11.0

## chainFirstW

Alias of `tap`.
Expand Down Expand Up @@ -1243,34 +1292,6 @@ Added in v2.10.0

# sequencing

## chainFirstReaderK

**Signature**

```ts
export declare const chainFirstReaderK: <A, R, B>(
f: (a: A) => R.Reader<R, B>
) => <E>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A>
```

Added in v2.11.0

## chainFirstReaderKW

Less strict version of [`chainReaderK`](#chainreaderk).

The `W` suffix (short for **W**idening) means that the environment types will be merged.

**Signature**

```ts
export declare const chainFirstReaderKW: <A, R1, B>(
f: (a: A) => R.Reader<R1, B>
) => <R2, E>(ma: ReaderEither<R2, E, A>) => ReaderEither<R1 & R2, E, A>
```

Added in v2.11.0

## chainReaderK

**Signature**
Expand Down
77 changes: 49 additions & 28 deletions docs/modules/ReaderIO.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Added in v2.13.0
- [combinators](#combinators)
- [tap](#tap)
- [tapIO](#tapio)
- [tapReader](#tapreader)
- [constructors](#constructors)
- [ask](#ask)
- [asks](#asks)
Expand Down Expand Up @@ -45,6 +46,8 @@ Added in v2.13.0
- [chain](#chain)
- [chainFirst](#chainfirst)
- [chainFirstIOK](#chainfirstiok)
- [chainFirstReaderK](#chainfirstreaderk)
- [chainFirstReaderKW](#chainfirstreaderkw)
- [chainFirstW](#chainfirstw)
- [chainW](#chainw)
- [lifting](#lifting)
Expand All @@ -58,8 +61,6 @@ Added in v2.13.0
- [model](#model)
- [ReaderIO (interface)](#readerio-interface)
- [sequencing](#sequencing)
- [chainFirstReaderK](#chainfirstreaderk)
- [chainFirstReaderKW](#chainfirstreaderkw)
- [chainIOK](#chainiok)
- [chainReaderK](#chainreaderk)
- [chainReaderKW](#chainreaderkw)
Expand Down Expand Up @@ -139,6 +140,22 @@ test()

Added in v2.16.0

## tapReader

Composes computations in sequence, using the return value of one computation to determine the next computation and
keeping only the result of the first.

**Signature**

```ts
export declare const tapReader: {
<R1, A, R2, _>(self: ReaderIO<R1, A>, f: (a: A) => R.Reader<R2, _>): ReaderIO<R1 & R2, A>
<R2, A, _>(f: (a: A) => R.Reader<R2, _>): <R1>(self: ReaderIO<R1, A>) => ReaderIO<R1 & R2, A>
}
```

Added in v2.16.0

# constructors

## ask
Expand Down Expand Up @@ -433,6 +450,36 @@ export declare const chainFirstIOK: <A, B>(f: (a: A) => I.IO<B>) => <E>(first: R

Added in v2.13.0

## chainFirstReaderK

Alias of `tapReader`.

**Signature**

```ts
export declare const chainFirstReaderK: <A, R, B>(f: (a: A) => R.Reader<R, B>) => (ma: ReaderIO<R, A>) => ReaderIO<R, A>
```

Added in v2.13.0

## chainFirstReaderKW

Alias of `tapReader`.

Less strict version of [`chainFirstReaderK`](#chainfirstreaderk).

The `W` suffix (short for **W**idening) means that the environment types will be merged.

**Signature**

```ts
export declare const chainFirstReaderKW: <A, R1, B>(
f: (a: A) => R.Reader<R1, B>
) => <R2>(ma: ReaderIO<R2, A>) => ReaderIO<R1 & R2, A>
```

Added in v2.13.0

## chainFirstW

Alias of `tap`.
Expand Down Expand Up @@ -555,32 +602,6 @@ Added in v2.13.0

# sequencing

## chainFirstReaderK

**Signature**

```ts
export declare const chainFirstReaderK: <A, R, B>(f: (a: A) => R.Reader<R, B>) => (ma: ReaderIO<R, A>) => ReaderIO<R, A>
```

Added in v2.13.0

## chainFirstReaderKW

Less strict version of [`chainFirstReaderK`](#chainfirstreaderk).

The `W` suffix (short for **W**idening) means that the environment types will be merged.

**Signature**

```ts
export declare const chainFirstReaderKW: <A, R1, B>(
f: (a: A) => R.Reader<R1, B>
) => <R2>(ma: ReaderIO<R2, A>) => ReaderIO<R1 & R2, A>
```

Added in v2.13.0

## chainIOK

**Signature**
Expand Down
81 changes: 51 additions & 30 deletions docs/modules/ReaderTask.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Added in v2.3.0
- [combinators](#combinators)
- [tap](#tap)
- [tapIO](#tapio)
- [tapReader](#tapreader)
- [tapTask](#taptask)
- [constructors](#constructors)
- [ask](#ask)
Expand Down Expand Up @@ -53,6 +54,8 @@ Added in v2.3.0
- [chain](#chain)
- [chainFirst](#chainfirst)
- [chainFirstIOK](#chainfirstiok)
- [chainFirstReaderK](#chainfirstreaderk)
- [chainFirstReaderKW](#chainfirstreaderkw)
- [chainFirstTaskK](#chainfirsttaskk)
- [chainFirstW](#chainfirstw)
- [chainW](#chainw)
Expand All @@ -71,8 +74,6 @@ Added in v2.3.0
- [sequencing](#sequencing)
- [chainFirstReaderIOK](#chainfirstreaderiok)
- [chainFirstReaderIOKW](#chainfirstreaderiokw)
- [chainFirstReaderK](#chainfirstreaderk)
- [chainFirstReaderKW](#chainfirstreaderkw)
- [chainIOK](#chainiok)
- [chainReaderIOK](#chainreaderiok)
- [chainReaderIOKW](#chainreaderiokw)
Expand Down Expand Up @@ -166,6 +167,22 @@ test()

Added in v2.16.0

## tapReader

Composes computations in sequence, using the return value of one computation to determine the next computation and
keeping only the result of the first.

**Signature**

```ts
export declare const tapReader: {
<R1, R2, A, _>(self: ReaderTask<R1, A>, f: (a: A) => R.Reader<R2, _>): ReaderTask<R1 & R2, A>
<R2, A, _>(f: (a: A) => R.Reader<R2, _>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A>
}
```

Added in v2.16.0

## tapTask

Composes computations in sequence, using the return value of one computation to determine the next computation and
Expand Down Expand Up @@ -578,6 +595,38 @@ export declare const chainFirstIOK: <A, B>(f: (a: A) => IO<B>) => <R>(first: Rea

Added in v2.10.0

## chainFirstReaderK

Alias of `tapReader`.

**Signature**

```ts
export declare const chainFirstReaderK: <A, R, B>(
f: (a: A) => R.Reader<R, B>
) => (ma: ReaderTask<R, A>) => ReaderTask<R, A>
```

Added in v2.11.0

## chainFirstReaderKW

Alias of `tapReader`.

Less strict version of [`chainFirstReaderK`](#chainfirstreaderk).

The `W` suffix (short for **W**idening) means that the environment types will be merged.

**Signature**

```ts
export declare const chainFirstReaderKW: <A, R1, B>(
f: (a: A) => R.Reader<R1, B>
) => <R2>(ma: ReaderTask<R2, A>) => ReaderTask<R1 & R2, A>
```

Added in v2.11.0

## chainFirstTaskK

Alias of `tapTask`.
Expand Down Expand Up @@ -762,34 +811,6 @@ export declare const chainFirstReaderIOKW: <A, R2, B>(

Added in v2.13.0

## chainFirstReaderK

**Signature**

```ts
export declare const chainFirstReaderK: <A, R, B>(
f: (a: A) => R.Reader<R, B>
) => (ma: ReaderTask<R, A>) => ReaderTask<R, A>
```

Added in v2.11.0

## chainFirstReaderKW

Less strict version of [`chainFirstReaderK`](#chainfirstreaderk).

The `W` suffix (short for **W**idening) means that the environment types will be merged.

**Signature**

```ts
export declare const chainFirstReaderKW: <A, R1, B>(
f: (a: A) => R.Reader<R1, B>
) => <R2>(ma: ReaderTask<R2, A>) => ReaderTask<R1 & R2, A>
```

Added in v2.11.0

## chainIOK

**Signature**
Expand Down

0 comments on commit 2bbeedd

Please sign in to comment.