diff --git a/docs/en/v1/api/either/future.md b/docs/en/v1/api/either/future.md
index d599cebaa..c8f0b2792 100644
--- a/docs/en/v1/api/either/future.md
+++ b/docs/en/v1/api/either/future.md
@@ -39,7 +39,6 @@ An instance of `Future`, subclass of `Promise`, whose `await` automatically retu
## Best practices
-- `Future` automatically propagates the first `Left` encountered: combine it with `E.rightAsyncPipe` for your async pipelines.
- Use `Future.all([...])` to wait for multiple typed operations.
- Prefer `futureSuccess` / `futureError` to create base cases.
@@ -47,4 +46,4 @@ An instance of `Future`, subclass of `Promise`, whose `await` automatically retu
- [`futureSuccess`](/en/v1/api/either/futureSuccess).
- [`futureError`](/en/v1/api/either/futureError).
-- [`rightAsyncPipe`](/en/v1/api/either/rightAsyncPipe) – To chain async operations.
+- [`asyncGroup`](/en/v1/api/either/asyncGroup) – To aggregate asynchronous `Either` values.
diff --git a/docs/en/v1/api/either/index.md b/docs/en/v1/api/either/index.md
index 481b9df63..c4178845c 100644
--- a/docs/en/v1/api/either/index.md
+++ b/docs/en/v1/api/either/index.md
@@ -179,7 +179,7 @@ Unwraps a `Left` payload immediately and throws if the input is not `Left`.
Chains synchronous transformations as long as results are `Right`, and stops at the first `Left`.
### [rightAsyncPipe](/en/v1/api/either/rightAsyncPipe)
-Async version that accepts promises, `Future`, or `Either` and automatically stops on a `Left`.
+Async version that accepts promises or `Either` and automatically stops on a `Left`.
### [group](/en/v1/api/either/group)
Aggregates multiple synchronous `Either` and returns the first `Left` or an object of `Right` values.
@@ -217,7 +217,7 @@ Unwraps selected `Either` payloads from an exhaustive information selector, othe
Type-level helper that returns the same Either while preserving strict Left/Right typing.
### [safeCallback](/en/v1/api/either/safeCallback)
-Runs a callback and captures exceptions into a `Left<"callback">`.
+Runs a callback and captures thrown errors or promise rejections into, or resolves to, a `Left<"safe-callback-error">`.
## Boolean helpers
diff --git a/docs/en/v1/api/either/rightAsyncPipe.md b/docs/en/v1/api/either/rightAsyncPipe.md
index 35759428c..e0a41af93 100644
--- a/docs/en/v1/api/either/rightAsyncPipe.md
+++ b/docs/en/v1/api/either/rightAsyncPipe.md
@@ -1,6 +1,6 @@
---
outline: [2, 3]
-description: "Asynchronous version of rightPipe. Automatically handles promises, Future, and Either, and short-circuits on the first Left."
+description: "Asynchronous version of rightPipe. Automatically handles promises and Either, and short-circuits on the first Left."
prev:
text: "rightPipe"
link: "/en/v1/api/either/rightPipe"
@@ -11,47 +11,52 @@ next:
# rightAsyncPipe
-Asynchronous version of `rightPipe`. Automatically handles promises, `Future`, and `Either`, and short-circuits on the first `Left`.
+Asynchronous version of `rightPipe`. Automatically handles promises and `Either`, and short-circuits on the first `Left`.
## Interactive example
## Syntax
```typescript
function rightAsyncPipe<
- GenericInput extends MaybeFutureEither,
- GenericOutputPipe1 extends MaybeFutureEither
+ const GenericInput extends unknown,
+ const GenericOutputPipe1 extends unknown
>(
input: GenericInput,
pipe1: RightAsyncPipeFunction
-): Future>;
+): Promise<
+ Extract<
+ RightAsyncPipeResult,
+ any
+ >
+>;
// ... overloads up to 15 steps
```
-`RightAsyncPipeFunction` receives the unwrapped value of a `Right` (after `await`) and can return a raw value, an `Either`, or a promise/Future of these values.
+`RightAsyncPipeFunction` receives the unwrapped value of a `Right` (after `await`) and can return a raw value, an `Either`, or a promise of these values.
## Parameters
-- `input`: Starting `Either`, promise, or `Future`.
+- `input`: Starting value, `Either`, or promise.
- `pipeX`: Async or sync functions executed sequentially. The pipeline stops on the first `Left`.
## Return value
-A `Future` resolved with the last `Right` if everything succeeds, or the `Left` that interrupted the pipeline.
+A `Promise` resolved with the last `Right` if everything succeeds, or the `Left` that interrupted the pipeline.
## Best practices
- Prefix your information with a clear namespace (`"user.fetch"`, `"user.validate"`) to track progress.
- Combine `rightAsyncPipe` and `rightPipe` depending on whether your steps are sync/async.
-- In a `Promise`/`Future` mix, let `rightAsyncPipe` handle the normalization.
+- Let `rightAsyncPipe` await each step instead of manually unwrapping intermediate promises.
## See also
- [`rightPipe`](/en/v1/api/either/rightPipe).
-- [`future`](/en/v1/api/either/future) – To create `Future` values to chain.
+- [`safeCallback`](/en/v1/api/either/safeCallback) – To convert thrown errors into `Either` values.
diff --git a/docs/en/v1/api/either/safeCallback.md b/docs/en/v1/api/either/safeCallback.md
index 50839a2d6..1e20a3d7c 100644
--- a/docs/en/v1/api/either/safeCallback.md
+++ b/docs/en/v1/api/either/safeCallback.md
@@ -1,6 +1,6 @@
---
outline: [2, 3]
-description: "Runs a callback in a safe block. If the callback throws, the function returns a \"callback\" typed Left instead of propagating the exception."
+description: "Runs a callback in a safe block. If the callback throws or returns a rejected promise, the function returns or resolves to a safe-callback-error Left instead of propagating the error."
prev:
text: "expect"
link: "/en/v1/api/either/expect"
@@ -11,37 +11,38 @@ next:
# safeCallback
-Runs a callback in a safe block. If the callback throws, the function returns a `"callback"` typed `Left` instead of propagating the exception. If the callback returns an `Either`, it is kept as-is.
+Runs a callback in a safe block. If the callback throws or returns a rejected promise, the function returns or resolves to a `"safe-callback-error"` typed `Left` instead of propagating the error. If the callback returns an `Either`, it is kept as-is. Promise results are handled after resolution.
## Interactive example
## Syntax
```typescript
function safeCallback<
- GenericOutput extends unknown
+ const GenericOutput extends unknown
>(
theFunction: () => GenericOutput
-): ComputeSafeCallbackResult | CallbackError;
+): Extract, any>;
```
## Parameters
-- `theFunction` : Callback to execute in a safe block.
+- `theFunction`: Callback to execute in a safe block. It can return a direct value, an `Either`, or a promise of either.
## Return value
-- If the callback returns an `Left` or `Right`: the `Either` is returned as-is.
-- If the callback succeeds with a non-`Either` value: the value is wrapped in `CallbackSuccess`.
-- If the callback throws: `CallbackError` (alias of `left("callback", error)`).
+- If the callback returns a `Left` or `Right`: the `Either` is returned as-is.
+- If the callback succeeds with a non-`Either` value: the value is wrapped in `SafeCallbackSuccess`.
+- If the callback returns a promise: the resolved value follows the same rules.
+- If the callback throws or the promise rejects: `SafeCallbackError` (`left("safe-callback-error", error)`) is returned or resolved.
## See also
- [`left`](/en/v1/api/either/left) – Build a typed `Left`.
-- [`whenHasInformation`](/en/v1/api/either/whenHasInformation) – Pattern match on `"callback"`.
+- [`whenHasInformation`](/en/v1/api/either/whenHasInformation) – Pattern match on `"safe-callback-error"`.
diff --git a/docs/en/v1/guide/either.md b/docs/en/v1/guide/either.md
index 5738ec35b..f249a9f85 100644
--- a/docs/en/v1/guide/either.md
+++ b/docs/en/v1/guide/either.md
@@ -89,7 +89,7 @@ if (E.isLeft(result) && E.hasInformation(result, "emailAlreadyExists")) {
When you want to chain transformations **as long as it stays a `Right`**:
- `E.rightPipe` for sync
-- `E.rightAsyncPipe` for async (promises and `Future`)
+- `E.rightAsyncPipe` for async pipelines based on promises
To aggregate multiple `Either`:
- `E.group` returns the first `Left`, otherwise a `Right` with all values
diff --git a/docs/examples/v1/api/array/withMaxElements/tryout.doc.ts b/docs/examples/v1/api/array/withMaxElements/tryout.doc.ts
index e25ac764f..e4ade937a 100644
--- a/docs/examples/v1/api/array/withMaxElements/tryout.doc.ts
+++ b/docs/examples/v1/api/array/withMaxElements/tryout.doc.ts
@@ -25,6 +25,6 @@ const pipeRoles = pipe(
type checkPipeRoles = ExpectType<
typeof pipeRoles,
- ["guest"] & A.MaxElements<1>,
+ readonly ["guest"] & A.MaxElements<1>,
"strict"
>;
diff --git a/docs/examples/v1/api/either/bool/tryout.doc.ts b/docs/examples/v1/api/either/bool/tryout.doc.ts
index 0d9cc4bbc..48f67de7f 100644
--- a/docs/examples/v1/api/either/bool/tryout.doc.ts
+++ b/docs/examples/v1/api/either/bool/tryout.doc.ts
@@ -2,12 +2,12 @@ import { A, E, pipe, type ExpectType, equal } from "@duplojs/utils";
const result = pipe(
["duplo"],
- A.find(equal("nest")),
+ A.find(equal("duplo")),
E.bool,
);
type check = ExpectType<
typeof result,
- E.BoolFalsy | E.BoolTruthy<"nest">,
+ E.BoolFalsy | E.BoolTruthy<"duplo">,
"strict"
>;
diff --git a/docs/examples/v1/api/either/rightAsyncPipe/tryout.doc.ts b/docs/examples/v1/api/either/rightAsyncPipe/tryout.doc.ts
index 4afe7f992..1b5b44eee 100644
--- a/docs/examples/v1/api/either/rightAsyncPipe/tryout.doc.ts
+++ b/docs/examples/v1/api/either/rightAsyncPipe/tryout.doc.ts
@@ -1,15 +1,13 @@
import { E, type ExpectType } from "@duplojs/utils";
-const input = E.future(
- Promise.resolve(
- true
- ? false
- ? true
- ? E.right("right-1", 1)
- : E.left("left-1", null)
- : E.right("right-2", 2)
- : E.left("left-2", 2),
- ),
+const input = Promise.resolve(
+ true
+ ? false
+ ? true
+ ? E.right("right-1", 1)
+ : E.left("left-1", null)
+ : E.right("right-2", 2)
+ : E.left("left-2", 2),
);
const result = E.rightAsyncPipe(
diff --git a/docs/examples/v1/api/either/safeCallback/tryout.doc.ts b/docs/examples/v1/api/either/safeCallback/tryout.doc.ts
index b12978504..f2f4180f3 100644
--- a/docs/examples/v1/api/either/safeCallback/tryout.doc.ts
+++ b/docs/examples/v1/api/either/safeCallback/tryout.doc.ts
@@ -1,7 +1,7 @@
import { E } from "@duplojs/utils";
const success = E.safeCallback(() => 42);
-// E.CallbackError | E.CallbackSuccess
+// E.SafeCallbackSuccess | E.SafeCallbackError
const failure = E.safeCallback(() => {
throw new Error("boom");
@@ -14,3 +14,12 @@ const eitherResult = E.safeCallback(
);
const isLeft = E.isLeft(eitherResult);
+
+const asyncSuccess = E.safeCallback(
+ () => Promise.resolve("done"),
+);
+// Promise | E.SafeCallbackError> | E.SafeCallbackError
+
+const asyncFailure = E.safeCallback(
+ () => Promise.reject(new Error("boom")),
+);
diff --git a/docs/fr/v1/api/either/future.md b/docs/fr/v1/api/either/future.md
index b49adf92d..5642540e8 100644
--- a/docs/fr/v1/api/either/future.md
+++ b/docs/fr/v1/api/either/future.md
@@ -39,7 +39,6 @@ Une instance de `Future`, sous-classe de `Promise`, dont `await` retourne automa
## Bonnes pratiques
-- `Future` propage automatiquement le premier `Left` rencontré : combinez-le avec `E.rightAsyncPipe` pour vos pipelines async.
- Utilisez `Future.all([...])` pour attendre plusieurs opérations typées.
- Préférez `futureSuccess` / `futureError` pour créer des cas de base.
@@ -47,4 +46,4 @@ Une instance de `Future`, sous-classe de `Promise`, dont `await` retourne automa
- [`futureSuccess`](/fr/v1/api/either/futureSuccess).
- [`futureError`](/fr/v1/api/either/futureError).
-- [`rightAsyncPipe`](/fr/v1/api/either/rightAsyncPipe) – Pour chaîner des opérations async.
+- [`asyncGroup`](/fr/v1/api/either/asyncGroup) – Pour agréger des valeurs `Either` asynchrones.
diff --git a/docs/fr/v1/api/either/index.md b/docs/fr/v1/api/either/index.md
index 7510fd304..70112117b 100644
--- a/docs/fr/v1/api/either/index.md
+++ b/docs/fr/v1/api/either/index.md
@@ -94,7 +94,7 @@ Unwrap immédiatement le payload d'un `Left` et lève une erreur si l'entrée n'
Chaîne des transformations synchrones tant que les résultats restent `Right`, s'interrompt sur le premier `Left`.
### [rightAsyncPipe](/fr/v1/api/either/rightAsyncPipe)
-Version asynchrone acceptant promesses, `Future` ou `Either` et s'arrêtant automatiquement sur un `Left`.
+Version asynchrone acceptant promesses ou `Either` et s'arrêtant automatiquement sur un `Left`.
### [group](/fr/v1/api/either/group)
Agrège plusieurs `Either` synchrones et renvoie le premier `Left` ou un objet des valeurs `Right`.
@@ -132,7 +132,7 @@ Unwrap les payloads `Either` sélectionnés par un sélecteur exhaustif d'inform
Helper de typage qui renvoie le même Either en conservant strictement les types Left/Right.
### [safeCallback](/fr/v1/api/either/safeCallback)
-Exécute un callback en capturant les exceptions dans un `Left<"callback">`.
+Exécute un callback en capturant les exceptions et rejets de promesse dans, ou en résolvant vers, un `Left<"safe-callback-error">`.
## Helpers booléens
diff --git a/docs/fr/v1/api/either/rightAsyncPipe.md b/docs/fr/v1/api/either/rightAsyncPipe.md
index f7b46e092..c52d981d8 100644
--- a/docs/fr/v1/api/either/rightAsyncPipe.md
+++ b/docs/fr/v1/api/either/rightAsyncPipe.md
@@ -1,6 +1,6 @@
---
outline: [2, 3]
-description: "Version asynchrone de rightPipe. Gère automatiquement les promesses, Future et Either, et court-circuite sur le premier Left."
+description: "Version asynchrone de rightPipe. Gère automatiquement les promesses et Either, et court-circuite sur le premier Left."
prev:
text: "rightPipe"
link: "/fr/v1/api/either/rightPipe"
@@ -11,47 +11,52 @@ next:
# rightAsyncPipe
-Version asynchrone de `rightPipe`. Gère automatiquement les promesses, `Future` et `Either`, et court-circuite sur le premier `Left`.
+Version asynchrone de `rightPipe`. Gère automatiquement les promesses et `Either`, et court-circuite sur le premier `Left`.
## Exemple interactif
## Syntaxe
```typescript
function rightAsyncPipe<
- GenericInput extends MaybeFutureEither,
- GenericOutputPipe1 extends MaybeFutureEither
+ const GenericInput extends unknown,
+ const GenericOutputPipe1 extends unknown
>(
input: GenericInput,
pipe1: RightAsyncPipeFunction
-): Future>;
+): Promise<
+ Extract<
+ RightAsyncPipeResult,
+ any
+ >
+>;
// ... overloads jusqu'à 15 steps
```
-`RightAsyncPipeFunction` reçoit la valeur unwrap d'un `Right` (après `await`) et peut retourner une valeur brute, un `Either` ou une promesse/Future de ces valeurs.
+`RightAsyncPipeFunction` reçoit la valeur unwrap d'un `Right` (après `await`) et peut retourner une valeur brute, un `Either` ou une promesse de ces valeurs.
## Paramètres
-- `input` : `Either`, promesse ou `Future` de départ.
+- `input` : Valeur, `Either` ou promesse de départ.
- `pipeX` : Fonctions async ou sync exécutées séquentiellement. Le pipeline stoppe sur le premier `Left`.
## Valeur de retour
-Une `Future` résolue avec le dernier `Right` si tout réussit, ou le `Left` qui a interrompu le pipeline.
+Une `Promise` résolue avec le dernier `Right` si tout réussit, ou le `Left` qui a interrompu le pipeline.
## Bonnes pratiques
- Préfixez vos informations avec un namespace clair (`"user.fetch"`, `"user.validate"`) pour suivre l'avancement.
- Combinez `rightAsyncPipe` et `rightPipe` selon que vos étapes soient sync/async.
-- En cas de mix `Promise`/`Future`, laissez `rightAsyncPipe` gérer l'uniformisation.
+- Laissez `rightAsyncPipe` attendre chaque étape plutôt que d'unwrap les promesses intermédiaires à la main.
## Voir aussi
- [`rightPipe`](/fr/v1/api/either/rightPipe).
-- [`future`](/fr/v1/api/either/future) – Pour créer des `Future` à chaîner.
+- [`safeCallback`](/fr/v1/api/either/safeCallback) – Pour convertir les erreurs levées en valeurs `Either`.
diff --git a/docs/fr/v1/api/either/safeCallback.md b/docs/fr/v1/api/either/safeCallback.md
index a1422643b..1fae2a076 100644
--- a/docs/fr/v1/api/either/safeCallback.md
+++ b/docs/fr/v1/api/either/safeCallback.md
@@ -1,6 +1,6 @@
---
outline: [2, 3]
-description: "Exécute un callback dans un bloc sécurisé. Si le callback lève une erreur, la fonction renvoie un Left typé \"callback\" au lieu de propager l'exception."
+description: "Exécute un callback dans un bloc sécurisé. Si le callback lève une erreur ou retourne une promesse rejetée, la fonction renvoie ou résout vers un Left safe-callback-error au lieu de propager l'erreur."
prev:
text: "expect"
link: "/fr/v1/api/either/expect"
@@ -11,37 +11,38 @@ next:
# safeCallback
-Exécute un callback dans un bloc sécurisé. Si le callback lève une erreur, la fonction renvoie un `Left` typé `"callback"` au lieu de propager l'exception. Si le callback retourne un `Either`, il est conservé tel quel.
+Exécute un callback dans un bloc sécurisé. Si le callback lève une erreur ou retourne une promesse rejetée, la fonction renvoie ou résout vers un `Left` typé `"safe-callback-error"` au lieu de propager l'erreur. Si le callback retourne un `Either`, il est conservé tel quel. Les résultats de promesse suivent les mêmes règles après résolution.
## Exemple interactif
## Syntaxe
```typescript
function safeCallback<
- GenericOutput extends unknown
+ const GenericOutput extends unknown
>(
theFunction: () => GenericOutput
-): ComputeSafeCallbackResult | CallbackError;
+): Extract, any>;
```
## Paramètres
-- `theFunction` : Callback à exécuter en mode sécurisé.
+- `theFunction` : Callback à exécuter en mode sécurisé. Il peut retourner une valeur directe, un `Either` ou une promesse de l'un des deux.
## Valeur de retour
- Si le callback retourne un `Left` ou `Right` : l'`Either` est renvoyé tel quel.
-- Si le callback réussit avec une valeur non `Either` : la valeur est encapsulée dans `CallbackSuccess`.
-- Si le callback lève une erreur : `CallbackError` (alias de `left("callback", error)`).
+- Si le callback réussit avec une valeur non `Either` : la valeur est encapsulée dans `SafeCallbackSuccess`.
+- Si le callback retourne une promesse : la valeur résolue suit les mêmes règles.
+- Si le callback lève une erreur ou si la promesse rejette : `SafeCallbackError` (`left("safe-callback-error", error)`) est renvoyé ou résolu.
## Voir aussi
- [`left`](/fr/v1/api/either/left) – Construire un `Left` typé.
-- [`whenHasInformation`](/fr/v1/api/either/whenHasInformation) – Pattern matching sur `"callback"`.
+- [`whenHasInformation`](/fr/v1/api/either/whenHasInformation) – Pattern matching sur `"safe-callback-error"`.
diff --git a/docs/fr/v1/guide/either.md b/docs/fr/v1/guide/either.md
index 058570e6f..63498310c 100644
--- a/docs/fr/v1/guide/either.md
+++ b/docs/fr/v1/guide/either.md
@@ -89,7 +89,7 @@ if (E.isLeft(result) && E.hasInformation(result, "emailAlreadyExists")) {
Quand tu veux enchaîner des transformations **tant que ça reste un `Right`** :
- `E.rightPipe` pour le synchrone
-- `E.rightAsyncPipe` pour l'asynchrone (promesses et `Future`)
+- `E.rightAsyncPipe` pour les pipelines asynchrones basés sur des promesses
Pour agréger plusieurs `Either` :
- `E.group` renvoie le premier `Left`, sinon un `Right` contenant toutes les valeurs
diff --git a/docs/public/libs/v1/array/fill/default.d.ts b/docs/public/libs/v1/array/fill/default.d.ts
index f17aa6d23..a069829a2 100644
--- a/docs/public/libs/v1/array/fill/default.d.ts
+++ b/docs/public/libs/v1/array/fill/default.d.ts
@@ -16,12 +16,9 @@
* 3,
* ); // [10, 0, 0, 40]
*
+ * const input = ["alpha", "beta", "gamma"];
* pipe(
- * [
- * "alpha",
- * "beta",
- * "gamma",
- * ],
+ * input,
* A.fill("delta", 0, 2),
* ); // ["delta", "delta", "gamma"]
* ```
diff --git a/docs/public/libs/v1/array/findAndSplice/insert.d.ts b/docs/public/libs/v1/array/findAndSplice/insert.d.ts
index f47fb2a68..2e4980756 100644
--- a/docs/public/libs/v1/array/findAndSplice/insert.d.ts
+++ b/docs/public/libs/v1/array/findAndSplice/insert.d.ts
@@ -18,8 +18,9 @@ interface ArrayFindAndSpliceInsertIndexParams {
* [9],
* ); // [1, 9, 2, 3]
*
+ * const input = ["alpha", "beta"];
* pipe(
- * ["alpha", "beta"],
+ * input,
* A.findAndSpliceInsert((value) => value === "alpha", ["start"]),
* ); // ["start", "alpha", "beta"]
*
@@ -28,7 +29,6 @@ interface ArrayFindAndSpliceInsertIndexParams {
* (value) => value === 5,
* [0],
* ); // undefined
- *
* ```
*
* @remarks
diff --git a/docs/public/libs/v1/array/findAndSplice/replace.d.ts b/docs/public/libs/v1/array/findAndSplice/replace.d.ts
index 1de2f4201..88a36a8e1 100644
--- a/docs/public/libs/v1/array/findAndSplice/replace.d.ts
+++ b/docs/public/libs/v1/array/findAndSplice/replace.d.ts
@@ -18,8 +18,9 @@ interface ArrayFindAndSpliceReplaceIndexParams {
* [9, 8],
* ); // [1, 9, 8, 4]
*
+ * const input = ["alpha", "beta", "gamma"];
* pipe(
- * ["alpha", "beta", "gamma"],
+ * input,
* A.findAndSpliceReplace((value) => value === "beta", ["delta"]),
* ); // ["alpha", "delta", "gamma"]
*
@@ -28,7 +29,6 @@ interface ArrayFindAndSpliceReplaceIndexParams {
* (value) => value === 5,
* [0],
* ); // undefined
- *
* ```
*
* @remarks
diff --git a/docs/public/libs/v1/array/indexOf.d.ts b/docs/public/libs/v1/array/indexOf.d.ts
index 24b3408ae..3e35fedd5 100644
--- a/docs/public/libs/v1/array/indexOf.d.ts
+++ b/docs/public/libs/v1/array/indexOf.d.ts
@@ -19,11 +19,11 @@
* 2,
* ); // undefined
*
+ * const input = ["alpha", "beta"];
* pipe(
- * ["alpha", "beta"],
+ * input,
* A.indexOf("beta"),
* ); // 1
- *
* ```
*
* @remarks
diff --git a/docs/public/libs/v1/array/lastIndexOf.d.ts b/docs/public/libs/v1/array/lastIndexOf.d.ts
index ea75b42cd..0999711ca 100644
--- a/docs/public/libs/v1/array/lastIndexOf.d.ts
+++ b/docs/public/libs/v1/array/lastIndexOf.d.ts
@@ -19,8 +19,9 @@
* 1,
* ); // 0
*
+ * const input = ["alpha", "beta"];
* pipe(
- * ["alpha", "beta"],
+ * input,
* A.lastIndexOf("gamma"),
* ); // undefined
* ```
diff --git a/docs/public/libs/v1/array/push.d.ts b/docs/public/libs/v1/array/push.d.ts
index 33815e734..8186dcd6e 100644
--- a/docs/public/libs/v1/array/push.d.ts
+++ b/docs/public/libs/v1/array/push.d.ts
@@ -19,11 +19,11 @@
* 4,
* ); // [1, 2, 3, 4]
*
+ * const input = ["alpha", "beta"];
* pipe(
- * ["alpha", "beta"],
+ * input,
* A.push("gamma"),
* ); // ["alpha", "beta", "gamma"]
- *
* ```
*
* @remarks
diff --git a/docs/public/libs/v1/array/set.d.ts b/docs/public/libs/v1/array/set.d.ts
index 24c898094..0f82d2d81 100644
--- a/docs/public/libs/v1/array/set.d.ts
+++ b/docs/public/libs/v1/array/set.d.ts
@@ -21,11 +21,11 @@
* 0,
* ); // [1, 2, 0]
*
+ * const input = ["alpha", "beta"];
* pipe(
- * ["alpha", "beta"],
+ * input,
* A.set(0, "gamma"),
* ); // ["gamma", "beta"]
- *
* ```
*
* @remarks
diff --git a/docs/public/libs/v1/array/splice/insert.d.ts b/docs/public/libs/v1/array/splice/insert.d.ts
index 8cc49026d..e7af97c5a 100644
--- a/docs/public/libs/v1/array/splice/insert.d.ts
+++ b/docs/public/libs/v1/array/splice/insert.d.ts
@@ -14,8 +14,9 @@
* [9],
* ); // [1, 9, 2, 3]
*
+ * const input = ["alpha", "beta"];
* pipe(
- * ["alpha", "beta"],
+ * input,
* A.spliceInsert(0, ["start"]),
* ); // ["start", "alpha", "beta"]
*
@@ -24,7 +25,6 @@
* 2,
* [3],
* ); // [1, 2, 3]
- *
* ```
*
* @remarks
diff --git a/docs/public/libs/v1/array/splice/replace.d.ts b/docs/public/libs/v1/array/splice/replace.d.ts
index b481d5c3d..7ea2d0261 100644
--- a/docs/public/libs/v1/array/splice/replace.d.ts
+++ b/docs/public/libs/v1/array/splice/replace.d.ts
@@ -14,8 +14,9 @@
* [9, 8],
* ); // [1, 9, 8]
*
+ * const input = ["alpha", "beta", "gamma"];
* pipe(
- * ["alpha", "beta", "gamma"],
+ * input,
* A.spliceReplace(1, ["delta"]),
* ); // ["alpha", "delta", "gamma"]
*
@@ -24,7 +25,6 @@
* 0,
* [3],
* ); // [3, 2]
- *
* ```
*
* @remarks
diff --git a/docs/public/libs/v1/array/unshift.d.ts b/docs/public/libs/v1/array/unshift.d.ts
index 31d976779..0e43a4251 100644
--- a/docs/public/libs/v1/array/unshift.d.ts
+++ b/docs/public/libs/v1/array/unshift.d.ts
@@ -19,11 +19,11 @@
* 2,
* ); // [1, 2, 3, 4]
*
+ * const input = ["beta", "gamma"];
* pipe(
- * ["beta", "gamma"],
+ * input,
* A.unshift("alpha"),
* ); // ["alpha", "beta", "gamma"]
- *
* ```
*
* @remarks
diff --git a/docs/public/libs/v1/array/withMaxElements.d.ts b/docs/public/libs/v1/array/withMaxElements.d.ts
index 7ee684f02..f59b4e7ab 100644
--- a/docs/public/libs/v1/array/withMaxElements.d.ts
+++ b/docs/public/libs/v1/array/withMaxElements.d.ts
@@ -39,13 +39,13 @@ type CheckMaxLengthCast, GenericLength ex
* >;
*
* const pipeRoles = pipe(
- * ["guest"] as const,
+ * ["guest"],
* A.withMaxElements,
* );
*
* type checkPipe = ExpectType<
* typeof pipeRoles,
- * ["guest"] & A.MaxElements<1>,
+ * readonly ["guest"] & A.MaxElements<1>,
* "strict"
* >;
* ```
diff --git a/docs/public/libs/v1/common/asyncInnerPipe.cjs b/docs/public/libs/v1/common/asyncInnerPipe.cjs
index 5035a1b77..b37baabb6 100644
--- a/docs/public/libs/v1/common/asyncInnerPipe.cjs
+++ b/docs/public/libs/v1/common/asyncInnerPipe.cjs
@@ -1,6 +1,5 @@
'use strict';
-/* eslint-disable @typescript-eslint/max-params */
function asyncInnerPipe(...pipes) {
return async (input) => {
let acc = input;
diff --git a/docs/public/libs/v1/common/asyncInnerPipe.d.ts b/docs/public/libs/v1/common/asyncInnerPipe.d.ts
index 72244d97c..48d575cd1 100644
--- a/docs/public/libs/v1/common/asyncInnerPipe.d.ts
+++ b/docs/public/libs/v1/common/asyncInnerPipe.d.ts
@@ -1,7 +1,4 @@
-import { type MaybeFutureEither } from "../either/future/maybeFutureEither";
-import { type MaybePromise, type EscapeVoid, type BreakGenericLink } from "./types";
-import { type AnyValue } from "./types/anyValue";
-type MaybePromiseLike = MaybePromise | MaybeFutureEither;
+import { type MaybePromise, type BreakGenericLink } from "./types";
/**
* The asyncInnerPipe() method builds a reusable asynchronous pipeline. It returns a function that accepts a value or a promise, runs each step while waiting for the previous one, then returns a promise of the final result.
*
@@ -49,19 +46,18 @@ type MaybePromiseLike = MaybePromise
* @see https://utils.duplojs.dev/en/v1/api/common/asyncInnerPipe
*
*/
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike, pipe7: (input: GenericOutputPipe6) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike, pipe7: (input: GenericOutputPipe6) => MaybePromiseLike, pipe8: (input: GenericOutputPipe7) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike, pipe7: (input: GenericOutputPipe6) => MaybePromiseLike, pipe8: (input: GenericOutputPipe7) => MaybePromiseLike, pipe9: (input: GenericOutputPipe8) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike, pipe7: (input: GenericOutputPipe6) => MaybePromiseLike, pipe8: (input: GenericOutputPipe7) => MaybePromiseLike, pipe9: (input: GenericOutputPipe8) => MaybePromiseLike, pipe10: (input: GenericOutputPipe9) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike, pipe7: (input: GenericOutputPipe6) => MaybePromiseLike, pipe8: (input: GenericOutputPipe7) => MaybePromiseLike, pipe9: (input: GenericOutputPipe8) => MaybePromiseLike, pipe10: (input: GenericOutputPipe9) => MaybePromiseLike, pipe11: (input: GenericOutputPipe10) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike, pipe7: (input: GenericOutputPipe6) => MaybePromiseLike, pipe8: (input: GenericOutputPipe7) => MaybePromiseLike, pipe9: (input: GenericOutputPipe8) => MaybePromiseLike, pipe10: (input: GenericOutputPipe9) => MaybePromiseLike, pipe11: (input: GenericOutputPipe10) => MaybePromiseLike, pipe12: (input: GenericOutputPipe11) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike, pipe7: (input: GenericOutputPipe6) => MaybePromiseLike, pipe8: (input: GenericOutputPipe7) => MaybePromiseLike, pipe9: (input: GenericOutputPipe8) => MaybePromiseLike, pipe10: (input: GenericOutputPipe9) => MaybePromiseLike, pipe11: (input: GenericOutputPipe10) => MaybePromiseLike, pipe12: (input: GenericOutputPipe11) => MaybePromiseLike, pipe13: (input: GenericOutputPipe12) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike, pipe7: (input: GenericOutputPipe6) => MaybePromiseLike, pipe8: (input: GenericOutputPipe7) => MaybePromiseLike, pipe9: (input: GenericOutputPipe8) => MaybePromiseLike, pipe10: (input: GenericOutputPipe9) => MaybePromiseLike, pipe11: (input: GenericOutputPipe10) => MaybePromiseLike, pipe12: (input: GenericOutputPipe11) => MaybePromiseLike, pipe13: (input: GenericOutputPipe12) => MaybePromiseLike, pipe14: (input: GenericOutputPipe13) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromiseLike, pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, pipe6: (input: GenericOutputPipe5) => MaybePromiseLike, pipe7: (input: GenericOutputPipe6) => MaybePromiseLike, pipe8: (input: GenericOutputPipe7) => MaybePromiseLike, pipe9: (input: GenericOutputPipe8) => MaybePromiseLike, pipe10: (input: GenericOutputPipe9) => MaybePromiseLike, pipe11: (input: GenericOutputPipe10) => MaybePromiseLike, pipe12: (input: GenericOutputPipe11) => MaybePromiseLike, pipe13: (input: GenericOutputPipe12) => MaybePromiseLike, pipe14: (input: GenericOutputPipe13) => MaybePromiseLike, pipe15: (input: GenericOutputPipe14) => MaybePromiseLike): (input: MaybePromiseLike) => Promise>>;
-export {};
+export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromise): (input: MaybePromise) => Promise>;
+export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise): (input: MaybePromise) => Promise>;
+export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise): (input: MaybePromise) => Promise>;
+export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise, pipe4: (input: GenericOutputPipe3) => MaybePromise): (input: MaybePromise) => Promise>;
+export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise, pipe4: (input: GenericOutputPipe3) => MaybePromise, pipe5: (input: GenericOutputPipe4) => MaybePromise): (input: MaybePromise) => Promise>;
+export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise, pipe4: (input: GenericOutputPipe3) => MaybePromise, pipe5: (input: GenericOutputPipe4) => MaybePromise, pipe6: (input: GenericOutputPipe5) => MaybePromise): (input: MaybePromise) => Promise>;
+export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise, pipe4: (input: GenericOutputPipe3) => MaybePromise, pipe5: (input: GenericOutputPipe4) => MaybePromise, pipe6: (input: GenericOutputPipe5) => MaybePromise, pipe7: (input: GenericOutputPipe6) => MaybePromise): (input: MaybePromise) => Promise>;
+export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise, pipe4: (input: GenericOutputPipe3) => MaybePromise, pipe5: (input: GenericOutputPipe4) => MaybePromise, pipe6: (input: GenericOutputPipe5) => MaybePromise, pipe7: (input: GenericOutputPipe6) => MaybePromise, pipe8: (input: GenericOutputPipe7) => MaybePromise): (input: MaybePromise) => Promise>;
+export declare function asyncInnerPipe(pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise, pipe4: (input: GenericOutputPipe3) => MaybePromise