144 lines
5.9 KiB
JavaScript
Executable File
144 lines
5.9 KiB
JavaScript
Executable File
"use strict";
|
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
if (ar || !(i in from)) {
|
|
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
ar[i] = from[i];
|
|
}
|
|
}
|
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.flatMapReader = exports.flatMapTask = exports.flatMapIO = exports.flatMapEither = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.fromReadonlyNonEmptyArray = exports.has = exports.emptyRecord = exports.emptyReadonlyArray = exports.tail = exports.head = exports.isNonEmpty = exports.singleton = exports.right = exports.left = exports.isRight = exports.isLeft = exports.some = exports.none = exports.isSome = exports.isNone = void 0;
|
|
var function_1 = require("./function");
|
|
// -------------------------------------------------------------------------------------
|
|
// Option
|
|
// -------------------------------------------------------------------------------------
|
|
/** @internal */
|
|
var isNone = function (fa) { return fa._tag === 'None'; };
|
|
exports.isNone = isNone;
|
|
/** @internal */
|
|
var isSome = function (fa) { return fa._tag === 'Some'; };
|
|
exports.isSome = isSome;
|
|
/** @internal */
|
|
exports.none = { _tag: 'None' };
|
|
/** @internal */
|
|
var some = function (a) { return ({ _tag: 'Some', value: a }); };
|
|
exports.some = some;
|
|
// -------------------------------------------------------------------------------------
|
|
// Either
|
|
// -------------------------------------------------------------------------------------
|
|
/** @internal */
|
|
var isLeft = function (ma) { return ma._tag === 'Left'; };
|
|
exports.isLeft = isLeft;
|
|
/** @internal */
|
|
var isRight = function (ma) { return ma._tag === 'Right'; };
|
|
exports.isRight = isRight;
|
|
/** @internal */
|
|
var left = function (e) { return ({ _tag: 'Left', left: e }); };
|
|
exports.left = left;
|
|
/** @internal */
|
|
var right = function (a) { return ({ _tag: 'Right', right: a }); };
|
|
exports.right = right;
|
|
// -------------------------------------------------------------------------------------
|
|
// ReadonlyNonEmptyArray
|
|
// -------------------------------------------------------------------------------------
|
|
/** @internal */
|
|
var singleton = function (a) { return [a]; };
|
|
exports.singleton = singleton;
|
|
/** @internal */
|
|
var isNonEmpty = function (as) { return as.length > 0; };
|
|
exports.isNonEmpty = isNonEmpty;
|
|
/** @internal */
|
|
var head = function (as) { return as[0]; };
|
|
exports.head = head;
|
|
/** @internal */
|
|
var tail = function (as) { return as.slice(1); };
|
|
exports.tail = tail;
|
|
// -------------------------------------------------------------------------------------
|
|
// empty
|
|
// -------------------------------------------------------------------------------------
|
|
/** @internal */
|
|
exports.emptyReadonlyArray = [];
|
|
/** @internal */
|
|
exports.emptyRecord = {};
|
|
// -------------------------------------------------------------------------------------
|
|
// Record
|
|
// -------------------------------------------------------------------------------------
|
|
/** @internal */
|
|
exports.has = Object.prototype.hasOwnProperty;
|
|
// -------------------------------------------------------------------------------------
|
|
// NonEmptyArray
|
|
// -------------------------------------------------------------------------------------
|
|
/** @internal */
|
|
var fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1), true); };
|
|
exports.fromReadonlyNonEmptyArray = fromReadonlyNonEmptyArray;
|
|
/** @internal */
|
|
var liftNullable = function (F) {
|
|
return function (f, onNullable) {
|
|
return function () {
|
|
var a = [];
|
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
a[_i] = arguments[_i];
|
|
}
|
|
var o = f.apply(void 0, a);
|
|
return F.fromEither(o == null ? (0, exports.left)(onNullable.apply(void 0, a)) : (0, exports.right)(o));
|
|
};
|
|
};
|
|
};
|
|
exports.liftNullable = liftNullable;
|
|
/** @internal */
|
|
var liftOption = function (F) {
|
|
return function (f, onNone) {
|
|
return function () {
|
|
var a = [];
|
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
a[_i] = arguments[_i];
|
|
}
|
|
var o = f.apply(void 0, a);
|
|
return F.fromEither((0, exports.isNone)(o) ? (0, exports.left)(onNone.apply(void 0, a)) : (0, exports.right)(o.value));
|
|
};
|
|
};
|
|
};
|
|
exports.liftOption = liftOption;
|
|
/** @internal */
|
|
var flatMapNullable = function (F, M) {
|
|
/*#__PURE__*/ return (0, function_1.dual)(3, function (self, f, onNullable) {
|
|
return M.flatMap(self, (0, exports.liftNullable)(F)(f, onNullable));
|
|
});
|
|
};
|
|
exports.flatMapNullable = flatMapNullable;
|
|
/** @internal */
|
|
var flatMapOption = function (F, M) {
|
|
/*#__PURE__*/ return (0, function_1.dual)(3, function (self, f, onNone) { return M.flatMap(self, (0, exports.liftOption)(F)(f, onNone)); });
|
|
};
|
|
exports.flatMapOption = flatMapOption;
|
|
/** @internal */
|
|
var flatMapEither = function (F, M) {
|
|
/*#__PURE__*/ return (0, function_1.dual)(2, function (self, f) {
|
|
return M.flatMap(self, function (a) { return F.fromEither(f(a)); });
|
|
});
|
|
};
|
|
exports.flatMapEither = flatMapEither;
|
|
/** @internal */
|
|
var flatMapIO = function (F, M) {
|
|
/*#__PURE__*/ return (0, function_1.dual)(2, function (self, f) {
|
|
return M.flatMap(self, function (a) { return F.fromIO(f(a)); });
|
|
});
|
|
};
|
|
exports.flatMapIO = flatMapIO;
|
|
/** @internal */
|
|
var flatMapTask = function (F, M) {
|
|
/*#__PURE__*/ return (0, function_1.dual)(2, function (self, f) {
|
|
return M.flatMap(self, function (a) { return F.fromTask(f(a)); });
|
|
});
|
|
};
|
|
exports.flatMapTask = flatMapTask;
|
|
/** @internal */
|
|
var flatMapReader = function (F, M) {
|
|
/*#__PURE__*/ return (0, function_1.dual)(2, function (self, f) {
|
|
return M.flatMap(self, function (a) { return F.fromReader(f(a)); });
|
|
});
|
|
};
|
|
exports.flatMapReader = flatMapReader;
|