JS/FP
A pragmatic functional programming library for JavaScript/TypeScript
Computation with monad(-like) objects
Computation with one or two values
Box: computation with one value
Pair: computation with two values
Computation with n values
List: computation with zero, one or more values
NonEmptyList: computation with one or more values
Computation with error handling
Option: computation with a value that may be present or absent
Result: synchronous computation that may succeed or fail, short-circuits when a failure occurs
Validated: like Result, but accumulates errors instead of short-circuiting
Computation with a value and a context
State: stateful computation
Writer: computation with additional data (used for logging)
Writers
StringWriter: computation with log entries concatenated to a string
ListWriter: computation with log entries concatenated to a List instance
Asynchronous computation
Future: asynchronous computation that may succeed or fail (a monadic alternative to Promises)
High-level computation
Program: interpretation of program descriptions
Functions
Action: wrapper around a function with no parameters that enables composition
Arrow: wrapper around a function with one or more parameters that enables composition and adaptation of the input
Combination
Combination with semigroups
Semigroup: a type that supports an associative binary operation
objectCombination: a function to create combination schemes for objects based on semigroups
Combination with monoids
Monoid: a semigroup with an identity element
Boolean
All: combines two booleans using logical AND
Any: combines two booleans using logical OR
Number
Min: combines two numbers, resulting in the smallest of the two
Max: combines two numbers, resulting in the largest of the two
Sum: combines two numbers, resulting in the sum of the two
Product: combines two numbers, resulting in the product of the two
Date
Earliest: combines two dates, resulting in the earlier of the two
Latest: combines two dates, resulting in the later of the two
String
StringConcatenation: combines two string using concatenation
Array
ArrayConcatenation: combines two arrays using concatenation
List
ListConcatenation: combines two lists using concatenation
Testing
Equivalence
Equivalence: testing of equivalence between two values of the same type
objectEquivalence: a function to create equivalence schemes for objects based on member equivalences
Equalities for basic types: equalities for string, number, boolean and Date values and arrays of such values
Order
Order: decision on the order of two values
Ordering: a type alias for the three possible outcomes (-1, 0 and 1)
Predicate
Predicate: wrapper around predicate functions