UNPKG

@backtrace/sourcemap-tools

Version:
103 lines 2.89 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResultErr = exports.ResultOk = exports.R = exports.UnwrapError = void 0; exports.Ok = Ok; exports.Err = Err; exports.wrapOk = wrapOk; exports.wrapErr = wrapErr; class UnwrapError extends Error { constructor(data) { super('Operation has resulted in an error.'); this.data = data; } } exports.UnwrapError = UnwrapError; class R { static map(transform) { return (result) => __awaiter(this, void 0, void 0, function* () { return (result.isErr() ? result : wrapOk(yield transform(result.data))); }); } static mapErr(transform) { return (result) => __awaiter(this, void 0, void 0, function* () { return (result.isOk() ? result : wrapErr(yield transform(result.data))); }); } static flatMap(results) { const data = []; for (const result of results) { if (result.isErr()) { return result; } data.push(result.data); } return Ok(data); } } exports.R = R; class ResultOk { constructor(data) { this.data = data; } map(transform) { return new ResultOk(transform(this.data)); } mapErr() { return this; } isOk() { return true; } isErr() { return false; } unwrap() { return this.data; } } exports.ResultOk = ResultOk; class ResultErr { constructor(data) { this.data = data; } map() { return this; } mapErr(fn) { return new ResultErr(fn(this.data)); } isOk() { return false; } isErr() { return true; } unwrap() { throw new UnwrapError(this.data); } } exports.ResultErr = ResultErr; function Ok(data) { return new ResultOk(data); } function Err(data) { return new ResultErr(data); } function wrapOk(data) { if (data instanceof ResultOk || data instanceof ResultErr) { return data; } return Ok(data); } function wrapErr(data) { if (data instanceof ResultOk || data instanceof ResultErr) { return data; } return Err(data); } //# sourceMappingURL=Result.js.map