Skip to content

Clean

Briques essentielles de la Clean Architecture : création d'entités métier, types métier (NewType), cas d'usage, repositories, et plus encore. Facilite la structuration de votre code selon les principes de la Clean Architecture pour une meilleure maintenabilité et testabilité.

Comment faire les imports ?

La bibliothèque expose les namespaces DClean et C depuis l'entrée principale ou en import direct (tree-shaking friendly), ce qui permet de ne charger que ce dont vous avez besoin.

typescript
import { DClean, C } from "@duplojs/utils";
import * as DClean from "@duplojs/utils/clean";
import * as C from "@duplojs/utils/clean";

Primitives

Les primitives permettent de manipuler dans du métier des types de base (String, Number, Date, …).

Contraintes

Les contraintes permettent d'ajouter des règles supplémentaires sur les primitives.

NewType

Crée un NewType (brand) adossé à un DataParser, avec contraintes optionnelles.

Entités

Représente les structures de données du métier.

unwrapEntity

Transforme une entité en objet simple, avec ses métadonnées.

Maybe

Définit un contrat métier explicite pour représenter une entité présente (some) ou absente (none).

Flag

Ajoute dynamiquement une information (flag) sur une entité, avec typage strict.

Repository

Déclare un repository (contrat) et type-check l'implémentation.

UseCase

Déclare un use case avec des dépendances (repositories ou autres use cases).

Opérations sur primitives

equal

Compare deux primitives wrappées (ou une primitive et une valeur brute) avec un type guard.

add

Additionne deux Number (supporte la version currifiée).

subtract

Soustrait un nombre à un Number (supporte la version currifiée).

multiply

Multiplie un Number (supporte la version currifiée).

divide

Divise un Number (supporte la version currifiée).

min

Retourne le minimum d'un tuple de Number.

max

Retourne le maximum d'un tuple de Number.

greaterThan

Teste si un Number est strictement supérieur à un seuil.

lessThan

Teste si un Number est strictement inférieur à un seuil.

concat

Concatène des String (supporte la version currifiée).

length

Retourne la longueur d'un String sous forme de Number.

lengthEqual

Teste si la longueur d'un String est égale à une valeur.

lengthGreaterThan

Teste si la longueur d'un String est supérieure à une valeur.

lengthLessThan

Teste si la longueur d'un String est inférieure à une valeur.

dateGreaterThan

Teste si une Date est postérieure à un seuil.

dateLessThan

Teste si une Date est antérieure à un seuil.

dateAddTime

Ajoute une durée Time à une Date.

dateSubtractTime

Soustrait une durée Time à une Date.

dateMin

Retourne la plus petite date d'une liste.

dateMax

Retourne la plus grande date d'une liste.

timeGreaterThan

Teste si un Time est strictement supérieur à un seuil.

timeLessThan

Teste si un Time est strictement inférieur à un seuil.

timeMin

Retourne la plus petite durée d'une liste.

timeMax

Retourne la plus grande durée d'une liste.

sort

Trie un tableau de primitives (String, Number, Date ou Time) en "ASC" / "DSC".

Diffusé sous licence MIT.