๐ Sums Up ===
๐ Sums Up
===
```
npm install sums-up
In TypeScript:
`typescript
import SumType from 'sums-up';
class Maybe
function Just
return new Maybe("Just", value);
}
function Nothing
return new Maybe("Nothing");
}
const x = Just("foo");
const result = x.caseOf({
Nothing: () => "nope",
Just: (a) => a + "bar",
});
`
Or in JavaScript
`javascript
import SumType from 'sums-up';
class Maybe extends SumType {}
function Just(value) {
return new Maybe("Just", value);
}
function Nothing() {
return new Maybe("Nothing");
}
const x = Just("foo");
const result = x.caseOf({
Nothing: () => "nope",
Just: (a) => a + "bar",
});
`
If the kind of a sum type instance isn't present in the pattern given to caseOf, a default key called _ will be used instead.
`ts
import SumType from 'sums-up';
class RequestState
NotStarted: [];
Connecting: [];
Downloading: [number];
Completed: [T];
Failed: [string];
}> {}
const state = new RequestState('Failed', 'Connection reset.');
const progressPercentage = state.caseOf({
Downloading: pct => pct,
Completed: () => 100,
_: () => 0
});
``
Contributors:
@hojberg @dfreeman @AdamEdgett