Skip to content

Common ​

Utilitaires transversaux pour composer des fonctions, gérer les promesses, manipuler des wrappers/kinds et appliquer des conversions runtime partagées par toute la librairie.

Comment faire les imports ? ​

Toutes les fonctions sont exportées depuis l'entrée principale ou via l'import direct (tree-shaking friendly).

typescript
import { pipe, when, clone } from "@duplojs/utils";
import * as DCommon from "@duplojs/utils/common";
import * as C from "@duplojs/utils/common";
import { pipe, when, clone } from "@duplojs/utils/common";

Composition et piping ​

pipe ​

Compose des fonctions synchrones en chaînant un même input.

innerPipe ​

Prépare un pipe réutilisable qui retourne une fonction à appliquer plus tard.

preparePipe ​

Déclare des étapes synchrones réutilisables avec inférence contextuelle de l’entrée-sortie.

asyncPipe ​

Compose des promesses ou des FutureEither de façon séquentielle en renvoyant un Promise.

asyncInnerPipe ​

Version curried d'asyncPipe qui renvoie une fonction prête à accepter une valeur (sync ou async).

prepareAsyncPipe ​

Déclare des étapes synchrones ou asynchrones réutilisables avec inférence contextuelle de l’entrée-sortie.

forward ​

Fonction identité pratique dans un chainage pour passer la valeur telle quelle.

forwardLog ​

Log la valeur (tap) puis la renvoie pour continuer le flux.

justReturn ​

Construit une fonction constante qui renvoie toujours la même valeur.

justExec ​

Exécute immédiatement un callback et renvoie sa sortie.

Contrôle conditionnel et prédicats ​

when ​

Applique une transformation si le prédicat est vrai (ou si le type guard passe), sinon renvoie l'entrée.

whenNot ​

Inverse la condition et exécute une fonction uniquement quand le prédicat échoue.

whenElse ​

Deux branches typées (if/else) qui renvoient des sorties distinctes sans perdre le type d'entrée.

and ​

Combine plusieurs type guards / prédicats en une intersection.

or ​

Combine plusieurs prédicats en une union, pratique pour filtrer des unions discriminées.

equal ​

Compare à une ou plusieurs valeurs littérales avec support des type guards sur les primitives.

isType ​

Type guard basé sur typeof, Array.isArray, itérables, etc.

asserts ​

Lance une erreur si le predicate echoue et affine le type si il passe.

forwardAsserts ​

Lance une erreur si le predicate echoue et retourne la valeur validée, en version directe ou currifiée.

instanceOf ​

Type guard basé sur un ou plusieurs constructeurs (instanceof typé).

hasKinds ​

Type guard qui vérifie qu'une valeur possède tous les kinds attendus.

hasSomeKinds ​

Type guard qui vérifie qu'une valeur possède au moins un des kinds attendus.

truthy ​

Type guard qui conserve uniquement les valeurs truthy.

falsy ​

Type guard qui conserve uniquement les valeurs falsy.

Boucles ​

loop ​

Boucle contrôlée par callbacks next / exit avec accès au compteur et à la sortie précédente.

asyncLoop ​

Version asynchrone de loop qui accepte des itérations retournant des promesses.

Promesses ​

externalPromise ​

Crée une promesse avec ses méthodes resolve/reject exposées pour être contrôlée de l'extérieur.

callThen ​

Applique un callback sur une valeur directe ou après résolution d'une Promise.

promiseAll ​

Résout un tuple ou un iterable contenant des promesses et/ou des valeurs directes.

promiseObject ​

Transforme un objet de promesses en promesse d'objet avec des valeurs résolues et typées.

queue ​

Crée une file FIFO pour exécuter des tâches sync/async avec une concurrence limitée.

Autres ​

asyncRetry ​

Relance une fonction asynchrone jusqu'à ce qu'une condition soit remplie (max retry, délai, log optionnel).

sleep ​

Pause asynchrone pour attendre un certain temps.

memo ​

Évalue une fonction une seule fois et réutilise le résultat (memoization lazy).

memoObject ​

Mémoïse un objet exposé via Proxy et garde les clés alignées avec les écritures.

memoPromise ​

Mémoïsation paresseuse pour des fonctions retournant une valeur ou une promesse.

stringToMillisecond ​

Parse des durées ("10s", "2h", "1.5d", etc.) en millisecondes, avec erreurs typées.

stringToBytes ​

Convertit des tailles ("10mb", "2gb", …) en nombre d'octets.

escapeRegExp ​

Échappe les caractères spéciaux pour créer une regex depuis une chaîne sûre.

toRegExp ​

Normalise une chaîne, un tableau de chaînes ou une RegExp en expression régulière.

mimeType ​

Map d'extension vers types MIME (clé sans point).

interpolation ​

Génère des templates typés avec des placeholders {id} et un mapping strict des remplacements.

wrapValue ​

Enveloppe une valeur dans un conteneur marqué pour l'identifier ou éviter les collisions.

isWrappedValue ​

Type guard pour vérifier si une valeur est un WrappedValue.

isRuntimeWrappedValueKey ​

Vérifie si une clé de chaîne correspond au marqueur runtime d'un WrappedValue.

toWrappedValue ​

Assure qu'une valeur est wrappée (idempotent si déjà enveloppée).

unwrap ​

Récupère la valeur interne d'un wrapper.

unwrapGroup ​

Dépaquette toutes les valeurs d'un objet.

addWrappedProperties ​

Ajoute dynamiquement des propriétés dérivées à une valeur wrappée.

clone ​

Clone profond et typé d'une valeur (objets, tableaux, etc.).

simpleClone ​

Clone léger pour dupliquer rapidement une valeur sans logique avancée.

createEnum ​

Crée un enum string immuable avec helpers has et toTuple.

createTransformer ​

Crée un transformateur récursif à partir d'un nom de méthode (toNative, toJSON, méthodes custom).

globalStore ​

Store global typé (singleton par clé) avec accès lecture/écriture.

builder ​

Helper pour créer des builders immutables avec accumulation typée et vérification des méthodes manquantes.

createFormData ​

Crée un FormData étendu à partir d'objets/tableaux imbriqués et fournit des helpers pour aplatir/reconstruire des entrées profondes.

override ​

Définit des overrides nommés (méthodes ou valeurs par défaut) et les applique sur une interface.

Path ​

Path ​

Mini-domaine pour les utilitaires de chemin POSIX (résolution, extraction).

Path.isAbsolute ​

Vérifie si un chemin est absolu.

Path.resolveFrom ​

Résout une liste de segments à partir d'un origin.

Path.getParentFolderPath ​

Retourne le dossier parent d'un chemin.

Path.getBaseName ​

Retourne le dernier segment d'un chemin, avec option d'extension.

Path.getExtensionName ​

Retourne l'extension d'un chemin, avec le point.

Diffusé sous licence MIT.