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, pipe5: (input: GenericOutputPipe4) => MaybePromise, pipe6: (input: GenericOutputPipe5) => MaybePromise, pipe7: (input: GenericOutputPipe6) => MaybePromise, pipe8: (input: GenericOutputPipe7) => MaybePromise, pipe9: (input: GenericOutputPipe8) => 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => MaybePromise, pipe12: (input: GenericOutputPipe11) => 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => MaybePromise, pipe12: (input: GenericOutputPipe11) => MaybePromise, pipe13: (input: GenericOutputPipe12) => 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => MaybePromise, pipe12: (input: GenericOutputPipe11) => MaybePromise, pipe13: (input: GenericOutputPipe12) => MaybePromise, pipe14: (input: GenericOutputPipe13) => 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => MaybePromise, pipe12: (input: GenericOutputPipe11) => MaybePromise, pipe13: (input: GenericOutputPipe12) => MaybePromise, pipe14: (input: GenericOutputPipe13) => MaybePromise, pipe15: (input: GenericOutputPipe14) => MaybePromise): (input: MaybePromise) => Promise>; diff --git a/docs/public/libs/v1/common/asyncInnerPipe.mjs b/docs/public/libs/v1/common/asyncInnerPipe.mjs index e9e06d843..765fde4ea 100644 --- a/docs/public/libs/v1/common/asyncInnerPipe.mjs +++ b/docs/public/libs/v1/common/asyncInnerPipe.mjs @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/max-params */ function asyncInnerPipe(...pipes) { return async (input) => { let acc = input; diff --git a/docs/public/libs/v1/common/asyncPipe.d.ts b/docs/public/libs/v1/common/asyncPipe.d.ts index 2a9b5f109..04089e58b 100644 --- a/docs/public/libs/v1/common/asyncPipe.d.ts +++ b/docs/public/libs/v1/common/asyncPipe.d.ts @@ -1,8 +1,5 @@ -import { type MaybeFutureEither } from "../either/future/maybeFutureEither"; -import { type BreakGenericLink, type EscapeVoid } from "./types"; -import { type AnyValue } from "./types/anyValue"; +import { type BreakGenericLink } from "./types"; import { type MaybePromise } from "./types/maybePromise"; -type MaybePromiseLike = MaybePromise | MaybeFutureEither; /** * The asyncPipe() method chains asynchronous functions (promises or FutureEither) in series. Each step waits for the previous one to resolve and the last value is returned in a promise. * @@ -36,19 +33,18 @@ type MaybePromiseLike = MaybePromise * @see https://utils.duplojs.dev/en/v1/api/common/asyncPipe * */ -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike, GenericOutputPipe7 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6, pipe7: (input: Awaited) => GenericOutputPipe7): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike, GenericOutputPipe7 extends MaybePromiseLike, GenericOutputPipe8 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6, pipe7: (input: Awaited) => GenericOutputPipe7, pipe8: (input: Awaited) => GenericOutputPipe8): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike, GenericOutputPipe7 extends MaybePromiseLike, GenericOutputPipe8 extends MaybePromiseLike, GenericOutputPipe9 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6, pipe7: (input: Awaited) => GenericOutputPipe7, pipe8: (input: Awaited) => GenericOutputPipe8, pipe9: (input: Awaited) => GenericOutputPipe9): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike, GenericOutputPipe7 extends MaybePromiseLike, GenericOutputPipe8 extends MaybePromiseLike, GenericOutputPipe9 extends MaybePromiseLike, GenericOutputPipe10 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6, pipe7: (input: Awaited) => GenericOutputPipe7, pipe8: (input: Awaited) => GenericOutputPipe8, pipe9: (input: Awaited) => GenericOutputPipe9, pipe10: (input: Awaited) => GenericOutputPipe10): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike, GenericOutputPipe7 extends MaybePromiseLike, GenericOutputPipe8 extends MaybePromiseLike, GenericOutputPipe9 extends MaybePromiseLike, GenericOutputPipe10 extends MaybePromiseLike, GenericOutputPipe11 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6, pipe7: (input: Awaited) => GenericOutputPipe7, pipe8: (input: Awaited) => GenericOutputPipe8, pipe9: (input: Awaited) => GenericOutputPipe9, pipe10: (input: Awaited) => GenericOutputPipe10, pipe11: (input: Awaited) => GenericOutputPipe11): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike, GenericOutputPipe7 extends MaybePromiseLike, GenericOutputPipe8 extends MaybePromiseLike, GenericOutputPipe9 extends MaybePromiseLike, GenericOutputPipe10 extends MaybePromiseLike, GenericOutputPipe11 extends MaybePromiseLike, GenericOutputPipe12 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6, pipe7: (input: Awaited) => GenericOutputPipe7, pipe8: (input: Awaited) => GenericOutputPipe8, pipe9: (input: Awaited) => GenericOutputPipe9, pipe10: (input: Awaited) => GenericOutputPipe10, pipe11: (input: Awaited) => GenericOutputPipe11, pipe12: (input: Awaited) => GenericOutputPipe12): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike, GenericOutputPipe7 extends MaybePromiseLike, GenericOutputPipe8 extends MaybePromiseLike, GenericOutputPipe9 extends MaybePromiseLike, GenericOutputPipe10 extends MaybePromiseLike, GenericOutputPipe11 extends MaybePromiseLike, GenericOutputPipe12 extends MaybePromiseLike, GenericOutputPipe13 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6, pipe7: (input: Awaited) => GenericOutputPipe7, pipe8: (input: Awaited) => GenericOutputPipe8, pipe9: (input: Awaited) => GenericOutputPipe9, pipe10: (input: Awaited) => GenericOutputPipe10, pipe11: (input: Awaited) => GenericOutputPipe11, pipe12: (input: Awaited) => GenericOutputPipe12, pipe13: (input: Awaited) => GenericOutputPipe13): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike, GenericOutputPipe7 extends MaybePromiseLike, GenericOutputPipe8 extends MaybePromiseLike, GenericOutputPipe9 extends MaybePromiseLike, GenericOutputPipe10 extends MaybePromiseLike, GenericOutputPipe11 extends MaybePromiseLike, GenericOutputPipe12 extends MaybePromiseLike, GenericOutputPipe13 extends MaybePromiseLike, GenericOutputPipe14 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6, pipe7: (input: Awaited) => GenericOutputPipe7, pipe8: (input: Awaited) => GenericOutputPipe8, pipe9: (input: Awaited) => GenericOutputPipe9, pipe10: (input: Awaited) => GenericOutputPipe10, pipe11: (input: Awaited) => GenericOutputPipe11, pipe12: (input: Awaited) => GenericOutputPipe12, pipe13: (input: Awaited) => GenericOutputPipe13, pipe14: (input: Awaited) => GenericOutputPipe14): Promise>>; -export declare function asyncPipe, GenericOutputPipe1 extends MaybePromiseLike, GenericOutputPipe2 extends MaybePromiseLike, GenericOutputPipe3 extends MaybePromiseLike, GenericOutputPipe4 extends MaybePromiseLike, GenericOutputPipe5 extends MaybePromiseLike, GenericOutputPipe6 extends MaybePromiseLike, GenericOutputPipe7 extends MaybePromiseLike, GenericOutputPipe8 extends MaybePromiseLike, GenericOutputPipe9 extends MaybePromiseLike, GenericOutputPipe10 extends MaybePromiseLike, GenericOutputPipe11 extends MaybePromiseLike, GenericOutputPipe12 extends MaybePromiseLike, GenericOutputPipe13 extends MaybePromiseLike, GenericOutputPipe14 extends MaybePromiseLike, GenericOutputPipe15 extends MaybePromiseLike>(input: GenericInput, pipe1: (input: Awaited) => GenericOutputPipe1, pipe2: (input: Awaited) => GenericOutputPipe2, pipe3: (input: Awaited) => GenericOutputPipe3, pipe4: (input: Awaited) => GenericOutputPipe4, pipe5: (input: Awaited) => GenericOutputPipe5, pipe6: (input: Awaited) => GenericOutputPipe6, pipe7: (input: Awaited) => GenericOutputPipe7, pipe8: (input: Awaited) => GenericOutputPipe8, pipe9: (input: Awaited) => GenericOutputPipe9, pipe10: (input: Awaited) => GenericOutputPipe10, pipe11: (input: Awaited) => GenericOutputPipe11, pipe12: (input: Awaited) => GenericOutputPipe12, pipe13: (input: Awaited) => GenericOutputPipe13, pipe14: (input: Awaited) => GenericOutputPipe14, pipe15: (input: Awaited) => GenericOutputPipe15): Promise>>; -export {}; +export declare function asyncPipe(input: MaybePromise, pipe1: (input: GenericInput) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise, pipe4: (input: GenericOutputPipe3) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise, pipe4: (input: GenericOutputPipe3) => MaybePromise, pipe5: (input: GenericOutputPipe4) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, pipe1: (input: GenericInput) => MaybePromise, pipe2: (input: GenericOutputPipe1) => MaybePromise, pipe3: (input: GenericOutputPipe2) => MaybePromise, pipe4: (input: GenericOutputPipe3) => MaybePromise, pipe5: (input: GenericOutputPipe4) => MaybePromise, pipe6: (input: GenericOutputPipe5) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, 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): Promise>; +export declare function asyncPipe(input: MaybePromise, 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): Promise>; +export declare function asyncPipe(input: MaybePromise, 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, pipe9: (input: GenericOutputPipe8) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => MaybePromise, pipe12: (input: GenericOutputPipe11) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => MaybePromise, pipe12: (input: GenericOutputPipe11) => MaybePromise, pipe13: (input: GenericOutputPipe12) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => MaybePromise, pipe12: (input: GenericOutputPipe11) => MaybePromise, pipe13: (input: GenericOutputPipe12) => MaybePromise, pipe14: (input: GenericOutputPipe13) => MaybePromise): Promise>; +export declare function asyncPipe(input: MaybePromise, 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, pipe9: (input: GenericOutputPipe8) => MaybePromise, pipe10: (input: GenericOutputPipe9) => MaybePromise, pipe11: (input: GenericOutputPipe10) => MaybePromise, pipe12: (input: GenericOutputPipe11) => MaybePromise, pipe13: (input: GenericOutputPipe12) => MaybePromise, pipe14: (input: GenericOutputPipe13) => MaybePromise, pipe15: (input: GenericOutputPipe14) => MaybePromise): Promise>; diff --git a/docs/public/libs/v1/common/innerPipe.d.ts b/docs/public/libs/v1/common/innerPipe.d.ts index 9c15de148..f06259778 100644 --- a/docs/public/libs/v1/common/innerPipe.d.ts +++ b/docs/public/libs/v1/common/innerPipe.d.ts @@ -1,5 +1,4 @@ -import { type BreakGenericLink, type EscapeVoid } from "./types"; -import { type AnyValue } from "./types/anyValue"; +import { type BreakGenericLink } from "./types"; /** * The innerPipe() method prepares a reusable synchronous pipeline: it returns a function that will apply the chain of transformations to any compatible input. * @@ -33,18 +32,18 @@ import { type AnyValue } from "./types/anyValue"; * @see https://utils.duplojs.dev/en/v1/api/common/innerPipe * */ -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14): (input: GenericInput) => BreakGenericLink; -export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14, pipe15: (input: GenericOutputPipe14) => GenericOutputPipe15): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14): (input: GenericInput) => BreakGenericLink; +export declare function innerPipe(pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14, pipe15: (input: GenericOutputPipe14) => GenericOutputPipe15): (input: GenericInput) => BreakGenericLink; diff --git a/docs/public/libs/v1/common/pipe.d.ts b/docs/public/libs/v1/common/pipe.d.ts index bb0b28ada..a42e6ce66 100644 --- a/docs/public/libs/v1/common/pipe.d.ts +++ b/docs/public/libs/v1/common/pipe.d.ts @@ -1,5 +1,4 @@ -import { type BreakGenericLink, type EscapeVoid } from "./types"; -import { type AnyValue } from "./types/anyValue"; +import { type BreakGenericLink } from "./types"; /** * The pipe() method chains up to 15 synchronous functions, passing the output of one as the input of the next. It returns the last computed value and stays fully typed at each step. * @@ -27,18 +26,18 @@ import { type AnyValue } from "./types/anyValue"; * @see https://utils.duplojs.dev/en/v1/api/common/pipe * */ -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14): BreakGenericLink; -export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14, pipe15: (input: GenericOutputPipe14) => GenericOutputPipe15): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14): BreakGenericLink; +export declare function pipe(input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14, pipe15: (input: GenericOutputPipe14) => GenericOutputPipe15): BreakGenericLink; diff --git a/docs/public/libs/v1/either/bool/create.d.ts b/docs/public/libs/v1/either/bool/create.d.ts index 338af013f..124fbdf9e 100644 --- a/docs/public/libs/v1/either/bool/create.d.ts +++ b/docs/public/libs/v1/either/bool/create.d.ts @@ -9,8 +9,9 @@ import { type BoolTruthy } from "./truthy"; * The input value is not mutated. * * ```ts + * const input = ["duplo"]; * const result = pipe( - * ["duplo"], + * input, * A.find(equal("nest")), * E.bool, * ); diff --git a/docs/public/libs/v1/either/index.cjs b/docs/public/libs/v1/either/index.cjs index dd61cf4ae..29b662908 100644 --- a/docs/public/libs/v1/either/index.cjs +++ b/docs/public/libs/v1/either/index.cjs @@ -62,12 +62,6 @@ exports.whenHasInformation = whenHasInformation.whenHasInformation; exports.createEitherKind = kind.createEitherKind; exports.eitherInformationKind = kind.eitherInformationKind; exports.informationKind = kind.informationKind; -exports.callbackError = safeCallback.callbackError; -exports.callbackErrorKind = safeCallback.callbackErrorKind; -exports.callbackSuccess = safeCallback.callbackSuccess; -exports.callbackSuccessKind = safeCallback.callbackSuccessKind; -exports.eitherCallbackErrorKind = safeCallback.eitherCallbackErrorKind; -exports.eitherCallbackSuccessKind = safeCallback.eitherCallbackSuccessKind; exports.safeCallback = safeCallback.safeCallback; exports.expect = expect.expect; exports.matchInformation = matchInformation.matchInformation; diff --git a/docs/public/libs/v1/either/index.mjs b/docs/public/libs/v1/either/index.mjs index f799981c3..54f837c4d 100644 --- a/docs/public/libs/v1/either/index.mjs +++ b/docs/public/libs/v1/either/index.mjs @@ -1,7 +1,7 @@ export { hasInformation } from './hasInformation.mjs'; export { whenHasInformation } from './whenHasInformation.mjs'; export { createEitherKind, eitherInformationKind, informationKind } from './kind.mjs'; -export { callbackError, callbackErrorKind, callbackSuccess, callbackSuccessKind, eitherCallbackErrorKind, eitherCallbackSuccessKind, safeCallback } from './safeCallback.mjs'; +export { safeCallback } from './safeCallback.mjs'; export { expect } from './expect.mjs'; export { matchInformation } from './matchInformation.mjs'; export { matchInformationOtherwise } from './matchInformationOtherwise.mjs'; diff --git a/docs/public/libs/v1/either/left/whenElse.cjs b/docs/public/libs/v1/either/left/whenElse.cjs index 578976924..d82be8e38 100644 --- a/docs/public/libs/v1/either/left/whenElse.cjs +++ b/docs/public/libs/v1/either/left/whenElse.cjs @@ -1,8 +1,8 @@ 'use strict'; var is = require('./is.cjs'); -var unwrap = require('../../common/unwrap.cjs'); var is$1 = require('../right/is.cjs'); +var unwrap = require('../../common/unwrap.cjs'); function whenIsLeftElse(...args) { if (args.length === 2) { diff --git a/docs/public/libs/v1/either/left/whenElse.mjs b/docs/public/libs/v1/either/left/whenElse.mjs index 0e25fea98..b09c7fb1b 100644 --- a/docs/public/libs/v1/either/left/whenElse.mjs +++ b/docs/public/libs/v1/either/left/whenElse.mjs @@ -1,6 +1,6 @@ import { isLeft } from './is.mjs'; -import { unwrap } from '../../common/unwrap.mjs'; import { isRight } from '../right/is.mjs'; +import { unwrap } from '../../common/unwrap.mjs'; function whenIsLeftElse(...args) { if (args.length === 2) { diff --git a/docs/public/libs/v1/either/matchInformation.d.ts b/docs/public/libs/v1/either/matchInformation.d.ts index dc2edf3f1..4bf7462e5 100644 --- a/docs/public/libs/v1/either/matchInformation.d.ts +++ b/docs/public/libs/v1/either/matchInformation.d.ts @@ -2,10 +2,12 @@ import { type FixDeepFunctionInfer, type GetKindValue, type Kind, type Unwrap } import { informationKind } from "./kind"; import { type Right } from "./right"; import { type Left } from "./left"; +import { type ForbiddenKey } from "../object"; type Either = Right | Left; type ComputeMatcher = Extract<{ [Prop in GetKindValue]: (value: Unwrap>>) => unknown; }, any>; +type ForbiddenMoreKey>> = ForbiddenKey>>, string>>; /** * Exhaustive pattern matching based on Either information. Every information case from the input must be handled. * @@ -51,6 +53,6 @@ type ComputeMatcher = Extract<{ * @namespace E * */ -export declare function matchInformation>>(matcher: (ComputeMatcher, Either>> & GenericMatcher)): (input: GenericInput) => (ReturnType> | Exclude, Either>); -export declare function matchInformation>>(input: GenericInput, matcher: FixDeepFunctionInfer>, GenericMatcher>): (ReturnType | Exclude); +export declare function matchInformation>, GenericError extends ForbiddenMoreKey>(matcher: (ComputeMatcher, Either>> & GenericMatcher & NoInfer)): (input: GenericInput) => (ReturnType> | Exclude, Either>); +export declare function matchInformation>>(input: GenericInput, matcher: FixDeepFunctionInfer>, GenericMatcher> & ForbiddenMoreKey): (ReturnType | Exclude); export {}; diff --git a/docs/public/libs/v1/either/right/asyncPipe.cjs b/docs/public/libs/v1/either/right/asyncPipe.cjs index 7132c8288..f710a30fe 100644 --- a/docs/public/libs/v1/either/right/asyncPipe.cjs +++ b/docs/public/libs/v1/either/right/asyncPipe.cjs @@ -2,31 +2,28 @@ var success = require('./success.cjs'); var is$1 = require('./is.cjs'); -var create = require('../future/create.cjs'); var is = require('../left/is.cjs'); var unwrap = require('../../common/unwrap.cjs'); -function rightAsyncPipe(input, ...pipes) { - return create.future((async () => { - const awaitedInput = await input; - if (is.isLeft(awaitedInput)) { - return awaitedInput; +async function rightAsyncPipe(input, ...pipes) { + const awaitedInput = await input; + if (is.isLeft(awaitedInput)) { + return awaitedInput; + } + let acc = is$1.isRight(awaitedInput) + ? unwrap.unwrap(awaitedInput) + : awaitedInput; + for (const pipe of pipes) { + acc = await pipe(is$1.isRight(acc) + ? unwrap.unwrap(acc) + : acc); + if (is.isLeft(acc)) { + return acc; } - let acc = is$1.isRight(awaitedInput) - ? unwrap.unwrap(awaitedInput) - : awaitedInput; - for (const pipe of pipes) { - acc = await pipe(is$1.isRight(acc) - ? unwrap.unwrap(acc) - : acc); - if (is.isLeft(acc)) { - return acc; - } - } - return is$1.isRight(acc) - ? acc - : success.success(acc); - })()); + } + return is$1.isRight(acc) + ? acc + : success.success(acc); } exports.rightAsyncPipe = rightAsyncPipe; diff --git a/docs/public/libs/v1/either/right/asyncPipe.d.ts b/docs/public/libs/v1/either/right/asyncPipe.d.ts index 9c2bad91e..03b64055c 100644 --- a/docs/public/libs/v1/either/right/asyncPipe.d.ts +++ b/docs/public/libs/v1/either/right/asyncPipe.d.ts @@ -1,24 +1,14 @@ import { type Right } from "./create"; import { type Left } from "../left"; -import { type MaybeFutureEither } from "../future/maybeFutureEither"; -import { type FutureError, type Future } from "../future"; import { type Success } from "./success"; -import { type AnyValue, type Unwrap } from "../../common"; +import { type MaybePromise, type Unwrap } from "../../common"; type Either = Right | Left; -export type RightAsyncPipeFunction = MaybeFutureEither> = (input: Awaited extends infer InferredInput ? InferredInput extends Either ? Unwrap> : InferredInput : never) => GenericOutput; +type RightAsyncPipeFunction = (input: Awaited extends infer InferredInput ? InferredInput extends Either ? Unwrap> : InferredInput : never) => MaybePromise; +type RightAsyncPipeResult = (Extract, Left> | (Awaited extends infer InferredLastResult ? Exclude, Left> : never)); /** - * @deprecated use RightAsyncPipeFunction - */ -export type EitherRightAsyncPipeFunction = MaybeFutureEither> = RightAsyncPipeFunction; -export type RightAsyncPipeResult = (Extract, Left> | (Awaited extends infer InferredLastResult ? Exclude, Left> : never) | (Promise extends Exclude> ? FutureError : never)); -/** - * @deprecated use RightAsyncPipeResult - */ -export type EitherRightAsyncPipeResult = RightAsyncPipeResult; -/** - * 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. * - * Signature: `rightAsyncPipe(input, pipe1, pipe2)` → returns a value + * Signature: `rightAsyncPipe(input, pipe1, pipe2)` → returns a promise * * The input value is not mutated. * @@ -48,19 +38,19 @@ export type EitherRightAsyncPipeResult, GenericOutputPipe1 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither, GenericOutputPipe7 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither, GenericOutputPipe7 extends MaybeFutureEither, GenericOutputPipe8 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither, GenericOutputPipe7 extends MaybeFutureEither, GenericOutputPipe8 extends MaybeFutureEither, GenericOutputPipe9 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither, GenericOutputPipe7 extends MaybeFutureEither, GenericOutputPipe8 extends MaybeFutureEither, GenericOutputPipe9 extends MaybeFutureEither, GenericOutputPipe10 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither, GenericOutputPipe7 extends MaybeFutureEither, GenericOutputPipe8 extends MaybeFutureEither, GenericOutputPipe9 extends MaybeFutureEither, GenericOutputPipe10 extends MaybeFutureEither, GenericOutputPipe11 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither, GenericOutputPipe7 extends MaybeFutureEither, GenericOutputPipe8 extends MaybeFutureEither, GenericOutputPipe9 extends MaybeFutureEither, GenericOutputPipe10 extends MaybeFutureEither, GenericOutputPipe11 extends MaybeFutureEither, GenericOutputPipe12 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither, GenericOutputPipe7 extends MaybeFutureEither, GenericOutputPipe8 extends MaybeFutureEither, GenericOutputPipe9 extends MaybeFutureEither, GenericOutputPipe10 extends MaybeFutureEither, GenericOutputPipe11 extends MaybeFutureEither, GenericOutputPipe12 extends MaybeFutureEither, GenericOutputPipe13 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction, pipe13: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither, GenericOutputPipe7 extends MaybeFutureEither, GenericOutputPipe8 extends MaybeFutureEither, GenericOutputPipe9 extends MaybeFutureEither, GenericOutputPipe10 extends MaybeFutureEither, GenericOutputPipe11 extends MaybeFutureEither, GenericOutputPipe12 extends MaybeFutureEither, GenericOutputPipe13 extends MaybeFutureEither, GenericOutputPipe14 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction, pipe13: RightAsyncPipeFunction, pipe14: RightAsyncPipeFunction): Future, any>>; -export declare function rightAsyncPipe, GenericOutputPipe1 extends MaybeFutureEither, GenericOutputPipe2 extends MaybeFutureEither, GenericOutputPipe3 extends MaybeFutureEither, GenericOutputPipe4 extends MaybeFutureEither, GenericOutputPipe5 extends MaybeFutureEither, GenericOutputPipe6 extends MaybeFutureEither, GenericOutputPipe7 extends MaybeFutureEither, GenericOutputPipe8 extends MaybeFutureEither, GenericOutputPipe9 extends MaybeFutureEither, GenericOutputPipe10 extends MaybeFutureEither, GenericOutputPipe11 extends MaybeFutureEither, GenericOutputPipe12 extends MaybeFutureEither, GenericOutputPipe13 extends MaybeFutureEither, GenericOutputPipe14 extends MaybeFutureEither, GenericOutputPipe15 extends MaybeFutureEither>(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction, pipe13: RightAsyncPipeFunction, pipe14: RightAsyncPipeFunction, pipe15: RightAsyncPipeFunction): Future, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction, pipe13: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction, pipe13: RightAsyncPipeFunction, pipe14: RightAsyncPipeFunction): Promise, any>>; +export declare function rightAsyncPipe(input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction, pipe13: RightAsyncPipeFunction, pipe14: RightAsyncPipeFunction, pipe15: RightAsyncPipeFunction): Promise, any>>; export {}; diff --git a/docs/public/libs/v1/either/right/asyncPipe.mjs b/docs/public/libs/v1/either/right/asyncPipe.mjs index 1e6c428e6..2d5a1d2b1 100644 --- a/docs/public/libs/v1/either/right/asyncPipe.mjs +++ b/docs/public/libs/v1/either/right/asyncPipe.mjs @@ -1,30 +1,27 @@ import { success } from './success.mjs'; import { isRight } from './is.mjs'; -import { future } from '../future/create.mjs'; import { isLeft } from '../left/is.mjs'; import { unwrap } from '../../common/unwrap.mjs'; -function rightAsyncPipe(input, ...pipes) { - return future((async () => { - const awaitedInput = await input; - if (isLeft(awaitedInput)) { - return awaitedInput; +async function rightAsyncPipe(input, ...pipes) { + const awaitedInput = await input; + if (isLeft(awaitedInput)) { + return awaitedInput; + } + let acc = isRight(awaitedInput) + ? unwrap(awaitedInput) + : awaitedInput; + for (const pipe of pipes) { + acc = await pipe(isRight(acc) + ? unwrap(acc) + : acc); + if (isLeft(acc)) { + return acc; } - let acc = isRight(awaitedInput) - ? unwrap(awaitedInput) - : awaitedInput; - for (const pipe of pipes) { - acc = await pipe(isRight(acc) - ? unwrap(acc) - : acc); - if (isLeft(acc)) { - return acc; - } - } - return isRight(acc) - ? acc - : success(acc); - })()); + } + return isRight(acc) + ? acc + : success(acc); } export { rightAsyncPipe }; diff --git a/docs/public/libs/v1/either/right/pipe.d.ts b/docs/public/libs/v1/either/right/pipe.d.ts index 0dc64ac01..7454870ea 100644 --- a/docs/public/libs/v1/either/right/pipe.d.ts +++ b/docs/public/libs/v1/either/right/pipe.d.ts @@ -1,18 +1,10 @@ import { type Right } from "./create"; import { type Left } from "../left"; import { type Success } from "./success"; -import { type AnyValue, type Unwrap } from "../../common"; +import { type Unwrap } from "../../common"; type Either = Right | Left; -export type RightPipeFunction = (input: GenericInput extends Either ? Unwrap> : GenericInput) => GenericOutput; -/** - * @deprecated use RightPipeFunction - */ -export type EitherRightPipeFunction = RightPipeFunction; -export type RightPipeResult = Extract | Exclude, Left>; -/** - * @deprecated use RightPipeResult - */ -export type EitherRightPipeResult = RightPipeResult; +type RightPipeFunction = (input: GenericInput extends Either ? Unwrap> : GenericInput) => GenericOutput; +type RightPipeResult = (Extract | Exclude, Left>); /** * Chains synchronous transformations on an Either as long as it remains Right. The pipeline stops as soon as a Left is returned. * @@ -46,19 +38,19 @@ export type EitherRightPipeResult(input: GenericInput, pipe1: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction, pipe12: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction, pipe12: RightPipeFunction, pipe13: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction, pipe12: RightPipeFunction, pipe13: RightPipeFunction, pipe14: RightPipeFunction): Extract, any>; -export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction, pipe12: RightPipeFunction, pipe13: RightPipeFunction, pipe14: RightPipeFunction, pipe15: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction, pipe12: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction, pipe12: RightPipeFunction, pipe13: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction, pipe12: RightPipeFunction, pipe13: RightPipeFunction, pipe14: RightPipeFunction): Extract, any>; +export declare function rightPipe(input: GenericInput, pipe1: RightPipeFunction, pipe2: RightPipeFunction, pipe3: RightPipeFunction, pipe4: RightPipeFunction, pipe5: RightPipeFunction, pipe6: RightPipeFunction, pipe7: RightPipeFunction, pipe8: RightPipeFunction, pipe9: RightPipeFunction, pipe10: RightPipeFunction, pipe11: RightPipeFunction, pipe12: RightPipeFunction, pipe13: RightPipeFunction, pipe14: RightPipeFunction, pipe15: RightPipeFunction): Extract, any>; export {}; diff --git a/docs/public/libs/v1/either/safeCallback.cjs b/docs/public/libs/v1/either/safeCallback.cjs index cdafaa32c..0bd0df181 100644 --- a/docs/public/libs/v1/either/safeCallback.cjs +++ b/docs/public/libs/v1/either/safeCallback.cjs @@ -1,47 +1,35 @@ 'use strict'; -var kind = require('./kind.cjs'); var create = require('./left/create.cjs'); -var create$1 = require('./right/create.cjs'); var is = require('./right/is.cjs'); var is$1 = require('./left/is.cjs'); +var create$1 = require('./right/create.cjs'); -const callbackErrorKind = kind.createEitherKind("callback-error"); -/** - * @deprecated use callbackErrorKind - */ -const eitherCallbackErrorKind = callbackErrorKind; -const callbackSuccessKind = kind.createEitherKind("callback-success"); -/** - * @deprecated use callbackSuccessKind - */ -const eitherCallbackSuccessKind = callbackSuccessKind; -function callbackError(value) { - return callbackErrorKind.setTo(create.left("callback", value)); -} -function callbackSuccess(value) { - return callbackSuccessKind.setTo(create$1.right("callback", value)); -} /** * {@include either/safeCallback/index.md} */ function safeCallback(theFunction) { + let result = undefined; try { - const result = theFunction(); - if (is.isRight(result) || is$1.isLeft(result)) { - return result; - } - return callbackSuccess(result); + result = theFunction(); } catch (error) { - return callbackError(error); + return create.left("safe-callback-error", error); + } + if (result instanceof Promise) { + return result + .then((result) => { + if (is.isRight(result) || is$1.isLeft(result)) { + return result; + } + return create$1.right("safe-callback-success", result); + }) + .catch((error) => create.left("safe-callback-error", error)); + } + if (is.isRight(result) || is$1.isLeft(result)) { + return result; } + return create$1.right("safe-callback-success", result); } -exports.callbackError = callbackError; -exports.callbackErrorKind = callbackErrorKind; -exports.callbackSuccess = callbackSuccess; -exports.callbackSuccessKind = callbackSuccessKind; -exports.eitherCallbackErrorKind = eitherCallbackErrorKind; -exports.eitherCallbackSuccessKind = eitherCallbackSuccessKind; exports.safeCallback = safeCallback; diff --git a/docs/public/libs/v1/either/safeCallback.d.ts b/docs/public/libs/v1/either/safeCallback.d.ts index b9e47873b..f4a245cee 100644 --- a/docs/public/libs/v1/either/safeCallback.d.ts +++ b/docs/public/libs/v1/either/safeCallback.d.ts @@ -1,45 +1,20 @@ -import type { Kind, EscapeVoid } from "../common"; import { type Left } from "./left"; import { type Right } from "./right"; -export declare const callbackErrorKind: import("../common").KindHandler>; -/** - * @deprecated use callbackErrorKind - */ -export declare const eitherCallbackErrorKind: import("../common").KindHandler>; -export declare const callbackSuccessKind: import("../common").KindHandler>; -/** - * @deprecated use callbackSuccessKind - */ -export declare const eitherCallbackSuccessKind: import("../common").KindHandler>; -type _CallbackError = (Left<"callback", unknown> & Kind); -type _CallbackSuccess = (Right<"callback", GenericValue> & Kind); -export interface CallbackError extends _CallbackError { -} -export interface CallbackSuccess extends _CallbackSuccess { -} -/** - * @deprecated use CallbackError - */ -export type EitherCallbackError = CallbackError; -/** - * @deprecated use CallbackSuccess - */ -export type EitherCallbackSuccess = CallbackSuccess; -export declare function callbackError(value: unknown): CallbackError; -export declare function callbackSuccess(value: GenericValue): CallbackSuccess; +export type SafeCallbackSuccess = Right<"safe-callback-success", GenericValue>; +export type SafeCallbackError = Left<"safe-callback-error", unknown>; type Either = Right | Left; -type ComputeSafeCallbackResult = GenericOutput extends Either ? GenericOutput : GenericOutput extends EscapeVoid ? CallbackSuccess : CallbackSuccess; +type ComputeSafeCallbackResult = ((GenericOutput extends Either ? GenericOutput : GenericOutput extends Promise ? Promise> : SafeCallbackSuccess) | SafeCallbackError); /** - * 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 returned as-is; otherwise the value is wrapped in an Right. + * Runs a callback in a safe block. If the callback throws or returns a rejected promise, the function returns a "safe-callback-error" typed Left instead of propagating the error. + * If the callback returns an Either, it is returned as-is; otherwise the value is wrapped in a Right. Promise results are handled the same way after resolution. * - * Signature: `safeCallback(theFunction)` → returns a value + * Signature: `safeCallback(theFunction)` → returns a value or promise * * The input value is not mutated. * * ```ts * const success = E.safeCallback(() => 42); - * // E.CallbackError | E.CallbackSuccess + * // E.SafeCallbackSuccess | E.SafeCallbackError * * const failure = E.safeCallback(() => { * throw new Error("boom"); @@ -52,11 +27,21 @@ type ComputeSafeCallbackResult = GenericOutput ex * ); * * 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")), + * ); * ``` * * @remarks - * - Catches exceptions thrown by the callback and wraps them in an `Left<"callback">` + * - Catches exceptions thrown by the callback and rejected promises, then wraps them in a `Left<"safe-callback-error">` * - Keeps an `Left` or `Right` returned by the callback untouched + * - Wraps successful non-Either values in a `Right<"safe-callback-success">` * - Useful for working in an unsafe environment (3rd party libraries, user code, etc.) * * @see https://utils.duplojs.dev/en/v1/api/either/safeCallback @@ -64,5 +49,5 @@ type ComputeSafeCallbackResult = GenericOutput ex * @namespace E * */ -export declare function safeCallback(theFunction: () => GenericOutput): ComputeSafeCallbackResult | CallbackError; +export declare function safeCallback(theFunction: () => GenericOutput): Extract, any>; export {}; diff --git a/docs/public/libs/v1/either/safeCallback.mjs b/docs/public/libs/v1/either/safeCallback.mjs index 760b207a0..fdf23d561 100644 --- a/docs/public/libs/v1/either/safeCallback.mjs +++ b/docs/public/libs/v1/either/safeCallback.mjs @@ -1,39 +1,33 @@ -import { createEitherKind } from './kind.mjs'; import { left } from './left/create.mjs'; -import { right } from './right/create.mjs'; import { isRight } from './right/is.mjs'; import { isLeft } from './left/is.mjs'; +import { right } from './right/create.mjs'; -const callbackErrorKind = createEitherKind("callback-error"); -/** - * @deprecated use callbackErrorKind - */ -const eitherCallbackErrorKind = callbackErrorKind; -const callbackSuccessKind = createEitherKind("callback-success"); -/** - * @deprecated use callbackSuccessKind - */ -const eitherCallbackSuccessKind = callbackSuccessKind; -function callbackError(value) { - return callbackErrorKind.setTo(left("callback", value)); -} -function callbackSuccess(value) { - return callbackSuccessKind.setTo(right("callback", value)); -} /** * {@include either/safeCallback/index.md} */ function safeCallback(theFunction) { + let result = undefined; try { - const result = theFunction(); - if (isRight(result) || isLeft(result)) { - return result; - } - return callbackSuccess(result); + result = theFunction(); } catch (error) { - return callbackError(error); + return left("safe-callback-error", error); + } + if (result instanceof Promise) { + return result + .then((result) => { + if (isRight(result) || isLeft(result)) { + return result; + } + return right("safe-callback-success", result); + }) + .catch((error) => left("safe-callback-error", error)); + } + if (isRight(result) || isLeft(result)) { + return result; } + return right("safe-callback-success", result); } -export { callbackError, callbackErrorKind, callbackSuccess, callbackSuccessKind, eitherCallbackErrorKind, eitherCallbackSuccessKind, safeCallback }; +export { safeCallback }; diff --git a/docs/public/libs/v1/object/override.d.ts b/docs/public/libs/v1/object/override.d.ts index 37bad1b00..e4c7e84b0 100644 --- a/docs/public/libs/v1/object/override.d.ts +++ b/docs/public/libs/v1/object/override.d.ts @@ -18,10 +18,9 @@ * }, * ); // { name: "Ada", age: 36 } * + * const input = { count: 1 }; * pipe( - * { - * count: 1, - * }, + * input, * O.override({ * count: 2, * }), @@ -35,7 +34,6 @@ * active: false, * }, * ); // { active: false } - * * ``` * * @remarks diff --git a/docs/public/libs/v1/object/types/forbiddenKey.d.ts b/docs/public/libs/v1/object/types/forbiddenKey.d.ts index 3502e7bf2..92a733231 100644 --- a/docs/public/libs/v1/object/types/forbiddenKey.d.ts +++ b/docs/public/libs/v1/object/types/forbiddenKey.d.ts @@ -1,2 +1,2 @@ import { type ComputedTypeError, type IsEqual } from "../../common"; -export type ForbiddenKey = (GenericKey extends keyof GenericObject ? ComputedTypeError<`Key ${GenericKey} is forbidden.`> : never) extends infer InferredResult ? IsEqual extends true ? unknown : InferredResult : never; +export type ForbiddenKey = (GenericKey extends keyof GenericObject ? ComputedTypeError<`Key "${GenericKey}" is forbidden.`> : never) extends infer InferredResult ? IsEqual extends true ? unknown : InferredResult : never; diff --git a/jsDoc/array/fill/example.ts b/jsDoc/array/fill/example.ts index b8b5f4b98..853187d6b 100644 --- a/jsDoc/array/fill/example.ts +++ b/jsDoc/array/fill/example.ts @@ -7,11 +7,8 @@ A.fill( 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/jsDoc/array/fill/index.md b/jsDoc/array/fill/index.md index b2e6caea4..f4eeb8706 100644 --- a/jsDoc/array/fill/index.md +++ b/jsDoc/array/fill/index.md @@ -8,7 +8,7 @@ The fill operation applies from `start` (inclusive) to `end` (exclusive). The input array is not mutated. ```ts -{@include array/fill/example.ts[3,17]} +{@include array/fill/example.ts[3,14]} ``` @remarks diff --git a/jsDoc/array/findAndSpliceInsert/example.ts b/jsDoc/array/findAndSpliceInsert/example.ts index e7c53ab36..0d4f2d8a1 100644 --- a/jsDoc/array/findAndSpliceInsert/example.ts +++ b/jsDoc/array/findAndSpliceInsert/example.ts @@ -6,8 +6,9 @@ A.findAndSpliceInsert( [9], ); // [1, 9, 2, 3] +const input = ["alpha", "beta"]; pipe( - ["alpha", "beta"], + input, A.findAndSpliceInsert((value) => value === "alpha", ["start"]), ); // ["start", "alpha", "beta"] diff --git a/jsDoc/array/findAndSpliceReplace/example.ts b/jsDoc/array/findAndSpliceReplace/example.ts index e210dd0ac..e87e81c70 100644 --- a/jsDoc/array/findAndSpliceReplace/example.ts +++ b/jsDoc/array/findAndSpliceReplace/example.ts @@ -6,8 +6,9 @@ A.findAndSpliceReplace( [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"] diff --git a/jsDoc/array/indexOf/example.ts b/jsDoc/array/indexOf/example.ts index 6904afa62..407b2c02d 100644 --- a/jsDoc/array/indexOf/example.ts +++ b/jsDoc/array/indexOf/example.ts @@ -11,7 +11,8 @@ A.indexOf( 2, ); // undefined +const input = ["alpha", "beta"]; pipe( - ["alpha", "beta"], + input, A.indexOf("beta"), ); // 1 diff --git a/jsDoc/array/lastIndexOf/example.ts b/jsDoc/array/lastIndexOf/example.ts index b0458b114..a5c854cd7 100644 --- a/jsDoc/array/lastIndexOf/example.ts +++ b/jsDoc/array/lastIndexOf/example.ts @@ -11,7 +11,8 @@ A.lastIndexOf( 1, ); // 0 +const input = ["alpha", "beta"]; pipe( - ["alpha", "beta"], + input, A.lastIndexOf("gamma"), ); // undefined diff --git a/jsDoc/array/lastIndexOf/index.md b/jsDoc/array/lastIndexOf/index.md index bce390b85..8c3ddd5d1 100644 --- a/jsDoc/array/lastIndexOf/index.md +++ b/jsDoc/array/lastIndexOf/index.md @@ -7,7 +7,7 @@ Finds the last index of a value. The input array is not mutated. ```ts -{@include array/lastIndexOf/example.ts[3,17]} +{@include array/lastIndexOf/example.ts[3,18]} ``` @remarks diff --git a/jsDoc/array/push/example.ts b/jsDoc/array/push/example.ts index 90de9e182..abf7f0ff3 100644 --- a/jsDoc/array/push/example.ts +++ b/jsDoc/array/push/example.ts @@ -11,7 +11,8 @@ A.push( 4, ); // [1, 2, 3, 4] +const input = ["alpha", "beta"]; pipe( - ["alpha", "beta"], + input, A.push("gamma"), ); // ["alpha", "beta", "gamma"] diff --git a/jsDoc/array/set/example.ts b/jsDoc/array/set/example.ts index ed7af879f..58e471c5d 100644 --- a/jsDoc/array/set/example.ts +++ b/jsDoc/array/set/example.ts @@ -12,7 +12,8 @@ A.set( 0, ); // [1, 2, 0] +const input = ["alpha", "beta"]; pipe( - ["alpha", "beta"], + input, A.set(0, "gamma"), ); // ["gamma", "beta"] diff --git a/jsDoc/array/spliceInsert/example.ts b/jsDoc/array/spliceInsert/example.ts index e43ebe927..2bce935d3 100644 --- a/jsDoc/array/spliceInsert/example.ts +++ b/jsDoc/array/spliceInsert/example.ts @@ -6,8 +6,9 @@ A.spliceInsert( [9], ); // [1, 9, 2, 3] +const input = ["alpha", "beta"]; pipe( - ["alpha", "beta"], + input, A.spliceInsert(0, ["start"]), ); // ["start", "alpha", "beta"] diff --git a/jsDoc/array/spliceReplace/example.ts b/jsDoc/array/spliceReplace/example.ts index c2ee819bf..4ef6e5f68 100644 --- a/jsDoc/array/spliceReplace/example.ts +++ b/jsDoc/array/spliceReplace/example.ts @@ -6,8 +6,9 @@ A.spliceReplace( [9, 8], ); // [1, 9, 8] +const input = ["alpha", "beta", "gamma"]; pipe( - ["alpha", "beta", "gamma"], + input, A.spliceReplace(1, ["delta"]), ); // ["alpha", "delta", "gamma"] diff --git a/jsDoc/array/unshift/example.ts b/jsDoc/array/unshift/example.ts index a35804fae..97e99684c 100644 --- a/jsDoc/array/unshift/example.ts +++ b/jsDoc/array/unshift/example.ts @@ -11,7 +11,8 @@ A.unshift( 2, ); // [1, 2, 3, 4] +const input = ["beta", "gamma"]; pipe( - ["beta", "gamma"], + input, A.unshift("alpha"), ); // ["alpha", "beta", "gamma"] diff --git a/jsDoc/array/withMaxElements/example.ts b/jsDoc/array/withMaxElements/example.ts index b3b5cc28a..f78bdb598 100644 --- a/jsDoc/array/withMaxElements/example.ts +++ b/jsDoc/array/withMaxElements/example.ts @@ -27,12 +27,12 @@ type checkContractLength = ExpectType< >; 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/jsDoc/either/bool/example.ts b/jsDoc/either/bool/example.ts index 4067274e9..7d9e0bef3 100644 --- a/jsDoc/either/bool/example.ts +++ b/jsDoc/either/bool/example.ts @@ -1,9 +1,10 @@ import { A, E, pipe, equal } from "@scripts"; +const input = ["duplo"]; const result = pipe( - ["duplo"], - A.find(equal("nest")), + input, + A.find(equal("duplo")), E.bool, ); -// type: E.BoolFalsy | E.BoolTruthy<"nest"> +// type: E.BoolFalsy | E.BoolTruthy<"duplo"> diff --git a/jsDoc/either/bool/index.md b/jsDoc/either/bool/index.md index fe95742e7..a866efe27 100644 --- a/jsDoc/either/bool/index.md +++ b/jsDoc/either/bool/index.md @@ -5,7 +5,7 @@ Signature: `bool(value)` → returns a value The input value is not mutated. ```ts -{@include either/bool/example.ts[3,9]} +{@include either/bool/example.ts[3,10]} ``` @see https://utils.duplojs.dev/en/v1/api/either/bool diff --git a/jsDoc/either/rightAsyncPipe/index.md b/jsDoc/either/rightAsyncPipe/index.md index 7b740ad70..f20f5ab87 100644 --- a/jsDoc/either/rightAsyncPipe/index.md +++ b/jsDoc/either/rightAsyncPipe/index.md @@ -1,6 +1,6 @@ -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. -Signature: `rightAsyncPipe(input, pipe1, pipe2)` → returns a value +Signature: `rightAsyncPipe(input, pipe1, pipe2)` → returns a promise The input value is not mutated. diff --git a/jsDoc/either/safeCallback/example.ts b/jsDoc/either/safeCallback/example.ts index c52eb9e96..1c30379db 100644 --- a/jsDoc/either/safeCallback/example.ts +++ b/jsDoc/either/safeCallback/example.ts @@ -1,7 +1,7 @@ import { E } from "@scripts"; 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/jsDoc/either/safeCallback/index.md b/jsDoc/either/safeCallback/index.md index a57794e2e..8d904bf23 100644 --- a/jsDoc/either/safeCallback/index.md +++ b/jsDoc/either/safeCallback/index.md @@ -1,17 +1,18 @@ -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 returned as-is; otherwise the value is wrapped in an Right. +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 returned as-is; otherwise the value is wrapped in a Right. Promise results are handled the same way after resolution. -Signature: `safeCallback(theFunction)` → returns a value +Signature: `safeCallback(theFunction)` → returns a value or promise The input value is not mutated. ```ts -{@include either/safeCallback/example.ts[3,16]} +{@include either/safeCallback/example.ts[3,25]} ``` @remarks -- Catches exceptions thrown by the callback and wraps them in an `Left<"callback">` -- Keeps an `Left` or `Right` returned by the callback untouched +- Catches exceptions thrown by the callback and rejected promises, then returns or resolves to a `Left<"safe-callback-error">` +- Keeps a `Left` or `Right` returned by the callback untouched +- Wraps successful non-Either values in a `Right<"safe-callback-success">` - Useful for working in an unsafe environment (3rd party libraries, user code, etc.) @see https://utils.duplojs.dev/en/v1/api/either/safeCallback diff --git a/jsDoc/object/override/example.ts b/jsDoc/object/override/example.ts index 76de2de37..025be1d16 100644 --- a/jsDoc/object/override/example.ts +++ b/jsDoc/object/override/example.ts @@ -10,10 +10,9 @@ O.override( }, ); // { name: "Ada", age: 36 } +const input = { count: 1 }; pipe( - { - count: 1, - }, + input, O.override({ count: 2, }), diff --git a/jsDoc/object/override/index.md b/jsDoc/object/override/index.md index d84eb5a16..41341b969 100644 --- a/jsDoc/object/override/index.md +++ b/jsDoc/object/override/index.md @@ -7,7 +7,7 @@ Overrides object properties, ignoring undefined values. The input object is not mutated. ```ts -{@include object/override/example.ts[3,30]} +{@include object/override/example.ts[3,28]} ``` @remarks diff --git a/scripts/common/asyncInnerPipe.ts b/scripts/common/asyncInnerPipe.ts index e951521c0..7af9c9469 100644 --- a/scripts/common/asyncInnerPipe.ts +++ b/scripts/common/asyncInnerPipe.ts @@ -1,345 +1,339 @@ /* eslint-disable @typescript-eslint/max-params */ - -import { type MaybeFutureEither } from "@scripts/either/future/maybeFutureEither"; -import { type MaybePromise, type EscapeVoid, type BreakGenericLink } from "./types"; -import { type AnyFunction } from "./types/anyFunction"; -import { type AnyValue } from "./types/anyValue"; - -type MaybePromiseLike = MaybePromise | MaybeFutureEither; +import { type MaybePromise, type BreakGenericLink, type AnyFunction } from "./types"; /** * {@include common/asyncInnerPipe/index.md} */ export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, >( - pipe1: (input: GenericInput) => MaybePromiseLike, -): (input: MaybePromiseLike) => Promise< - Awaited> + pipe1: (input: GenericInput) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, >( - pipe1: (input: GenericInput) => MaybePromiseLike, - pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, -): (input: MaybePromiseLike) => Promise< - Awaited> + pipe1: (input: GenericInput) => MaybePromise, + pipe2: (input: GenericOutputPipe1) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, >( - pipe1: (input: GenericInput) => MaybePromiseLike, - pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, - pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, -): (input: MaybePromiseLike) => Promise< - Awaited> + pipe1: (input: GenericInput) => MaybePromise, + pipe2: (input: GenericOutputPipe1) => MaybePromise, + pipe3: (input: GenericOutputPipe2) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, >( - pipe1: (input: GenericInput) => MaybePromiseLike, - pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, - pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, - pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, -): (input: MaybePromiseLike) => Promise< - Awaited> + pipe1: (input: GenericInput) => MaybePromise, + pipe2: (input: GenericOutputPipe1) => MaybePromise, + pipe3: (input: GenericOutputPipe2) => MaybePromise, + pipe4: (input: GenericOutputPipe3) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, >( - pipe1: (input: GenericInput) => MaybePromiseLike, - pipe2: (input: GenericOutputPipe1) => MaybePromiseLike, - pipe3: (input: GenericOutputPipe2) => MaybePromiseLike, - pipe4: (input: GenericOutputPipe3) => MaybePromiseLike, - pipe5: (input: GenericOutputPipe4) => MaybePromiseLike, -): (input: MaybePromiseLike) => Promise< - Awaited> + pipe1: (input: GenericInput) => MaybePromise, + pipe2: (input: GenericOutputPipe1) => MaybePromise, + pipe3: (input: GenericOutputPipe2) => MaybePromise, + pipe4: (input: GenericOutputPipe3) => MaybePromise, + pipe5: (input: GenericOutputPipe4) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, >( - 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< - Awaited> + 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< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, >( - 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< - Awaited> + 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< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, >( - 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< - Awaited> + 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< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, >( - 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< - Awaited> + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, >( - 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< - Awaited> + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, >( - 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< - Awaited> + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, >( - 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< - Awaited> + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, + pipe12: (input: GenericOutputPipe11) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, - GenericOutputPipe13 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, >( - 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< - Awaited> + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, + pipe12: (input: GenericOutputPipe11) => MaybePromise, + pipe13: (input: GenericOutputPipe12) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, - GenericOutputPipe13 extends AnyValue | EscapeVoid, - GenericOutputPipe14 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, >( - 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< - Awaited> + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, + pipe12: (input: GenericOutputPipe11) => MaybePromise, + pipe13: (input: GenericOutputPipe12) => MaybePromise, + pipe14: (input: GenericOutputPipe13) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, - GenericOutputPipe13 extends AnyValue | EscapeVoid, - GenericOutputPipe14 extends AnyValue | EscapeVoid, - GenericOutputPipe15 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, + const GenericOutputPipe15 extends unknown, >( - 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< - Awaited> + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, + pipe12: (input: GenericOutputPipe11) => MaybePromise, + pipe13: (input: GenericOutputPipe12) => MaybePromise, + pipe14: (input: GenericOutputPipe13) => MaybePromise, + pipe15: (input: GenericOutputPipe14) => MaybePromise, +): (input: MaybePromise) => Promise< + BreakGenericLink >; export function asyncInnerPipe(...pipes: AnyFunction[]) { diff --git a/scripts/common/asyncPipe.ts b/scripts/common/asyncPipe.ts index d6fb460fd..38c9b355a 100644 --- a/scripts/common/asyncPipe.ts +++ b/scripts/common/asyncPipe.ts @@ -1,368 +1,365 @@ /* eslint-disable @typescript-eslint/max-params */ -import { type MaybeFutureEither } from "@scripts/either/future/maybeFutureEither"; -import { type BreakGenericLink, type EscapeVoid } from "./types"; +import { type BreakGenericLink } from "./types"; import { type AnyFunction } from "./types/anyFunction"; import { type AnyValue } from "./types/anyValue"; import { type MaybePromise } from "./types/maybePromise"; -type MaybePromiseLike = MaybePromise | MaybeFutureEither; - /** * {@include common/asyncPipe/index.md} */ export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, + input: MaybePromise, + pipe1: (input: GenericInput) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, + input: MaybePromise, + pipe1: (input: GenericInput) => MaybePromise, + pipe2: (input: GenericOutputPipe1) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, + input: MaybePromise, + pipe1: (input: GenericInput) => MaybePromise, + pipe2: (input: GenericOutputPipe1) => MaybePromise, + pipe3: (input: GenericOutputPipe2) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, + input: MaybePromise, + pipe1: (input: GenericInput) => MaybePromise, + pipe2: (input: GenericOutputPipe1) => MaybePromise, + pipe3: (input: GenericOutputPipe2) => MaybePromise, + pipe4: (input: GenericOutputPipe3) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, + input: MaybePromise, + pipe1: (input: GenericInput) => MaybePromise, + pipe2: (input: GenericOutputPipe1) => MaybePromise, + pipe3: (input: GenericOutputPipe2) => MaybePromise, + pipe4: (input: GenericOutputPipe3) => MaybePromise, + pipe5: (input: GenericOutputPipe4) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, + input: MaybePromise, + pipe1: (input: GenericInput) => MaybePromise, + pipe2: (input: GenericOutputPipe1) => MaybePromise, + pipe3: (input: GenericOutputPipe2) => MaybePromise, + pipe4: (input: GenericOutputPipe3) => MaybePromise, + pipe5: (input: GenericOutputPipe4) => MaybePromise, + pipe6: (input: GenericOutputPipe5) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, - GenericOutputPipe7 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, - pipe7: (input: Awaited) => GenericOutputPipe7, + input: MaybePromise, + 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, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, - GenericOutputPipe7 extends MaybePromiseLike, - GenericOutputPipe8 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, - pipe7: (input: Awaited) => GenericOutputPipe7, - pipe8: (input: Awaited) => GenericOutputPipe8, + input: MaybePromise, + 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, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, - GenericOutputPipe7 extends MaybePromiseLike, - GenericOutputPipe8 extends MaybePromiseLike, - GenericOutputPipe9 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, - pipe7: (input: Awaited) => GenericOutputPipe7, - pipe8: (input: Awaited) => GenericOutputPipe8, - pipe9: (input: Awaited) => GenericOutputPipe9, + input: MaybePromise, + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, - GenericOutputPipe7 extends MaybePromiseLike, - GenericOutputPipe8 extends MaybePromiseLike, - GenericOutputPipe9 extends MaybePromiseLike, - GenericOutputPipe10 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, - pipe7: (input: Awaited) => GenericOutputPipe7, - pipe8: (input: Awaited) => GenericOutputPipe8, - pipe9: (input: Awaited) => GenericOutputPipe9, - pipe10: (input: Awaited) => GenericOutputPipe10, + input: MaybePromise, + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, - GenericOutputPipe7 extends MaybePromiseLike, - GenericOutputPipe8 extends MaybePromiseLike, - GenericOutputPipe9 extends MaybePromiseLike, - GenericOutputPipe10 extends MaybePromiseLike, - GenericOutputPipe11 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, - pipe7: (input: Awaited) => GenericOutputPipe7, - pipe8: (input: Awaited) => GenericOutputPipe8, - pipe9: (input: Awaited) => GenericOutputPipe9, - pipe10: (input: Awaited) => GenericOutputPipe10, - pipe11: (input: Awaited) => GenericOutputPipe11, + input: MaybePromise, + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, - GenericOutputPipe7 extends MaybePromiseLike, - GenericOutputPipe8 extends MaybePromiseLike, - GenericOutputPipe9 extends MaybePromiseLike, - GenericOutputPipe10 extends MaybePromiseLike, - GenericOutputPipe11 extends MaybePromiseLike, - GenericOutputPipe12 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, - pipe7: (input: Awaited) => GenericOutputPipe7, - pipe8: (input: Awaited) => GenericOutputPipe8, - pipe9: (input: Awaited) => GenericOutputPipe9, - pipe10: (input: Awaited) => GenericOutputPipe10, - pipe11: (input: Awaited) => GenericOutputPipe11, - pipe12: (input: Awaited) => GenericOutputPipe12, + input: MaybePromise, + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, + pipe12: (input: GenericOutputPipe11) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, - GenericOutputPipe7 extends MaybePromiseLike, - GenericOutputPipe8 extends MaybePromiseLike, - GenericOutputPipe9 extends MaybePromiseLike, - GenericOutputPipe10 extends MaybePromiseLike, - GenericOutputPipe11 extends MaybePromiseLike, - GenericOutputPipe12 extends MaybePromiseLike, - GenericOutputPipe13 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, - pipe7: (input: Awaited) => GenericOutputPipe7, - pipe8: (input: Awaited) => GenericOutputPipe8, - pipe9: (input: Awaited) => GenericOutputPipe9, - pipe10: (input: Awaited) => GenericOutputPipe10, - pipe11: (input: Awaited) => GenericOutputPipe11, - pipe12: (input: Awaited) => GenericOutputPipe12, - pipe13: (input: Awaited) => GenericOutputPipe13, + input: MaybePromise, + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, + pipe12: (input: GenericOutputPipe11) => MaybePromise, + pipe13: (input: GenericOutputPipe12) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, - GenericOutputPipe7 extends MaybePromiseLike, - GenericOutputPipe8 extends MaybePromiseLike, - GenericOutputPipe9 extends MaybePromiseLike, - GenericOutputPipe10 extends MaybePromiseLike, - GenericOutputPipe11 extends MaybePromiseLike, - GenericOutputPipe12 extends MaybePromiseLike, - GenericOutputPipe13 extends MaybePromiseLike, - GenericOutputPipe14 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, - pipe7: (input: Awaited) => GenericOutputPipe7, - pipe8: (input: Awaited) => GenericOutputPipe8, - pipe9: (input: Awaited) => GenericOutputPipe9, - pipe10: (input: Awaited) => GenericOutputPipe10, - pipe11: (input: Awaited) => GenericOutputPipe11, - pipe12: (input: Awaited) => GenericOutputPipe12, - pipe13: (input: Awaited) => GenericOutputPipe13, - pipe14: (input: Awaited) => GenericOutputPipe14, + input: MaybePromise, + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, + pipe12: (input: GenericOutputPipe11) => MaybePromise, + pipe13: (input: GenericOutputPipe12) => MaybePromise, + pipe14: (input: GenericOutputPipe13) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; export function asyncPipe< - GenericInput extends MaybePromiseLike, - GenericOutputPipe1 extends MaybePromiseLike, - GenericOutputPipe2 extends MaybePromiseLike, - GenericOutputPipe3 extends MaybePromiseLike, - GenericOutputPipe4 extends MaybePromiseLike, - GenericOutputPipe5 extends MaybePromiseLike, - GenericOutputPipe6 extends MaybePromiseLike, - GenericOutputPipe7 extends MaybePromiseLike, - GenericOutputPipe8 extends MaybePromiseLike, - GenericOutputPipe9 extends MaybePromiseLike, - GenericOutputPipe10 extends MaybePromiseLike, - GenericOutputPipe11 extends MaybePromiseLike, - GenericOutputPipe12 extends MaybePromiseLike, - GenericOutputPipe13 extends MaybePromiseLike, - GenericOutputPipe14 extends MaybePromiseLike, - GenericOutputPipe15 extends MaybePromiseLike, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, + const GenericOutputPipe15 extends unknown, >( - input: GenericInput, - pipe1: (input: Awaited) => GenericOutputPipe1, - pipe2: (input: Awaited) => GenericOutputPipe2, - pipe3: (input: Awaited) => GenericOutputPipe3, - pipe4: (input: Awaited) => GenericOutputPipe4, - pipe5: (input: Awaited) => GenericOutputPipe5, - pipe6: (input: Awaited) => GenericOutputPipe6, - pipe7: (input: Awaited) => GenericOutputPipe7, - pipe8: (input: Awaited) => GenericOutputPipe8, - pipe9: (input: Awaited) => GenericOutputPipe9, - pipe10: (input: Awaited) => GenericOutputPipe10, - pipe11: (input: Awaited) => GenericOutputPipe11, - pipe12: (input: Awaited) => GenericOutputPipe12, - pipe13: (input: Awaited) => GenericOutputPipe13, - pipe14: (input: Awaited) => GenericOutputPipe14, - pipe15: (input: Awaited) => GenericOutputPipe15, + input: MaybePromise, + 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, + pipe9: (input: GenericOutputPipe8) => MaybePromise, + pipe10: (input: GenericOutputPipe9) => MaybePromise, + pipe11: (input: GenericOutputPipe10) => MaybePromise, + pipe12: (input: GenericOutputPipe11) => MaybePromise, + pipe13: (input: GenericOutputPipe12) => MaybePromise, + pipe14: (input: GenericOutputPipe13) => MaybePromise, + pipe15: (input: GenericOutputPipe14) => MaybePromise, ): Promise< - Awaited> + BreakGenericLink >; /** diff --git a/scripts/common/innerPipe.ts b/scripts/common/innerPipe.ts index d3a37e5de..a5f34465a 100644 --- a/scripts/common/innerPipe.ts +++ b/scripts/common/innerPipe.ts @@ -1,41 +1,40 @@ /* eslint-disable @typescript-eslint/max-params */ -import { type BreakGenericLink, type EscapeVoid } from "./types"; +import { type BreakGenericLink } from "./types"; import { type AnyFunction } from "./types/anyFunction"; -import { type AnyValue } from "./types/anyValue"; /** * {@include common/innerPipe/index.md} */ export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -43,12 +42,12 @@ export function innerPipe< pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -57,13 +56,13 @@ export function innerPipe< pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -73,14 +72,14 @@ export function innerPipe< pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -91,15 +90,15 @@ export function innerPipe< pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -111,16 +110,16 @@ export function innerPipe< pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -133,17 +132,17 @@ export function innerPipe< pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -157,18 +156,18 @@ export function innerPipe< pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -183,19 +182,19 @@ export function innerPipe< pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -211,20 +210,20 @@ export function innerPipe< pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, - GenericOutputPipe13 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -241,21 +240,21 @@ export function innerPipe< pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, - GenericOutputPipe13 extends AnyValue | EscapeVoid, - GenericOutputPipe14 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, @@ -273,22 +272,22 @@ export function innerPipe< pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14, ): (input: GenericInput) => BreakGenericLink; export function innerPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, - GenericOutputPipe13 extends AnyValue | EscapeVoid, - GenericOutputPipe14 extends AnyValue | EscapeVoid, - GenericOutputPipe15 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, + const GenericOutputPipe15 extends unknown, >( pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, diff --git a/scripts/common/pipe.ts b/scripts/common/pipe.ts index b8873b23c..9fde02cd0 100644 --- a/scripts/common/pipe.ts +++ b/scripts/common/pipe.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/max-params */ -import { type BreakGenericLink, type EscapeVoid } from "./types"; +import { type BreakGenericLink } from "./types"; import { type AnyFunction } from "./types/anyFunction"; import { type AnyValue } from "./types/anyValue"; @@ -7,26 +7,26 @@ import { type AnyValue } from "./types/anyValue"; * {@include common/pipe/index.md} */ export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, pipe2: (input: GenericOutputPipe1) => GenericOutputPipe2, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -34,11 +34,11 @@ export function pipe< pipe3: (input: GenericOutputPipe2) => GenericOutputPipe3, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -47,12 +47,12 @@ export function pipe< pipe4: (input: GenericOutputPipe3) => GenericOutputPipe4, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -62,13 +62,13 @@ export function pipe< pipe5: (input: GenericOutputPipe4) => GenericOutputPipe5, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -79,14 +79,14 @@ export function pipe< pipe6: (input: GenericOutputPipe5) => GenericOutputPipe6, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -98,15 +98,15 @@ export function pipe< pipe7: (input: GenericOutputPipe6) => GenericOutputPipe7, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -119,16 +119,16 @@ export function pipe< pipe8: (input: GenericOutputPipe7) => GenericOutputPipe8, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -142,17 +142,17 @@ export function pipe< pipe9: (input: GenericOutputPipe8) => GenericOutputPipe9, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -167,18 +167,18 @@ export function pipe< pipe10: (input: GenericOutputPipe9) => GenericOutputPipe10, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -194,19 +194,19 @@ export function pipe< pipe11: (input: GenericOutputPipe10) => GenericOutputPipe11, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -223,20 +223,20 @@ export function pipe< pipe12: (input: GenericOutputPipe11) => GenericOutputPipe12, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, - GenericOutputPipe13 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -254,21 +254,21 @@ export function pipe< pipe13: (input: GenericOutputPipe12) => GenericOutputPipe13, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, - GenericOutputPipe13 extends AnyValue | EscapeVoid, - GenericOutputPipe14 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, @@ -287,22 +287,22 @@ export function pipe< pipe14: (input: GenericOutputPipe13) => GenericOutputPipe14, ): BreakGenericLink; export function pipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue | EscapeVoid, - GenericOutputPipe2 extends AnyValue | EscapeVoid, - GenericOutputPipe3 extends AnyValue | EscapeVoid, - GenericOutputPipe4 extends AnyValue | EscapeVoid, - GenericOutputPipe5 extends AnyValue | EscapeVoid, - GenericOutputPipe6 extends AnyValue | EscapeVoid, - GenericOutputPipe7 extends AnyValue | EscapeVoid, - GenericOutputPipe8 extends AnyValue | EscapeVoid, - GenericOutputPipe9 extends AnyValue | EscapeVoid, - GenericOutputPipe10 extends AnyValue | EscapeVoid, - GenericOutputPipe11 extends AnyValue | EscapeVoid, - GenericOutputPipe12 extends AnyValue | EscapeVoid, - GenericOutputPipe13 extends AnyValue | EscapeVoid, - GenericOutputPipe14 extends AnyValue | EscapeVoid, - GenericOutputPipe15 extends AnyValue | EscapeVoid, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, + const GenericOutputPipe15 extends unknown, >( input: GenericInput, pipe1: (input: GenericInput) => GenericOutputPipe1, diff --git a/scripts/either/matchInformation.ts b/scripts/either/matchInformation.ts index 288741487..fb6759397 100644 --- a/scripts/either/matchInformation.ts +++ b/scripts/either/matchInformation.ts @@ -1,7 +1,8 @@ -import { type AnyFunction, unwrap, type FixDeepFunctionInfer, type GetKindValue, type Kind, type Unwrap } from "@scripts/common"; +import { type AnyFunction, unwrap, type FixDeepFunctionInfer, type GetKindValue, type Kind, type Unwrap, type IsEqual } from "@scripts/common"; import { informationKind } from "./kind"; import { type Right } from "./right"; import { type Left } from "./left"; +import { type ForbiddenKey } from "@scripts/object"; type Either = Right | Left; @@ -29,6 +30,25 @@ type ComputeMatcher< any >; +type ForbiddenMoreKey< + GenericInput extends unknown, + GenericMatcher extends ComputeMatcher< + Extract + >, +> = ForbiddenKey< + GenericMatcher, + Extract< + Exclude< + keyof GenericMatcher, + GetKindValue< + typeof informationKind, + Extract + > + >, + string + > +>; + /** * {@include either/matchInformation/index.md} */ @@ -37,12 +57,14 @@ export function matchInformation< GenericMatcher extends ComputeMatcher< Extract >, + GenericError extends ForbiddenMoreKey, >( matcher: ( & ComputeMatcher< Extract, Either> > & GenericMatcher + & NoInfer ) ): (input: GenericInput) => ( | ReturnType> @@ -62,6 +84,7 @@ export function matchInformation< >, GenericMatcher > + & ForbiddenMoreKey ): ( | ReturnType | Exclude diff --git a/scripts/either/right/asyncPipe.ts b/scripts/either/right/asyncPipe.ts index 034aa3620..9b09dfcc6 100644 --- a/scripts/either/right/asyncPipe.ts +++ b/scripts/either/right/asyncPipe.ts @@ -1,36 +1,26 @@ /* eslint-disable @typescript-eslint/max-params */ import { type Right } from "./create"; import { isLeft, type Left } from "../left"; -import { type MaybeFutureEither } from "../future/maybeFutureEither"; -import { type FutureError, future, type Future } from "../future"; import { success, type Success } from "./success"; import { isRight } from "./is"; -import { type AnyValue, unwrap, type Unwrap } from "@scripts/common"; +import { type MaybePromise, unwrap, type Unwrap } from "@scripts/common"; type Either = Right | Left; -export type RightAsyncPipeFunction< - GenericInput extends AnyValue = AnyValue, - GenericOutput extends MaybeFutureEither = MaybeFutureEither, +type RightAsyncPipeFunction< + GenericInput extends unknown, + GenericOutput extends unknown, > = ( input: Awaited extends infer InferredInput ? InferredInput extends Either ? Unwrap> : InferredInput : never -) => GenericOutput; +) => MaybePromise; -/** - * @deprecated use RightAsyncPipeFunction - */ -export type EitherRightAsyncPipeFunction< - GenericInput extends AnyValue = AnyValue, - GenericOutput extends MaybeFutureEither = MaybeFutureEither, -> = RightAsyncPipeFunction; - -export type RightAsyncPipeResult< - GenericPipeOutputs extends AnyValue, - GenericLastPipeOutput extends AnyValue, +type RightAsyncPipeResult< + GenericPipeOutputs extends unknown, + GenericLastPipeOutput extends unknown, > = ( | Extract< Awaited, @@ -46,31 +36,18 @@ export type RightAsyncPipeResult< > : never ) - | ( - Promise extends Exclude> - ? FutureError - : never - ) ); -/** - * @deprecated use RightAsyncPipeResult - */ -export type EitherRightAsyncPipeResult< - GenericPipeOutputs extends AnyValue, - GenericLastPipeOutput extends AnyValue, -> = RightAsyncPipeResult; - /** * {@include either/rightAsyncPipe/index.md} */ export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -81,14 +58,14 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -100,16 +77,16 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -122,18 +99,18 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, pipe2: RightAsyncPipeFunction, pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -147,12 +124,12 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -160,7 +137,7 @@ export function rightAsyncPipe< pipe3: RightAsyncPipeFunction, pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -175,13 +152,13 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -190,7 +167,7 @@ export function rightAsyncPipe< pipe4: RightAsyncPipeFunction, pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -206,14 +183,14 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, - GenericOutputPipe7 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -223,7 +200,7 @@ export function rightAsyncPipe< pipe5: RightAsyncPipeFunction, pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -240,15 +217,15 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, - GenericOutputPipe7 extends MaybeFutureEither, - GenericOutputPipe8 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -259,7 +236,7 @@ export function rightAsyncPipe< pipe6: RightAsyncPipeFunction, pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -277,16 +254,16 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, - GenericOutputPipe7 extends MaybeFutureEither, - GenericOutputPipe8 extends MaybeFutureEither, - GenericOutputPipe9 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -298,7 +275,7 @@ export function rightAsyncPipe< pipe7: RightAsyncPipeFunction, pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -317,17 +294,17 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, - GenericOutputPipe7 extends MaybeFutureEither, - GenericOutputPipe8 extends MaybeFutureEither, - GenericOutputPipe9 extends MaybeFutureEither, - GenericOutputPipe10 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -340,7 +317,7 @@ export function rightAsyncPipe< pipe8: RightAsyncPipeFunction, pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -360,18 +337,18 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, - GenericOutputPipe7 extends MaybeFutureEither, - GenericOutputPipe8 extends MaybeFutureEither, - GenericOutputPipe9 extends MaybeFutureEither, - GenericOutputPipe10 extends MaybeFutureEither, - GenericOutputPipe11 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -385,7 +362,7 @@ export function rightAsyncPipe< pipe9: RightAsyncPipeFunction, pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -406,19 +383,19 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, - GenericOutputPipe7 extends MaybeFutureEither, - GenericOutputPipe8 extends MaybeFutureEither, - GenericOutputPipe9 extends MaybeFutureEither, - GenericOutputPipe10 extends MaybeFutureEither, - GenericOutputPipe11 extends MaybeFutureEither, - GenericOutputPipe12 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -433,7 +410,7 @@ export function rightAsyncPipe< pipe10: RightAsyncPipeFunction, pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -455,20 +432,20 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, - GenericOutputPipe7 extends MaybeFutureEither, - GenericOutputPipe8 extends MaybeFutureEither, - GenericOutputPipe9 extends MaybeFutureEither, - GenericOutputPipe10 extends MaybeFutureEither, - GenericOutputPipe11 extends MaybeFutureEither, - GenericOutputPipe12 extends MaybeFutureEither, - GenericOutputPipe13 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -484,7 +461,7 @@ export function rightAsyncPipe< pipe11: RightAsyncPipeFunction, pipe12: RightAsyncPipeFunction, pipe13: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -507,21 +484,21 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, - GenericOutputPipe7 extends MaybeFutureEither, - GenericOutputPipe8 extends MaybeFutureEither, - GenericOutputPipe9 extends MaybeFutureEither, - GenericOutputPipe10 extends MaybeFutureEither, - GenericOutputPipe11 extends MaybeFutureEither, - GenericOutputPipe12 extends MaybeFutureEither, - GenericOutputPipe13 extends MaybeFutureEither, - GenericOutputPipe14 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -538,7 +515,7 @@ export function rightAsyncPipe< pipe12: RightAsyncPipeFunction, pipe13: RightAsyncPipeFunction, pipe14: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -562,22 +539,22 @@ export function rightAsyncPipe< > >; export function rightAsyncPipe< - GenericInput extends MaybeFutureEither, - GenericOutputPipe1 extends MaybeFutureEither, - GenericOutputPipe2 extends MaybeFutureEither, - GenericOutputPipe3 extends MaybeFutureEither, - GenericOutputPipe4 extends MaybeFutureEither, - GenericOutputPipe5 extends MaybeFutureEither, - GenericOutputPipe6 extends MaybeFutureEither, - GenericOutputPipe7 extends MaybeFutureEither, - GenericOutputPipe8 extends MaybeFutureEither, - GenericOutputPipe9 extends MaybeFutureEither, - GenericOutputPipe10 extends MaybeFutureEither, - GenericOutputPipe11 extends MaybeFutureEither, - GenericOutputPipe12 extends MaybeFutureEither, - GenericOutputPipe13 extends MaybeFutureEither, - GenericOutputPipe14 extends MaybeFutureEither, - GenericOutputPipe15 extends MaybeFutureEither, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, + const GenericOutputPipe15 extends unknown, >( input: GenericInput, pipe1: RightAsyncPipeFunction, @@ -595,7 +572,7 @@ export function rightAsyncPipe< pipe13: RightAsyncPipeFunction, pipe14: RightAsyncPipeFunction, pipe15: RightAsyncPipeFunction, -): Future< +): Promise< Extract< RightAsyncPipeResult< | GenericInput @@ -619,37 +596,33 @@ export function rightAsyncPipe< any > >; -export function rightAsyncPipe( - input: MaybeFutureEither, - ...pipes: RightAsyncPipeFunction[] -): Future { - return future( - (async() => { - const awaitedInput = await input; +export async function rightAsyncPipe( + input: MaybePromise, + ...pipes: RightAsyncPipeFunction[] +) { + const awaitedInput = await input; - if (isLeft(awaitedInput)) { - return awaitedInput; - } + if (isLeft(awaitedInput)) { + return awaitedInput; + } - let acc: AnyValue = isRight(awaitedInput) - ? unwrap(awaitedInput) - : awaitedInput; + let acc: unknown = isRight(awaitedInput) + ? unwrap(awaitedInput) + : awaitedInput; - for (const pipe of pipes) { - acc = await pipe( - isRight(acc) - ? unwrap(acc) - : acc, - ); + for (const pipe of pipes) { + acc = await pipe( + isRight(acc) + ? unwrap(acc) + : acc, + ); - if (isLeft(acc)) { - return acc; - } - } + if (isLeft(acc)) { + return acc; + } + } - return isRight(acc) - ? acc - : success(acc); - })(), - ); + return isRight(acc) + ? acc + : success(acc); } diff --git a/scripts/either/right/pipe.ts b/scripts/either/right/pipe.ts index 7ce885b90..1174be413 100644 --- a/scripts/either/right/pipe.ts +++ b/scripts/either/right/pipe.ts @@ -4,31 +4,23 @@ import { type Right } from "./create"; import { isLeft, type Left } from "../left"; import { success, type Success } from "./success"; import { isRight } from "./is"; -import { type AnyValue, unwrap, type Unwrap } from "@scripts/common"; +import { unwrap, type Unwrap } from "@scripts/common"; type Either = Right | Left; -export type RightPipeFunction< - GenericInput extends AnyValue = AnyValue, - GenericOutput extends AnyValue = AnyValue, +type RightPipeFunction< + GenericInput extends unknown, + GenericOutput extends unknown, > = ( input: GenericInput extends Either ? Unwrap> : GenericInput ) => GenericOutput; -/** - * @deprecated use RightPipeFunction - */ -export type EitherRightPipeFunction< - GenericInput extends AnyValue = AnyValue, - GenericOutput extends AnyValue = AnyValue, -> = RightPipeFunction; - -export type RightPipeResult< - GenericPipeOutputs extends AnyValue, - GenericLastPipeOutput extends AnyValue, -> = +type RightPipeResult< + GenericPipeOutputs extends unknown, + GenericLastPipeOutput extends unknown, +> = ( | Extract< GenericPipeOutputs, Left @@ -38,22 +30,15 @@ export type RightPipeResult< ? GenericLastPipeOutput : Success, Left - >; - -/** - * @deprecated use RightPipeResult - */ -export type EitherRightPipeResult< - GenericPipeOutputs extends AnyValue, - GenericLastPipeOutput extends AnyValue, -> = RightPipeResult; + > +); /** * {@include either/rightPipe/index.md} */ export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -66,9 +51,9 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -83,10 +68,10 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -103,11 +88,11 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -126,12 +111,12 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -152,13 +137,13 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -181,14 +166,14 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, - GenericOutputPipe7 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -213,15 +198,15 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, - GenericOutputPipe7 extends AnyValue, - GenericOutputPipe8 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -248,16 +233,16 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, - GenericOutputPipe7 extends AnyValue, - GenericOutputPipe8 extends AnyValue, - GenericOutputPipe9 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -286,17 +271,17 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, - GenericOutputPipe7 extends AnyValue, - GenericOutputPipe8 extends AnyValue, - GenericOutputPipe9 extends AnyValue, - GenericOutputPipe10 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -327,18 +312,18 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, - GenericOutputPipe7 extends AnyValue, - GenericOutputPipe8 extends AnyValue, - GenericOutputPipe9 extends AnyValue, - GenericOutputPipe10 extends AnyValue, - GenericOutputPipe11 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -371,19 +356,19 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, - GenericOutputPipe7 extends AnyValue, - GenericOutputPipe8 extends AnyValue, - GenericOutputPipe9 extends AnyValue, - GenericOutputPipe10 extends AnyValue, - GenericOutputPipe11 extends AnyValue, - GenericOutputPipe12 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -418,20 +403,20 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, - GenericOutputPipe7 extends AnyValue, - GenericOutputPipe8 extends AnyValue, - GenericOutputPipe9 extends AnyValue, - GenericOutputPipe10 extends AnyValue, - GenericOutputPipe11 extends AnyValue, - GenericOutputPipe12 extends AnyValue, - GenericOutputPipe13 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -468,21 +453,21 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, - GenericOutputPipe7 extends AnyValue, - GenericOutputPipe8 extends AnyValue, - GenericOutputPipe9 extends AnyValue, - GenericOutputPipe10 extends AnyValue, - GenericOutputPipe11 extends AnyValue, - GenericOutputPipe12 extends AnyValue, - GenericOutputPipe13 extends AnyValue, - GenericOutputPipe14 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -521,22 +506,22 @@ export function rightPipe< any >; export function rightPipe< - GenericInput extends AnyValue, - GenericOutputPipe1 extends AnyValue, - GenericOutputPipe2 extends AnyValue, - GenericOutputPipe3 extends AnyValue, - GenericOutputPipe4 extends AnyValue, - GenericOutputPipe5 extends AnyValue, - GenericOutputPipe6 extends AnyValue, - GenericOutputPipe7 extends AnyValue, - GenericOutputPipe8 extends AnyValue, - GenericOutputPipe9 extends AnyValue, - GenericOutputPipe10 extends AnyValue, - GenericOutputPipe11 extends AnyValue, - GenericOutputPipe12 extends AnyValue, - GenericOutputPipe13 extends AnyValue, - GenericOutputPipe14 extends AnyValue, - GenericOutputPipe15 extends AnyValue, + const GenericInput extends unknown, + const GenericOutputPipe1 extends unknown, + const GenericOutputPipe2 extends unknown, + const GenericOutputPipe3 extends unknown, + const GenericOutputPipe4 extends unknown, + const GenericOutputPipe5 extends unknown, + const GenericOutputPipe6 extends unknown, + const GenericOutputPipe7 extends unknown, + const GenericOutputPipe8 extends unknown, + const GenericOutputPipe9 extends unknown, + const GenericOutputPipe10 extends unknown, + const GenericOutputPipe11 extends unknown, + const GenericOutputPipe12 extends unknown, + const GenericOutputPipe13 extends unknown, + const GenericOutputPipe14 extends unknown, + const GenericOutputPipe15 extends unknown, >( input: GenericInput, pipe1: RightPipeFunction, @@ -578,14 +563,14 @@ export function rightPipe< >; export function rightPipe( - input: AnyValue, - ...pipes: RightPipeFunction[] + input: unknown, + ...pipes: RightPipeFunction[] ): any { if (isLeft(input)) { return input; } - let acc: AnyValue = isRight(input) + let acc: unknown = isRight(input) ? unwrap(input) : input; diff --git a/scripts/either/safeCallback.ts b/scripts/either/safeCallback.ts index 03fadd8e7..2d735e7a0 100644 --- a/scripts/either/safeCallback.ts +++ b/scripts/either/safeCallback.ts @@ -1,99 +1,68 @@ -import type { Kind, EscapeVoid } from "@scripts/common"; -import { createEitherKind } from "./kind"; import { type Left, isLeft, left } from "./left"; import { isRight, right, type Right } from "./right"; -export const callbackErrorKind = createEitherKind( - "callback-error", -); - -/** - * @deprecated use callbackErrorKind - */ -export const eitherCallbackErrorKind = callbackErrorKind; - -export const callbackSuccessKind = createEitherKind( - "callback-success", -); - -/** - * @deprecated use callbackSuccessKind - */ -export const eitherCallbackSuccessKind = callbackSuccessKind; - -type _CallbackError = ( - & Left<"callback", unknown> - & Kind -); - -type _CallbackSuccess< +export type SafeCallbackSuccess< GenericValue extends unknown, -> = ( - & Right<"callback", GenericValue> - & Kind -); - -export interface CallbackError extends _CallbackError {} +> = Right<"safe-callback-success", GenericValue>; -export interface CallbackSuccess< - GenericValue extends unknown, -> extends _CallbackSuccess {} - -/** - * @deprecated use CallbackError - */ -export type EitherCallbackError = CallbackError; - -/** - * @deprecated use CallbackSuccess - */ -export type EitherCallbackSuccess< - GenericValue extends unknown, -> = CallbackSuccess; - -export function callbackError(value: unknown): CallbackError { - return callbackErrorKind.setTo( - left("callback", value), - ); -} - -export function callbackSuccess< - GenericValue extends unknown, ->(value: GenericValue): CallbackSuccess { - return callbackSuccessKind.setTo( - right("callback", value), - ); -} +export type SafeCallbackError = Left<"safe-callback-error", unknown>; type Either = Right | Left; type ComputeSafeCallbackResult< GenericOutput extends unknown, -> = GenericOutput extends Either - ? GenericOutput - : GenericOutput extends EscapeVoid - ? CallbackSuccess - : CallbackSuccess; +> = ( + | ( + GenericOutput extends Either + ? GenericOutput + : GenericOutput extends Promise + ? Promise< + ComputeSafeCallbackResult< + InferredValue + > + > + : SafeCallbackSuccess + ) + | SafeCallbackError +); /** * {@include either/safeCallback/index.md} */ export function safeCallback< - GenericOutput extends unknown, + const GenericOutput extends unknown, >( theFunction: () => GenericOutput, -): ComputeSafeCallbackResult | CallbackError { +): Extract, any> { + let result: unknown = undefined; + try { - const result = theFunction(); + result = theFunction(); + } catch (error) { + return left("safe-callback-error", error) as never; + } - if (isRight(result) || isLeft(result)) { - return result as ComputeSafeCallbackResult; - } + if (result instanceof Promise) { + return result + .then((result) => { + if (isRight(result) || isLeft(result)) { + return result; + } + + return right( + "safe-callback-success", + result, + ); + }) + .catch((error) => left("safe-callback-error", error)) as never; + } - return callbackSuccess( - result, - ) as ComputeSafeCallbackResult; - } catch (error) { - return callbackError(error); + if (isRight(result) || isLeft(result)) { + return result; } + + return right( + "safe-callback-success", + result, + ) as never; } diff --git a/scripts/object/types/forbiddenKey.ts b/scripts/object/types/forbiddenKey.ts index 59a3b6819..44a3d460a 100644 --- a/scripts/object/types/forbiddenKey.ts +++ b/scripts/object/types/forbiddenKey.ts @@ -5,7 +5,7 @@ export type ForbiddenKey< GenericKey extends string, > = ( GenericKey extends keyof GenericObject - ? ComputedTypeError<`Key ${GenericKey} is forbidden.`> + ? ComputedTypeError<`Key "${GenericKey}" is forbidden.`> : never ) extends infer InferredResult ? IsEqual extends true diff --git a/tests/array/chunk.test.ts b/tests/array/chunk.test.ts index d2a6ca232..aa98f2ae6 100644 --- a/tests/array/chunk.test.ts +++ b/tests/array/chunk.test.ts @@ -26,8 +26,9 @@ describe("chunk", () => { }); it("works with pipe (curried)", () => { + const input = [1, 2, 3, 4, 5]; const result = pipe( - [1, 2, 3, 4, 5], + input, DArray.chunk(3), ); diff --git a/tests/array/from.test.ts b/tests/array/from.test.ts index 53d213b1d..0d6e14855 100644 --- a/tests/array/from.test.ts +++ b/tests/array/from.test.ts @@ -64,8 +64,9 @@ describe("from", () => { }); it("use in pipe", () => { + const input = [1, 2, 3]; const result = pipe( - [1, 2, 3], + input, DArray.from, ); diff --git a/tests/array/indexOf.test.ts b/tests/array/indexOf.test.ts index 4bf4269e3..1544b4144 100644 --- a/tests/array/indexOf.test.ts +++ b/tests/array/indexOf.test.ts @@ -38,8 +38,9 @@ describe("indexOf", () => { }); it("use in pipe", () => { + const input = [1, 2, 3, 4, 2]; const result = pipe( - [1, 2, 3, 4, 2], + input, DArray.indexOf(2), ); expect(result).toEqual(1); diff --git a/tests/array/lastIndexOf.test.ts b/tests/array/lastIndexOf.test.ts index 9ae525460..ac666fc43 100644 --- a/tests/array/lastIndexOf.test.ts +++ b/tests/array/lastIndexOf.test.ts @@ -38,8 +38,10 @@ describe("lastIndexOf", () => { }); it("use in pipe", () => { + const input = [1, 2, 3, 4, 2]; + const result = pipe( - [1, 2, 3, 4, 2], + input, DArray.lastIndexOf(2), ); expect(result).toEqual(4); diff --git a/tests/array/lengthEqual.test.ts b/tests/array/lengthEqual.test.ts index 8993650fe..54046908d 100644 --- a/tests/array/lengthEqual.test.ts +++ b/tests/array/lengthEqual.test.ts @@ -34,8 +34,9 @@ describe("lengthEqual", () => { }); it("use in pipe", () => { + const input = ["alpha", "beta"]; const result = pipe( - ["alpha", "beta"], + input, when( DArray.lengthEqual(2), (value) => { diff --git a/tests/array/minElements.test.ts b/tests/array/minElements.test.ts index 5070eabcd..52ab7d2dd 100644 --- a/tests/array/minElements.test.ts +++ b/tests/array/minElements.test.ts @@ -19,8 +19,9 @@ describe("minElements", () => { }); it("use in pipe", () => { + const input = ["string"]; const result = pipe( - ["string"], + input, when( DArray.minElements(10), (value) => { diff --git a/tests/common/asyncPipe.test.ts b/tests/common/asyncPipe.test.ts index 44c4b309b..c78097696 100644 --- a/tests/common/asyncPipe.test.ts +++ b/tests/common/asyncPipe.test.ts @@ -15,7 +15,7 @@ describe("asyncPipe", () => { type check = ExpectType< typeof result, - Promise<{ value: number }>, + Promise<{ readonly value: number }>, "strict" >; }); @@ -34,7 +34,7 @@ describe("asyncPipe", () => { type check = ExpectType< typeof result, - Promise<{ value: number }>, + Promise<{ readonly value: number }>, "strict" >; }); @@ -54,7 +54,7 @@ describe("asyncPipe", () => { type check = ExpectType< typeof result, Promise<{ - value: DEither.FutureSuccess; + readonly value: DEither.FutureSuccess; }>, "strict" >; diff --git a/tests/common/formData.test.ts b/tests/common/formData.test.ts index 87b022d09..6bbf76753 100644 --- a/tests/common/formData.test.ts +++ b/tests/common/formData.test.ts @@ -144,10 +144,11 @@ describe("formData", () => { }); it("can be used in pipe through createFormData", () => { + const input = { + name: "duplo", + }; const result = pipe( - { - name: "duplo", - }, + input, createFormData, ); diff --git a/tests/common/innerPipe.test.ts b/tests/common/innerPipe.test.ts index 5a64eba6b..fb39e6430 100644 --- a/tests/common/innerPipe.test.ts +++ b/tests/common/innerPipe.test.ts @@ -1,11 +1,12 @@ import { DArray, DObject, type ExpectType, innerPipe, pipe } from "@scripts"; it("innerPipe", () => { + const input = { + prop1: "test", + prop2: 2, + }; const result = pipe( - { - prop1: "test", - prop2: 2, - }, + input, innerPipe( (value) => { type check = ExpectType< diff --git a/tests/common/pipe.test.ts b/tests/common/pipe.test.ts index ce781c43b..a515f8da4 100644 --- a/tests/common/pipe.test.ts +++ b/tests/common/pipe.test.ts @@ -14,7 +14,7 @@ it("pipe", () => { type check = ExpectType< typeof result, - { value: number }, + { readonly value: number }, "strict" >; }); diff --git a/tests/common/unwrapGroup.test.ts b/tests/common/unwrapGroup.test.ts index 51b69d156..c35ee7ee0 100644 --- a/tests/common/unwrapGroup.test.ts +++ b/tests/common/unwrapGroup.test.ts @@ -42,7 +42,7 @@ describe("unwrapGroup", () => { type check = ExpectType< typeof result, - { value: "test" }, + { readonly value: "test" }, "strict" >; }); diff --git a/tests/either/bool/create.test.ts b/tests/either/bool/create.test.ts index ac7dcf59c..f561fc6b8 100644 --- a/tests/either/bool/create.test.ts +++ b/tests/either/bool/create.test.ts @@ -150,8 +150,9 @@ describe("createEitherBool", () => { }); it("use in pipe", () => { + const input = ["test"]; const result = pipe( - ["test"], + input, DArray.find((value) => value === "toto"), DEither.bool, ); diff --git a/tests/either/right/asyncPipe.test.ts b/tests/either/right/asyncPipe.test.ts index 4d6466960..096d9c077 100644 --- a/tests/either/right/asyncPipe.test.ts +++ b/tests/either/right/asyncPipe.test.ts @@ -58,7 +58,7 @@ describe("eitherRightAsyncPipe", () => { type check = ExpectType< Awaited, - DEither.Right<"result", number> | DEither.Fail, + DEither.Right<"result", 10> | DEither.Fail, "strict" >; }); @@ -75,7 +75,7 @@ describe("eitherRightAsyncPipe", () => { type check = ExpectType< Awaited, - DEither.Success | DEither.Fail, + DEither.Success<10> | DEither.Fail, "strict" >; }); @@ -97,7 +97,7 @@ describe("eitherRightAsyncPipe", () => { type check = ExpectType< Awaited, - DEither.Success | DEither.Fail | DEither.FutureError, + DEither.Success | DEither.Fail, "strict" >; }); diff --git a/tests/either/right/pipe.test.ts b/tests/either/right/pipe.test.ts index 7bef8950e..85a73057b 100644 --- a/tests/either/right/pipe.test.ts +++ b/tests/either/right/pipe.test.ts @@ -28,7 +28,7 @@ describe("eitherRightPipe", () => { type check = ExpectType< Awaited, - DEither.Right<"result", number> | DEither.Fail, + DEither.Right<"result", 10> | DEither.Fail, "strict" >; }); @@ -45,7 +45,7 @@ describe("eitherRightPipe", () => { type check = ExpectType< Awaited, - DEither.Success | DEither.Fail, + DEither.Success<10> | DEither.Fail, "strict" >; }); diff --git a/tests/either/safeCallback.test.ts b/tests/either/safeCallback.test.ts index e3d4cb850..2402ec3f6 100644 --- a/tests/either/safeCallback.test.ts +++ b/tests/either/safeCallback.test.ts @@ -1,14 +1,14 @@ -import { type ExpectType, DEither, keyKindPrefix, wrapValue } from "@scripts"; +import { type ExpectType, DEither, pipe } from "@scripts"; describe("safeCallback", () => { it("return value when callback succeeds", () => { const result = DEither.safeCallback(() => 42); - expect(result).toStrictEqual(DEither.callbackSuccess(42)); + expect(result).toStrictEqual(DEither.right("safe-callback-success", 42)); type check = ExpectType< typeof result, - DEither.CallbackSuccess | DEither.CallbackError, + DEither.SafeCallbackSuccess | DEither.SafeCallbackError, "strict" >; }); @@ -20,54 +20,119 @@ describe("safeCallback", () => { throw error; }); - expect(result).toStrictEqual(DEither.callbackError(error)); + expect(result).toStrictEqual(DEither.left("safe-callback-error", error)); type check = ExpectType< typeof result, - DEither.CallbackError, + DEither.SafeCallbackError, "strict" >; }); - it("return either when callback returns an either", () => { - const either = DEither.left("example", 42); - const result = DEither.safeCallback(() => either); + it("return value when promise callback resolves", async() => { + const result = DEither.safeCallback( + () => Promise.resolve(42 as const), + ); - expect(result).toBe(either); + expect(await result).toStrictEqual(DEither.right("safe-callback-success", 42)); type check = ExpectType< typeof result, - DEither.Left<"example", 42> | DEither.CallbackError, + | Promise< + | DEither.SafeCallbackSuccess<42> + | DEither.SafeCallbackError + > + | DEither.SafeCallbackError, "strict" >; }); - it("callbackError structure", () => { - const value = "boom"; - const result = DEither.callbackError(value); + it("return callback error when promise callback rejects", async() => { + const error = new Error("boom"); - expect(result).toStrictEqual({ - [`${keyKindPrefix}${DEither.eitherCallbackErrorKind.definition.name}`]: null, - [`${keyKindPrefix}${DEither.eitherInformationKind.definition.name}`]: "callback", - [`${keyKindPrefix}${DEither.eitherLeftKind.definition.name}`]: null, - ...wrapValue(value), - }); + const result = DEither.safeCallback( + () => Promise.reject(error), + ); + + expect(await result).toStrictEqual(DEither.left("safe-callback-error", error)); + + type check = ExpectType< + typeof result, + | Promise + | DEither.SafeCallbackError, + "strict" + >; + }); + + it("return callback error when async callback throws", async() => { + const error = new Error("boom"); + + const result = DEither.safeCallback( + async() => { + await Promise.resolve(); + throw error; + }, + ); + + expect(await result).toStrictEqual(DEither.left("safe-callback-error", error)); + + type check = ExpectType< + typeof result, + | Promise + | DEither.SafeCallbackError, + "strict" + >; + }); + + it("return either when promise callback resolves an either", async() => { + const either = DEither.right("example", 42); + + const result = DEither.safeCallback( + () => Promise.resolve(either), + ); + + expect(await result).toBe(either); + + type check = ExpectType< + typeof result, + | Promise< + | DEither.Right<"example", 42> + | DEither.SafeCallbackError + > + | DEither.SafeCallbackError, + "strict" + >; + }); + + it("return left as-is when promise callback resolves a left", async() => { + const either = DEither.left("example", 42); + + const result = DEither.safeCallback( + () => Promise.resolve(either), + ); + + expect(await result).toBe(either); type check = ExpectType< typeof result, - DEither.CallbackError, + | Promise< + | DEither.Left<"example", 42> + | DEither.SafeCallbackError + > + | DEither.SafeCallbackError, "strict" >; }); - it("return value when callback return void", () => { - const result = DEither.safeCallback(() => {}); + it("return either when callback returns an either", () => { + const either = DEither.left("example", 42); + const result = DEither.safeCallback(() => either); - expect(result).toStrictEqual(DEither.callbackSuccess(undefined)); + expect(result).toBe(either); type check = ExpectType< typeof result, - DEither.CallbackSuccess | DEither.CallbackError, + DEither.Left<"example", 42> | DEither.SafeCallbackError, "strict" >; }); @@ -79,13 +144,46 @@ describe("safeCallback", () => { } return; }); - expect(result).toStrictEqual(DEither.callbackSuccess(undefined)); + expect(result).toStrictEqual(DEither.right("safe-callback-success", undefined)); + + type check = ExpectType< + typeof result, + DEither.SafeCallbackSuccess + | DEither.SafeCallbackSuccess<"toto"> + | DEither.SafeCallbackError, + "strict" + >; + }); + + it("works with pipe", () => { + const result = pipe( + () => 42, + DEither.safeCallback, + ); + + expect(result).toStrictEqual(DEither.right("safe-callback-success", 42)); + + type check = ExpectType< + typeof result, + DEither.SafeCallbackSuccess | DEither.SafeCallbackError, + "strict" + >; + }); + + it("works with pipe when callback returns a rejected promise", async() => { + const error = new Error("boom"); + + const result = pipe( + () => Promise.reject(error), + DEither.safeCallback, + ); + + expect(await result).toStrictEqual(DEither.left("safe-callback-error", error)); type check = ExpectType< typeof result, - DEither.CallbackSuccess - | DEither.CallbackSuccess<"toto"> - | DEither.CallbackError, + | Promise + | DEither.SafeCallbackError, "strict" >; }); diff --git a/tests/object/assign.test.ts b/tests/object/assign.test.ts index 66f865e31..f0996529b 100644 --- a/tests/object/assign.test.ts +++ b/tests/object/assign.test.ts @@ -31,11 +31,12 @@ describe("assign", () => { }); it("use in pipe", () => { + const input = { + prop1: "test", + prop2: 1, + }; const result = pipe( - { - prop1: "test", - prop2: 1, - }, + input, DObject.assign({ prop2: "toto", prop3: 1, diff --git a/tests/object/discriminateEntryValue.test.ts b/tests/object/discriminateEntryValue.test.ts index 5001e9739..4d9a5c7a3 100644 --- a/tests/object/discriminateEntryValue.test.ts +++ b/tests/object/discriminateEntryValue.test.ts @@ -1,4 +1,4 @@ -import { DObject, isType, pipe, when, type ExpectType } from "@scripts"; +import { DObject, equal, isType, pipe, when, type ExpectType } from "@scripts"; describe("discriminateEntryValue", () => { it("default usage", () => { diff --git a/tests/object/omit.test.ts b/tests/object/omit.test.ts index e064beec0..fec3f93d6 100644 --- a/tests/object/omit.test.ts +++ b/tests/object/omit.test.ts @@ -56,12 +56,13 @@ describe("omit", () => { }); it("omit with object", () => { + const input = { + prop1: "test", + prop2: 1, + prop3: [1, "test"], + }; const result = pipe( - { - prop1: "test", - prop2: 1, - prop3: [1, "test"], - }, + input, DObject.omit({ prop1: undefined as true | undefined, prop2: true, diff --git a/tests/object/override.test.ts b/tests/object/override.test.ts index e46488d69..f4f74b054 100644 --- a/tests/object/override.test.ts +++ b/tests/object/override.test.ts @@ -28,11 +28,13 @@ describe("override", () => { }); it("use in pipe", () => { + const input = { + prop1: "test", + prop2: 1, + }; + const result = pipe( - { - prop1: "test", - prop2: 1, - }, + input, DObject.override({ prop2: 2, prop1: undefined, diff --git a/tests/object/pick.test.ts b/tests/object/pick.test.ts index 0bffd02a8..c2c2d9b1f 100644 --- a/tests/object/pick.test.ts +++ b/tests/object/pick.test.ts @@ -53,12 +53,13 @@ describe("pick", () => { }); it("pick with object", () => { + const input = { + prop1: "test", + prop2: 1, + prop3: [1, "test"], + }; const result = pipe( - { - prop1: "test", - prop2: 1, - prop3: [1, "test"], - }, + input, DObject.pick({ prop1: undefined as true | undefined, prop2: true, diff --git a/tests/object/transformProperties.test.ts b/tests/object/transformProperties.test.ts index be1217c12..079d49373 100644 --- a/tests/object/transformProperties.test.ts +++ b/tests/object/transformProperties.test.ts @@ -41,12 +41,14 @@ describe("transformProperties", () => { }); it("use in pipe", () => { + const input = { + prop1: 1, + prop2: "test", + prop3: [1, 2] as const, + }; + const result = pipe( - { - prop1: 1, - prop2: "test", - prop3: [1, 2] as const, - }, + input, DObject.transformProperties({ prop1: () => "wow", prop3: true ? DArray.shift : undefined, diff --git a/tests/object/transformProperty.test.ts b/tests/object/transformProperty.test.ts index 14718bffb..90d1c7145 100644 --- a/tests/object/transformProperty.test.ts +++ b/tests/object/transformProperty.test.ts @@ -38,22 +38,23 @@ describe("transformProperty", () => { }); it("use in pipe", () => { + const input = { + prop1: 1, + prop2: "test", + prop3: [], + }; const result = pipe( - { - prop1: 1, - prop2: "test", - prop3: [], - }, + input, DObject.transformProperty( "prop1", (value) => { - type check = ExpectType< - typeof value, - number, - "strict" - >; + type check = ExpectType< + typeof value, + number, + "strict" + >; - return `toto-${value}`; + return `toto-${value}`; }, ), ); diff --git a/tests/pattern/union/array.test.ts b/tests/pattern/union/array.test.ts index 4f9dad306..f56a77fc8 100644 --- a/tests/pattern/union/array.test.ts +++ b/tests/pattern/union/array.test.ts @@ -217,7 +217,7 @@ describe("union discriminate array", () => { type Check = ExpectType< typeof result, - DPattern.PatternResult<"myValue"> | { input: Test[] }, + DPattern.PatternResult<"myValue"> | { readonly input: Test[] }, "strict" >; }); @@ -248,7 +248,7 @@ describe("union discriminate array", () => { type Check = ExpectType< typeof result, - DPattern.PatternResult<"myValue"> | { input: Test[] }, + DPattern.PatternResult<"myValue"> | { readonly input: Test[] }, "strict" >; }); @@ -257,7 +257,7 @@ describe("union discriminate array", () => { const result = pipe( { input, - con: true, + con: true as boolean, }, DPattern.match( { @@ -287,8 +287,8 @@ describe("union discriminate array", () => { type Check = ExpectType< typeof result, DPattern.PatternResult<"myValue"> | { - input: Test[]; - con: boolean; + readonly input: Test[]; + readonly con: boolean; }, "strict" >; @@ -483,7 +483,7 @@ describe("union discriminate array", () => { type Check = ExpectType< typeof result, DPattern.PatternResult<"myValue"> | { - input: [Test, number, ...string[]]; + readonly input: [Test, number, ...string[]]; }, "strict" >; diff --git a/tests/string/test.test.ts b/tests/string/test.test.ts index 1ff70af42..289bbfd64 100644 --- a/tests/string/test.test.ts +++ b/tests/string/test.test.ts @@ -21,7 +21,7 @@ describe("test", () => { type check = ExpectType< typeof result, - string[], + ("duplojs" | "nestjs" | "django")[], "strict" >; });