UNPKG

@eeue56/ts-core

Version:

Core library for TypeScript inspired by Elm

121 lines 5.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.andThen = exports.map3 = exports.map2 = exports.map = exports.withDefault = exports.isNothing = exports.isJust = exports.Nothing = exports.Just = void 0; /* Create a Maybe with an actual value */ function Just(value) { return { kind: 'Just', value: value, }; } exports.Just = Just; /* Create a Maybe with no value */ function Nothing() { return { kind: 'Nothing', }; } exports.Nothing = Nothing; function isJust(maybe) { switch (maybe.kind) { case 'Just': return true; default: return false; } } exports.isJust = isJust; function isNothing(maybe) { switch (maybe.kind) { case 'Nothing': return true; default: return false; } } exports.isNothing = isNothing; /* If a maybe has a value, return it. Otherwise return the provided value */ function withDefault(value, maybeValue) { switch (maybeValue.kind) { case 'Just': return maybeValue.value; default: return value; } } exports.withDefault = withDefault; /* If a maybe has a value, apply a function to it and return a maybe containing the new value. Otherwise return Nothing. */ function map(func, maybeValue) { switch (maybeValue.kind) { case 'Just': return Just(func(maybeValue.value)); default: return maybeValue; } } exports.map = map; /* If both maybes have a value, apply a function to them and return a maybe containing the new value. Otherwise return Nothing. */ function map2(func, firstMaybeValue, secondMaybeValue) { switch (firstMaybeValue.kind) { case 'Just': switch (secondMaybeValue.kind) { case 'Just': return Just(func(firstMaybeValue.value, secondMaybeValue.value)); default: return Nothing(); } default: return Nothing(); } } exports.map2 = map2; /* If all maybes have a value, apply a function to them and return a maybe containing the new value. Otherwise return Nothing. */ function map3(func, firstMaybeValue, secondMaybeValue, thirdMaybeValue) { switch (firstMaybeValue.kind) { case 'Just': switch (secondMaybeValue.kind) { case 'Just': switch (thirdMaybeValue.kind) { case 'Just': return Just(func(firstMaybeValue.value, secondMaybeValue.value, thirdMaybeValue.value)); default: return Nothing(); } default: return Nothing(); } default: return Nothing(); } } exports.map3 = map3; /* If the maybe has a value, apply a function that turns things into a maybe to it. Otherwise return Nothing. */ function andThen(func, maybeValue) { switch (maybeValue.kind) { case 'Just': return func(maybeValue.value); default: return Nothing(); } } exports.andThen = andThen; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF5YmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL21heWJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdBOztFQUVFO0FBQ0YsU0FBZ0IsSUFBSSxDQUFJLEtBQVE7SUFDNUIsT0FBTztRQUNILElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLEtBQUs7S0FDZixDQUFDO0FBQ04sQ0FBQztBQUxELG9CQUtDO0FBRUQ7O0VBRUU7QUFDRixTQUFnQixPQUFPO0lBQ25CLE9BQU87UUFDSCxJQUFJLEVBQUUsU0FBUztLQUNsQixDQUFDO0FBQ04sQ0FBQztBQUpELDBCQUlDO0FBRUQsU0FBZ0IsTUFBTSxDQUFJLEtBQWU7SUFDckMsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ2hCLEtBQUssTUFBTTtZQUNQLE9BQU8sSUFBSSxDQUFDO1FBQ2hCO1lBQ0ksT0FBTyxLQUFLLENBQUM7S0FDcEI7QUFDTCxDQUFDO0FBUEQsd0JBT0M7QUFFRCxTQUFnQixTQUFTLENBQUksS0FBZTtJQUN4QyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDaEIsS0FBSyxTQUFTO1lBQ1YsT0FBTyxJQUFJLENBQUM7UUFDaEI7WUFDSSxPQUFPLEtBQUssQ0FBQztLQUNwQjtBQUNMLENBQUM7QUFQRCw4QkFPQztBQUVEOzs7RUFHRTtBQUNGLFNBQWdCLFdBQVcsQ0FBSSxLQUFRLEVBQUUsVUFBb0I7SUFDekQsUUFBUSxVQUFVLENBQUMsSUFBSSxFQUFFO1FBQ3JCLEtBQUssTUFBTTtZQUNQLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQztRQUU1QjtZQUNJLE9BQU8sS0FBSyxDQUFDO0tBQ3BCO0FBQ0wsQ0FBQztBQVJELGtDQVFDO0FBRUQ7OztFQUdFO0FBQ0YsU0FBZ0IsR0FBRyxDQUNmLElBQXVCLEVBQ3ZCLFVBQW9CO0lBRXBCLFFBQVEsVUFBVSxDQUFDLElBQUksRUFBRTtRQUNyQixLQUFLLE1BQU07WUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFeEM7WUFDSSxPQUFPLFVBQVUsQ0FBQztLQUN6QjtBQUNMLENBQUM7QUFYRCxrQkFXQztBQUVEOzs7RUFHRTtBQUNGLFNBQWdCLElBQUksQ0FDaEIsSUFBOEMsRUFDOUMsZUFBeUIsRUFDekIsZ0JBQTBCO0lBRTFCLFFBQVEsZUFBZSxDQUFDLElBQUksRUFBRTtRQUMxQixLQUFLLE1BQU07WUFDUCxRQUFRLGdCQUFnQixDQUFDLElBQUksRUFBRTtnQkFDM0IsS0FBSyxNQUFNO29CQUNQLE9BQU8sSUFBSSxDQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUN0RCxDQUFDO2dCQUVOO29CQUNJLE9BQU8sT0FBTyxFQUFFLENBQUM7YUFDeEI7UUFDTDtZQUNJLE9BQU8sT0FBTyxFQUFFLENBQUM7S0FDeEI7QUFDTCxDQUFDO0FBbkJELG9CQW1CQztBQUVEOzs7RUFHRTtBQUNGLFNBQWdCLElBQUksQ0FDaEIsSUFBNkQsRUFDN0QsZUFBeUIsRUFDekIsZ0JBQTBCLEVBQzFCLGVBQXlCO0lBRXpCLFFBQVEsZUFBZSxDQUFDLElBQUksRUFBRTtRQUMxQixLQUFLLE1BQU07WUFDUCxRQUFRLGdCQUFnQixDQUFDLElBQUksRUFBRTtnQkFDM0IsS0FBSyxNQUFNO29CQUNQLFFBQVEsZUFBZSxDQUFDLElBQUksRUFBRTt3QkFDMUIsS0FBSyxNQUFNOzRCQUNQLE9BQU8sSUFBSSxDQUNQLElBQUksQ0FDQSxlQUFlLENBQUMsS0FBSyxFQUNyQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQ3RCLGVBQWUsQ0FBQyxLQUFLLENBQ3hCLENBQ0osQ0FBQzt3QkFFTjs0QkFDSSxPQUFPLE9BQU8sRUFBRSxDQUFDO3FCQUN4QjtnQkFFTDtvQkFDSSxPQUFPLE9BQU8sRUFBRSxDQUFDO2FBQ3hCO1FBQ0w7WUFDSSxPQUFPLE9BQU8sRUFBRSxDQUFDO0tBQ3hCO0FBQ0wsQ0FBQztBQTlCRCxvQkE4QkM7QUFFRDs7O0VBR0U7QUFDRixTQUFnQixPQUFPLENBQ25CLElBQWlDLEVBQ2pDLFVBQW9CO0lBRXBCLFFBQVEsVUFBVSxDQUFDLElBQUksRUFBRTtRQUNyQixLQUFLLE1BQU07WUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEM7WUFDSSxPQUFPLE9BQU8sRUFBRSxDQUFDO0tBQ3hCO0FBQ0wsQ0FBQztBQVhELDBCQVdDIn0=