@typed/io
Version:
Runtime IO type system
15 lines • 730 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.either = void 0;
const either_1 = require("@typed/either");
const G = require("../guard");
const Decoder_1 = require("./Decoder");
const refinement_1 = require("./refinement");
const UnknownEither = Decoder_1.Decoder.fromGuard(G.Either, 'Either<unknown, unknown>');
exports.either = (left, right) => refinement_1.refinement(UnknownEither, function* (either) {
if (either_1.isLeft(either)) {
return either_1.Left.of(yield* left.decode(either_1.fromLeft(either)));
}
return either_1.Right.of(yield* right.decode(either_1.fromRight(either)));
}, `Either<${left.expected}, ${right.expected}>`);
//# sourceMappingURL=Either.js.map