Getting started
Boxed provides functional utility types and functions, while focusing on ease-of-use.
const make = (input) =>
Option.fromNullable(input)
.map(parseInput)
.flatMap((input) => Option.fromNullable(transform(input)))
.map(print)
.map(prettify)
.getWithDefault("fallback");
Design principles
- Provide utility types that make data-manipulation and storage easier
- Immutable (all provided types are)
- Give a good development experience (chaining API, reliable types)
- Simple interoperability (you can convert back and forth to JS native types)
- Compatibility with
ts-pattern
(usingpatterns
we provide).
What's in the box?
Option<Value>
Result<Ok, Error>
AsyncData<Value>
Future<Value>
Lazy<Value>
- Some utils like
Deferred
,Dict
&Array
Install
$ yarn add @swan-io/boxed
or
$ npm install @swan-io/boxed