Clean
Essential building blocks of Clean Architecture: creation of business entities, business types (NewType), use cases, repositories, and more. Makes it easier to structure your code according to Clean Architecture principles for better maintainability and testability.
How to import?
The library exposes the DClean and C namespaces from the main entry or via direct import (tree-shaking friendly), which lets you only load what you need.
import { DClean, C } from "@duplojs/utils";
import * as DClean from "@duplojs/utils/clean";
import * as C from "@duplojs/utils/clean";Primitives
Primitives let you handle base types (String, Number, Date, …) in business code.
Constraints
Constraints allow adding additional rules on primitives.
NewType
Creates a NewType (brand) backed by a DataParser, with optional constraints.
Entities
Represents business data structures.
unwrapEntity
Turns an entity into a plain object with its metadata.
Flag
Dynamically adds information (flag) on an entity, with strict typing.
Repository
Declares a repository (contract) and type-checks the implementation.
UseCase
Declares a use case with dependencies (repositories or other use cases).
Operations on primitives
equal
Compares two wrapped primitives (or a primitive and a raw value) with a type guard.
add
Adds two Number (supports the curried version).
subtract
Subtracts a number from a Number (supports the curried version).
multiply
Multiplies a Number (supports the curried version).
divide
Divides a Number (supports the curried version).
min
Returns the minimum of a Number tuple.
max
Returns the maximum of a Number tuple.
greaterThan
Checks whether a Number is strictly greater than a threshold.
lessThan
Checks whether a Number is strictly less than a threshold.
concat
Concatenates String (supports the curried version).
length
Returns the length of a String as a Number.
lengthEqual
Checks whether the length of a String equals a value.
lengthGreaterThan
Checks whether the length of a String is greater than a value.
lengthLessThan
Checks whether the length of a String is less than a value.
dateGreaterThan
Checks whether a Date is after a threshold.
dateLessThan
Checks whether a Date is before a threshold.
dateMin
Returns the smallest date in a list.
dateMax
Returns the largest date in a list.
sort
Sorts an array of primitives (String, Number, or Date) in "ASC" / "DSC".
