Skip to content

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.

typescript
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".

Released under the MIT license.