UNPKG

@eeue56/ts-core

Version:

Core library for TypeScript inspired by Elm

174 lines 8.24 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.andThen = exports.mapError = exports.map3 = exports.map2 = exports.map = exports.fromMaybe = exports.toMaybe = exports.either = exports.withDefault = exports.Err = exports.Ok = void 0; const Maybe = __importStar(require("./maybe")); /* Creates an Ok value */ function Ok(value) { return { kind: 'Ok', value: value, }; } exports.Ok = Ok; /* Creates an Err value */ function Err(error) { return { kind: 'Err', error: error, }; } exports.Err = Err; /* If result is Ok, return the value inside it. Otherwise return the default value provided; */ function withDefault(value, result) { switch (result.kind) { case 'Ok': return result.value; default: return value; } } exports.withDefault = withDefault; /* When both error and Ok are the same value, return the inner value of whichever is contained. */ function either(result) { switch (result.kind) { case 'Ok': return result.value; default: return result.error; } } exports.either = either; /* Turns Ok into Just, Err into Nothing */ function toMaybe(result) { switch (result.kind) { case 'Ok': return Maybe.Just(result.value); default: return Maybe.Nothing(); } } exports.toMaybe = toMaybe; /* Turns Just into Ok, Nothing into Err with the default value provided. */ function fromMaybe(error, maybe) { switch (maybe.kind) { case 'Just': return Ok(maybe.value); default: return Err(error); } } exports.fromMaybe = fromMaybe; /* If result is Ok, apply a function to it and return a Ok containing the new value. Otherwise return Err. */ function map(func, result) { switch (result.kind) { case 'Ok': return Ok(func(result.value)); default: return result; } } exports.map = map; /* If all results are Ok, apply a function to them and return a Ok containing the new value. Otherwise return the first Err encountered. */ function map2(func, firstResult, secondResult) { switch (firstResult.kind) { case 'Ok': switch (secondResult.kind) { case 'Ok': return Ok(func(firstResult.value, secondResult.value)); default: return secondResult; } default: return firstResult; } } exports.map2 = map2; /* If all results are Ok, apply a function to them and return a Ok containing the new value. Otherwise return the first Err encountered. */ function map3(func, firstResult, secondResult, thirdResult) { switch (firstResult.kind) { case 'Ok': switch (secondResult.kind) { case 'Ok': switch (thirdResult.kind) { case 'Ok': return Ok(func(firstResult.value, secondResult.value, thirdResult.value)); default: return thirdResult; } default: return secondResult; } default: return firstResult; } } exports.map3 = map3; /* If result is Err, apply a function to it and return a Err containing the new value. Otherwise return Ok. */ function mapError(func, result) { switch (result.kind) { case 'Err': return Err(func(result.error)); default: return result; } } exports.mapError = mapError; /* If the result is Ok, apply a function that turns things into a result to it. Otherwise return Err. */ function andThen(func, result) { switch (result.kind) { case 'Ok': return func(result.value); default: return result; } } exports.andThen = andThen; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQWNqQzs7RUFFRTtBQUNGLFNBQWdCLEVBQUUsQ0FBZSxLQUFZO0lBQ3pDLE9BQU87UUFDSCxJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxLQUFLO0tBQ2YsQ0FBQztBQUNOLENBQUM7QUFMRCxnQkFLQztBQUVEOztFQUVFO0FBQ0YsU0FBZ0IsR0FBRyxDQUFlLEtBQVk7SUFDMUMsT0FBTztRQUNILElBQUksRUFBRSxLQUFLO1FBQ1gsS0FBSyxFQUFFLEtBQUs7S0FDZixDQUFDO0FBQ04sQ0FBQztBQUxELGtCQUtDO0FBRUQ7OztFQUdFO0FBQ0YsU0FBZ0IsV0FBVyxDQUN2QixLQUFZLEVBQ1osTUFBNEI7SUFFNUIsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2pCLEtBQUssSUFBSTtZQUNMLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztRQUV4QjtZQUNJLE9BQU8sS0FBSyxDQUFDO0tBQ3BCO0FBQ0wsQ0FBQztBQVhELGtDQVdDO0FBRUQ7OztFQUdFO0FBQ0YsU0FBZ0IsTUFBTSxDQUFJLE1BQW9CO0lBQzFDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNqQixLQUFLLElBQUk7WUFDTCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDeEI7WUFDSSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7S0FDM0I7QUFDTCxDQUFDO0FBUEQsd0JBT0M7QUFFRDs7RUFFRTtBQUNGLFNBQWdCLE9BQU8sQ0FDbkIsTUFBNEI7SUFFNUIsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2pCLEtBQUssSUFBSTtZQUNMLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEM7WUFDSSxPQUFP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