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.

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).

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.

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.

promiseObject

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

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).

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.