target-clickhouse
Version:
A Singer target for Clickhouse
39 lines • 1.46 kB
JavaScript
;
exports.__esModule = true;
exports.listLeft = exports.mapLeft = exports.makeRight = exports.makeLeft = exports.isRight = exports.isLeft = exports.unwrapEither = void 0;
var unwrapEither = function (_a) {
var left = _a.left, right = _a.right;
if (right !== undefined && left !== undefined) {
throw new Error("Received both left and right values at runtime when opening an Either\nLeft: ".concat(JSON.stringify(left), "\nRight: ").concat(JSON.stringify(right)));
}
if (left !== undefined) {
return left;
}
if (right !== undefined) {
return right;
}
throw new Error("Received no left or right values at runtime when opening Either");
};
exports.unwrapEither = unwrapEither;
var isLeft = function (e) {
return e.left !== undefined;
};
exports.isLeft = isLeft;
var isRight = function (e) {
return e.right !== undefined;
};
exports.isRight = isRight;
var makeLeft = function (value) { return ({ left: value }); };
exports.makeLeft = makeLeft;
var makeRight = function (value) { return ({ right: value }); };
exports.makeRight = makeRight;
var mapLeft = function (e, modifier) {
if ((0, exports.isRight)(e)) {
return e;
}
return (0, exports.makeLeft)(modifier(e.left));
};
exports.mapLeft = mapLeft;
var listLeft = function (e) { return e.filter(exports.isLeft).map(function (it) { return it.left; }); };
exports.listLeft = listLeft;
//# sourceMappingURL=Either.js.map